Is the a misconception about printing speeds?



  • As my signature states, I have three Creality printers. Two are running Duet 2 Wifi, and one with a Duet Maestro. All three have Bondtech BMG extruders, two have Micro Swiss hot ends with 0.6 nozzles, and the other had a E3D Volcano with a 1.0mm nozzle.

    What confuses me is that going through all the detailed calibrations found here
    Ender 3 Pro and comparing it to what I am hearing among the creality community, a lot of people are using stock printers and printing at 60 to 80 mm/s.

    But through proper calibration, I feel that there is something a miss. Using the example i the guide, he has determined a flow rate of 10. I can concur mostly with this even with a 0.6 nozzle. Among the stock users of Creality machines, a common setup is using a 0.6 nozzle, and a 0.3mm layer height. Many of them don't know their extrusion width, but lets assume its 0.6 as well.

    Doing the math, 10 / (0.3 * 0.6) = provides a max speed of 55mms.

    But so many people I have ask report back that they are printing a 60 to 80mm/s .

    The problem is, when I ask how do they know they are achieving these speeds, most answer with "thats whats in my slicer". This tends to be Cura. Does Cura have a lot of limiting factors especially if users are using default "fine" settings?

    Ive used both Cura and Simplify3d. I was shocked when I first started using S3D that the print times we much faster than Cura with comparable settings.

    I'd love to hear from creality users on this forum, and welcome other printer owners to comment as well.



  • @RyanP Those are small printers, which means line lengths in the prints are going to be short. All motion in the printer is subject to acceleration and deceleration, so regardless of slicer speed setting, the acceleration and line length will limit the actual print speed. So the 60-80 mm/sec they are setting in the slicer may never actually be achieved, depending on the acceleration setting.

    If you want your printer to go fast, you really need to use high acceleration, but the motors may not have sufficient torque to move the mechanism at high acceleration. High acceleration also tends to make the printer noisy and make it shake, and often results in certain print quality problems, depending on the rigidity of the mechanism.

    In the upper left of the duet web interface there is a box that shows requested speed and actual speed. It gets updated a few times per second. If you watch that during a print you'll get some idea of the actual speeds the machine is hitting. At the bottom of this page: https://blog.prusaprinters.org/calculator_3416/ there is a calculator that will tell you the speed vs acceleration vs line length.



  • I don't have an Ender 3, but I did just add the standard Ender 3 profile to Cura to take a look at the machine profile. From my experience with Cura, I know that you can set a "Print Speed" but typically values for infill speed, wall speed, etc, are calculated based on the profile selected.

    d01840b2-cd3f-4cca-85ab-437ca5ee003c-image.png

    I have expanded all settings to see what the detailed speeds are.

    For "Dynamic Quality" (says .4mm nozzle) the print speed is set to 50mm/s, however only the infill is printed at 50mm/s, while the walls, tops, and bottoms are printed at half that, 25mm/s. The initial layer is printed slower at 20mm/s.

    From what I see, when people claim they're printing at Xxx mm/s, they simply set their top speed to that and don't know or don't see that its actually limited based on the part of the model that is being printed.

    I don't have any experience with S3D, and limited experience with PrusaSlicer/ slic3r - at this time I'm not sure how they handle print speeds for things like infill, outer walls, etc.

    The comment on acceleration is a good one as well - I've seen all sorts of videos where people claim they're printing at 300mm/s or something crazy, but based on the acceleration they're using its obvious they're not close to hitting that speed on things like Benchys, etc.


  • administrators

    @RyanP said in Is the a misconception about printing speeds?:

    Using the example i the guide, he has determined a flow rate of 10.

    IMO, a flow rate of 10 mm^3/sec is low. Using a 0.4mm nozzle and standard (not Volcano) E3D hot end, I expect no problems extruding 1.75mm filament at 5mm/sec, but I don't expect to be able to extrude at 10mm/sec. So the volumetric extrusion rate I can achieve is more than 12 but less than 24 mm^3/sec. I normally use 0.2mm layer height and 0.5mm extrusion width; so 12mm^3/sec give me a maximum print speed of 120mm/sec.

    Using a 0.6mm or 1.0mm nozzle, I would expect the available volumetric extrusion rate from my extruder to be higher; but for serious printing with a 1.0mm nozzle I would switch to a Volcano or Super Volcano.


  • Moderator

    @dc42 said in Is the a misconception about printing speeds?:

    IMO, a flow rate of 10 mm^3/sec is low.

    In the case of the Ender 3 in the guide much more than 10 mm^3/sec and the extruder skips. If it had a better extruder and/or a higher nozzle temp it can push more through, but that was the conservative safe max.



  • Thanks for all the replies guys. Between the responses here, and the ones I got today from other forums and direct messages, 90% of average printer users do not have a clue what speed they are actually printing at.

    The problem lies in how Cura displays its speed settings and how the average hobby printer user views this information. So many people are simply selecting a profile like "fine", selecting a speed of 60mms, and letting it go. I kindly prompted some of the people I spoke to what their acceleration and jerk settings were, and most of them didn't know. They are just using the stock printer, with preset cura profile at 60mms.

    Earlier this year I started using Simplify3D and I was shocked at how much shorter print time a lot of my prints were compared to my profile in Cura. This led me to finding all the hidden speed settings.

    Now, I am not knocking any of these people and how they use the printer. I'm glad to see people enjoying the hobby. If a person wants to just 'hit print", thats great. If someone else wants to dissect the inner workings, equally great.

    The side effect of this problem is that when one person sees a great print posted on line, especially on the more average user forums like Reddit, many people will ask for their settings such as speed. The answer comes back, 60mms, for example. But that does not mean that three different machines will perform the same at 60mms.

    I was a bit taken aback when I learned how many people thought 60mms was for every aspect of the print and had no clue how many hidden speed settings their were in cura, and how slow they were. On top of that, because many of them didn't know what their accel and jerk settings were, they didn't know how each would affect speed.

    DWC gives us the benefit of seeing relatively instantaneous feedback on our speed. But the typical stock Creality printer gives none of that at all. Imagine driving a car without a speedometer. That is how most printers are.

    Again, how each person uses their printer is fine. I'm more concerned with how information is shared. I think a lot of printing problems stem from misguided sharing of settings.



  • You can, of course, monitor the actual speed on the DuetWiFi display. I have a printer that used to be an Anet A8, but practically nothing except the steppers is left of the original. During a project printing face shield parts, I was running 90 mm/s on the long arcs from an 0.4mm nozzle (and linewidth), with an 0.32 mm layer, or 11.52 mm^3/s roughly. The extruder was a Hemera. The material was PETG, but I was running at 270C to keep the viscosity low to permit it to run at that flow. It was having no difficulty. I did turn my stepper currents up from their normal values, and put a fan on the 'y' stepper and the power supply, since they were running quite hot. The 'x' stepper had no fan, and I measured its surface temp at about 65C, which is well within the safe range.



  • I’ve also seen the “max volumetric flow” setting (or equivalent) trip people up — they have a value set in their slicer, and no matter how high they set their base speed, the actual speed tops out due to the software flow restriction. If you’re not used to looking at the speed preview, you might not ever notice it.



  • @RyanP said in Is the a misconception about printing speeds?:

    ..............................I think a lot of printing problems stem from misguided sharing of settings.

    Amen to that!



  • Identical g-code run on machines with significantly different accleration settings can have quite dramatic differences in print time, for the reasons already described. There are lots of machines out there that claim huge print speeds but can't actually deliver. And even if your printer really can hit 600mm/s within its own travel, printing huge thick layers at low feed rates will always be faster than thin layers at high speeds.

    The deep details of print speeds and slicer settings are not widely understood, that often even includes the people writing the software.

    I'm fairly certain that both Cura and S3D still don't actually calculate extrusion volumes correctly...



  • @theruttmeister said in Is the a misconception about printing speeds?:

    [...]
    I'm fairly certain that both Cura and S3D still don't actually calculate extrusion volumes correctly...

    In which ways do you mean this? I tend to agree with you, but I'm not sure if it's exclusively extrusion volume that is problematic.

    S3D does only produce 4 digits after the decimal for E values. Not terribly accurate. Most other slicers seem to do at least 5, so that's a disadvantage right off the bat.



  • @bot
    The formula to calculate extrusion volume is not (Layer Height * Extrusion width).

    If you want to get dimensionally accurate parts, that formula is going to be off by a factor of roughly 9% (obviously varying with layer height and extrusion width).

    Ok, that's only for the dimensions of the extrusion, its not like it ruins the positioning accuracy of the printer.
    And it was the case back when I was part of a team looking at this, that fixing the issue was not at all simple due to the way Cura's code is structured.
    That was a few years ago, it might have been fixed by now...

    But then we live in a world where people think that extrusion width should be the same as nozzle diameter.

    Oh, and 4 digits? Whats the resolution of your extruder motor? You would need fairly substantial gearing to get 10,000 steps/mm 😉
    Compounding error might be an issue (if they are bad at coding), but with a print taking multiple meters of filament I don't think a sub-micron level of resolution is going to be noticeable. The tooth-to-tooth error on the drive gear will probably be a bigger source of error.



  • Interesting, I see.

    The problem with S3D's 4 digits is that sometimes, a value of 0 will be produced, when there is in fact not zero extrusion taking place. With my setup, I can theoretically extrude ~0.00025 mm in one microstep. I have 50:1 gearing on my extruder. Even though I can't step smaller than that, there is certainly benefit to having the resolution.

    Inconsistent extrusion rates become problematic when you are trying to smoothly operate stepper motors or calculate pressure advance. Also, when the layer has a large aspect ratio, the approximation of a rectangle becomes totally accurate enough.

    But, like you say, with smaller aspect-ratio layers, the inaccuracy does become problematic. I haven't quite considered to what extent, because printing at low resolution doesn't really go hand-in-hand with caring about fine tuning the extrusion rate.



  • @theruttmeister said in Is the a misconception about printing speeds?:

    But then we live in a world where people think that extrusion width should be the same as nozzle diameter.

    What's wrong with extrusion width matching the nozzle diameter? My experience is that I get better quality prints than when the extrusion width is greater than the nozzle diameter.


  • Moderator

    @mrehorstdmd said in Is the a misconception about printing speeds?:

    @theruttmeister said in Is the a misconception about printing speeds?:

    But then we live in a world where people think that extrusion width should be the same as nozzle diameter.

    What's wrong with extrusion width matching the nozzle diameter? My experience is that I get better quality prints than when the extrusion width is greater than the nozzle diameter.

    Same here.



  • @RyanP said in Is the a misconception about printing speeds?:

    So many people are simply selecting a profile like "fine", selecting a speed of 60mms, and letting it go.

    That's sounds as a good user experience. One can argue that requiring the users too tweak too many variables is typically a sign of an immature technology.



  • @zapta said in Is the a misconception about printing speeds?:

    @RyanP said in Is the a misconception about printing speeds?:

    So many people are simply selecting a profile like "fine", selecting a speed of 60mms, and letting it go.

    That's sounds as a good user experience. One can argue that requiring the users too tweak too many variables is typically a sign of an immature technology.

    While i 100% agree with you, again, nobody has told people not to tweak these variables. So where the real problem lies is in ones interpretation of the base settings.

    If you and i have the same printer, printing the same things, you using stock settings and profiles, me highly tweaked.

    Lets say i was to ask you what speed you print at, and you answered 60 to 70mms. Youve uncovered no hidden settings and just picked a preset cura profile, you are not truly printing at those speeds. The important aspects of the print (solid tops/bottoms, walls, etc are printed vastly slower. Generally these slower speeds are 50%. So how can you tell people that you print at 60+ mms when the majority of the print is done at 30mms.

    This leads to a lot of problems because there is no equality between printers, hardware, software, firmware, and users.

    The simplicity of the users interaction is great. When was the last time you calibrated you inkjet or laserjet printer? If ever?

    You have people out there giving advice to other people and they really dont know anything about their printer. These people are producing amazing prints at breakneck speeds...or what looks like breakneck speeds, but are printing incredibly slower and they dont know it.

    And easy solution to this is changing the name "print speed" to something like "base speed". Then when processing the slices to produce the GCode, it provides you with "average speed". That calculated average speed in many case is going to be 30 to 40mms.



  • @RyanP It kind of gets worse than that because very few moves are completed at a fixed velocity. Most print moves have an acceleration phase, a steady state phase and a deceleration phase. So even when people state that they are printing at a speed of nn mm/sec, that's probably only the steady state phase.

    As speeds are increased, the effect of the acceleration and deceleration phases becomes more important. To illustrate, let's say we were printing at 200mm/sec with an acceleration of 1000 mm/sec^2. For the sake of argument, we'll assume that this is a move from standstill and that the initial velocity is zero, and that "jerk" is not applied. The time for the acceleration phase is V(final) - V(initial) /acceleration so 200-0/1000 = 0.2 seconds. The distance travelled during the acceleration phase is (S=1/2at^2) = 20mm. So any move less than 40mm in length will be either accelerating or decelerating and will never actually attain the speed of 200mm/sec. Even a move that is 50mm in length will only be carried out at a speed of 200mm/sec for 10mm - the rest of the move will be accelerating up to that speed or decelerating down from that speed.



  • @bot said in Is the a misconception about printing speeds?:

    I have 50:1 gearing on my extruder. Even though I can't step smaller than that, there is certainly benefit to having the resolution.

    Unless you are running some special gears I would expect you to have far more backlash than you have resolution... I've only seen extruder resolution become a noticeable factor in print quality at very low speeds, when you can actually see the full-step cogging that steppers are prone to. The gears are great for increasing torque, but are also good for getting the motor into its optimum speed range (which is a thing for steppers).
    Trailing 0 errors (I think that's the right term) would probably need to be fairly high for you to see a significant error over a print that involves 30 meters of filament.
    And you are assuming that the slicing engine isn't using more (or even unlimited) resolution internally, which it could easily do.

    But, like you say, with smaller aspect-ratio layers, the inaccuracy does become problematic. I haven't quite considered to what extent, because printing at low >resolution doesn't really go hand-in-hand with caring about fine tuning the extrusion rate.

    Even at high aspect ratios (say 5:1) you can still easily have error of 5%. Not critical, but if you are trying to get screw-threads to fit without having to use horizontal offset, it makes a significant difference.

    @mrehorstdmd said in Is the a misconception about printing speeds?:

    What's wrong with extrusion width matching the nozzle diameter? My experience is that I get better quality prints than when the extrusion width is greater than the nozzle diameter.

    The way that material flows as it exits the nozzle.
    Basically the face around the opening (Stratasys call it the anvil apparently) smashes the material flat, getting you both good inter-layer bonding, but also a well controlled bead. If you try and reduce the extrusion width too much, the center of the extrusion can 'walk'.

    But there are some many factors that go into good profiles that 🤷



  • @RyanP said in Is the a misconception about printing speeds?:

    Generally these slower speeds are 50%. So how can you tell people that you print at 60+ mms when the majority of the print is done at 30mms.

    One way to view the variable speed is using an histogram that shows the percentage of time at each speed range. I used once an Arduino stepper motor analyzer to collect and generates such histograms for the extrusion speed (see below).

    Duet could easily collect this data and display it on DWC in realtime during the print.

    ff8d6c4e-aa63-4265-a1e3-2e9c65ff226d-image.png



  • @theruttmeister said in Is the a misconception about printing speeds?:

    Unless you are running some special gears I would expect you to have far more backlash than you have resolution... I've only seen extruder resolution become a noticeable factor in print quality at very low speeds, when you can actually see the full-step cogging that steppers are prone to. The gears are great for increasing torque, but are also good for getting the motor into its optimum speed range (which is a thing for steppers).
    Trailing 0 errors (I think that's the right term) would probably need to be fairly high for you to see a significant error over a print that involves 30 meters of filament.
    And you are assuming that the slicing engine isn't using more (or even unlimited) resolution internally, which it could easily do.

    But, like you say, with smaller aspect-ratio layers, the inaccuracy does become problematic. I haven't quite considered to what extent, because printing at low >resolution doesn't really go hand-in-hand with caring about fine tuning the extrusion rate.

    Even at high aspect ratios (say 5:1) you can still easily have error of 5%. Not critical, but if you are trying to get screw-threads to fit without having to use horizontal offset, it makes a significant difference.

    It's not about accuracy, it's about resolution. Absolutely of course the backlash is more than the microstep resolution (backlash doesn't affect extruder accuracy as much as it affects retraction accuracy). But if you don't even have the resolution, tiny amounts of inaccuracy mean nothing. If you want to complain or deal with tiny amounts of inaccuracy, you better have about ten times the amount of resolution as the motion you want to be accurate.

    50:1 may very well be excessive in most cases, but when dealing with 0.15 mm nozzles and 20 micron layers, it's absolutely a requirement to have that resolution, especially if your models are tiny with small segments -- which they probably are if using such nozzles and layer heights. Using 64x microstepping might help, but IMO the gearbox is a better alternative because you're always basically guaranteed the full step resolution. When using 64 x microstepping, your actual consistently achievable resolution is worse.

    As for the slicer engine internally using higher resolution than output -- it better be! But even still, if that added resolution is thrown out before GCode output, what's the point? Consider this GCode:

    ; [...]
    G1 xxx E0.0002
    G1 xxx E0.0005
    G1 xxx E0.0002
    G1 xxx E0.0005
    G1 xxx E0.0002
    G1 xxx E0.0005
    ; [...]
    

    Let's assume that each of those segments is alternately x length and 0.5x length. The extrusion rate is varying wildly.

    Of course, it should actually be:

    ; [...]
    G1 xxx E0.00025
    G1 xxx E0.00050
    G1 xxx E0.00025
    G1 xxx E0.00050
    G1 xxx E0.00025
    G1 xxx E0.00050
    ; [...]
    

    In the first case, given a microstep resolution of 0.00025 mm, what would the step pulse generation look like? Something like this?:

    ; [...]
    G1 xxx E0.0002 ; no steps generated, nearly a full step amount "saved" in memory by firmware.
    G1 xxx E0.0005 ; two steps generated. Is the partial step acted upon yet? Probably not.
    G1 xxx E0.0002 ; okay another nearly full step. Do we now step twice or wait until we have 3 nearly-full microsteps?
    G1 xxx E0.0005 ; Well, I know we can do 2. But wait, we're way out of whack here. Should we just step 4 whole microsteps? TBH I'm confused.
    G1 xxx E0.0002 ; god damnit...
    G1 xxx E0.0005 ; just send them all send all the damn microsteps
    ; [...]
    

    But if your GCode resolution comfortably exceeds your microstep resolution, you can not really encounter this problem to that degree. Granted, it really is an edge case, but if you're arguing about the width of a trace being 50 microns too wide, this is the kind of stuff we're dealing with to be able to reliably extrude smoothly and realize good accuracy. If your walls are bumpy messes due to weird extrusion movement, you're never gonna be accurate at all.



  • @bot
    Unless you have a very special extruder with the worlds smallest melt chamber I suspect the extruder being in steady-state is more important than the resolution in either g-code or filament control.

    I've occasionally though about trying to design an extruder for high detail/high resolution. But I think you would need to go down to 1mm or smaller filament to get the kind of control you need. And I don't have anything I need to print that badly.

    If you are printing at those sort of layer heights and extrusion widths, yes that resolution is important... but if you are doing that, are you also using a decent screw-drive for X/Y positioning? Have you switched to ball-screws? Are you using a linear encoder on your Z axis to make sure you 20 micron layers are actually 20 microns, consistently? Aiming for sub-micron resolution while also using belt-drive is a strange place to be.
    FDM machines are inherently low resolution devices, its one of their biggest advantages.

    Besides, with just a 50 micron error on trace width... that's at least 100 microns of tolerance. That means for a screw I have to leave 200 microns of clearance.
    I know I just said low resolution... but 8 thou of clearance? That's just rubbish.
    Besides, its not like its hard to calculate it correctly.



  • @theruttmeister I don't think a special extruder is needed. I'm using an E3D v6, with their 0.15 mm nozzle.

    I usually print 40 micron layers with 0.16 mm extrusion widths. Theoretically, I could do 20 micron layers, but some smaller details might get slightly over or under extruded.

    My Z axis has a c5 precision ball screw, and my full step resolution on Z is 5 microns.

    X/Y are belt driven, with 40 micron full step resolution.

    But, even with all that resolution, I'm happy if my accuracy is within 0.2 mm. It's usually much better when I can measure it. Cubes come out within 0.05 or less consistently.

    50 micron error on the trace width was just a number I threw out. I seem to see much less variation than that on an individual trace. But, measuring an individual trace can be an exercise in frustration. All I do is strive for the best accuracy possible, and that always entails "throwing resolution at the problem." Accuracy is essentially impossible without resolution. Resolution in no way guarantees accuracy, though. Granted.

    But, to me, the "error" in approximating a trace width to a rectangular prism is not really an error in the calculation, but an error in how the wet noodle of filament decides to fall out of the nozzle. If your layers are so damn small that the difference in nominal width and actual width is 0.01 mm or less, is that really a concern that the slicer should deal with? Maybe. I don't know. Is there a good way of dealing with it that isn't just akin to dialing up or down the extrusion rate, which introduces other problems?

    Interesting discussion. Thanks for bringing it up. I have long ago accepted the "limitation" of the rectangular prism approximation. I'll give it a second thought if it seems like print accuracy can be improved noticeably.



  • @bot
    The challenge is that for Cura at least, extrusion volume is a global value. So you can't use flow rate to correct it, because doing that messes up the flow rate on solid surfaces.

    Poking at a calculator I made a while ago, an error of about 11%, for 0.25x0.5 extrusion... is about 5 microns of extra width. Maybe. I've not had enough caffeine to really try and work out the correct formula for running that backwards.

    What I remember is that in empirical testing back when we were working on this, gave us threaded parts that went together first time when we made the flow rate correction. But would jam if we didn't. Then we realised it would be a real pain to work a fix into Cura, so we worked on other things.


  • Moderator

    @theruttmeister said in Is the a misconception about printing speeds?:

    The challenge is that for Cura at least, extrusion volume is a global value. So you can't use flow rate to correct it, because doing that messes up the flow rate on solid surfaces.

    Not so. Cura allows you to control flow rate on a per print move basis.


Log in to reply