Application Version
3.6.0
Platform
Windows 10
Printer
With Marlin firmware
So I'd like to have a feature to limit the maximum speed of the extruder, while printing.
I've tried doing this by chaging the limits in firmware, but it made retraction slow too, obviously.
So what I imagine is a new setting in the speed tab, like retraction speed
Extruder max. speed [mm/s] - lets say 3mm/s. Thats 180 mm/min
And then in the gcode it would be like:
.....
M203 E180 ; set extruder speed for printing
; printing now
G1
G1
G1
...
;Now retract, reset feedrate
M203 E...
G1 ;retract
G0 ;travel
G0
G1 ; un-retract
M203 E180 ; reset feedrate
Why I think this is good?
We can easily measure the max. feedrate our printer can handle with certain filaments. For me it's 200mm/min. This value doesn't change for different layer heights, so no need to play with temperature/speed settings when increasing layer height.
The max print speed would be limited in firmware.
Edit:
I'm a hobby programmer. The way I would go implementing this, is:
stick an M203 at the beginning
before every retraction set M203
after every retraction, set M203
This has been asked of us before but I can't find the original back right now.
We would prefer to implement this in a somewhat different way: Using inheritance formulas in the front-end. You would set the maximum flow rate as a setting in mm鲁/s, and the setting for the print speed would be a formula such as this:
speed_print = =max_flow / layer_height / line_width
And then the printing speed would be adjusted down if you increase the layer height.
What I'm not really sure about yet though is how that would look if there are also other constraints to the print speed, such as accelerations in the outer wall causing ringing, steppers losing steps when going too fast, etc.
Sounds great! Looking forward to it :)
At first sight it doesn't look like it's going to cause ringing, you're essentially just adjusting the max print speed.
The final formula for the speed could be something like:
speed_print = min( (max_flow / layer_height / line_width), user_set_max_speed)
I would only use it to insure, that I'm not printing faster than my extruder can handle.
I got the idea when printing 0.32 infill and 0.16 wall, at 100mm/s. The walls were fine, but the infill was under-extruded.
For now I'll write myself a parser
This has been asked of us before but I can't find the original back right now.
We would prefer to implement this in a somewhat different way: Using inheritance formulas in the front-end. You would set the maximum flow rate as a setting in mm鲁/s, and the setting for the print speed would be a formula such as this:
speed_print = =max_flow / layer_height / line_width
And then the printing speed would be adjusted down if you increase the layer height.
What I'm not really sure about yet though is how that would look if there are also other constraints to the print speed, such as accelerations in the outer wall causing ringing, steppers losing steps when going too fast, etc.
Hi, any news on this? this really helpfull feature
Not really, but it depends on the printer you're using. Realistically it's hard to get this sort of thing through for Ultimaker printers, since all of Ultimaker's profiles need to be re-tested then. For other printers we're dependent on people from the community that have those printers to test, but since they don't have a setting to test with it's not going to be easy for them. A bit of a circle of dependencies going on.
Not really, but it depends on the printer you're using. Realistically it's hard to get this sort of thing through for Ultimaker printers, since all of Ultimaker's profiles need to be re-tested then. For other printers we're dependent on people from the community that have those printers to test, but since they don't have a setting to test with it's not going to be easy for them. A bit of a circle of dependencies going on.
may be just add setting for "extrusion speed" in the speed tab, or material tab? and user can calibrate it themself. it's like calibrate step/mm for extruder but trough hot nozzle, command "feed" 100mm and measure is it really go 100mm through extruder with hot nozzle or just 85mm.
for ex. my extruder can melt plastic with 3.5mm/sec direct flow. with 0.8 nozzle and 0.4layer it can provide max feedrate is ~70-80mm/sec, with 0.3 layer it can 80-100mm/sec. for this moment i test it with every nozzle/layer change, but if we'll have setting like this then slicer will limit max print speed depends on "raw extrusion speed", not "feeder speed". for now it could be added in "experimental tab". really, it would be reeeealy helpful.
If the "extrusion speed" changes, would it change the line width or the printing speed?
It should limit printing speed. Because if I want smaller line width i can set it. But if extruder can't provide needful amount of plastic on current printing speed with current line width and layer height then printer should slowdown.
For this moment with plugin "printer settings" i can set "maximum feedrate" but it limit whole extruder speed and i can't use retract.
Hmm, I think the most major concern left then is that the printing speed settings won't work any more then. Either that, or the extrusion speed setting won't work if the printing speed settings are overridden by any profile.
in my opinion "extrusion speed" should be in charge, by default it could be as lightspeed, but if user want to calibrate "melt plastic extrusion speed" then feedrate should be limited by it. For example i don't really know is my priter able melt "this plastic" through 0.8 nozzle with layer 0.4 at speed 100mm/sec. but if there will be an option "melt plastic extrusion speed" that i checked before (like 3mm/sec) then slicer limit feedrate speed to 92mm/sec, because slicer can calculate what really speed of "melt plastic extrusion speed" will be in that setup and i'm not :)
i mean if through 0.8 nozzle with layer 0.4 at speed 100mm/sec my extruder should feed raw plastic with 3.5mm/sec - my extruder would'n able to do it right, gear start to slip on raw plastic, there is clogging in nozzle and print will not be successfull. in case when we have THAT option CURA will show me that speed of infill with 100mm/sec is "yellow warning" or just limit it when sliced.
sorry for my not realy good english.
Regards,
Stump )
You mean that there should be a "maximum extruder feed rate" setting, then, but one that does not limit the retraction speeds as well.
yes. actually i don't know when CURA calculate actual speed of extruder feedrate, i think CURA do it only when it slicing.
so it should limit whole printing speed limited with "maximum extruder feed rate" while it calculate all. by default it could be at "light speed"
it's like "Minimum Layer Time", but vice versa
I would really like this feature too, a setting for the Maximum Volumetric Flow rate of the Extruder HotEnd combination.
Quite often I'll set my speeds thinking I have things dialed in for that print and then ninety minutes into the print the extruder will start clicking causing under extrusion as it snaps back and possibly other imperfections as it snaps forward again.
At that point I have to decide if I would rather have the extra imperfections or try again throwing out what has been printed so far.
CNC Kitchen has a video showing how at higher volumetric flows the amount extruded drops off and can be somewhat compensated for with temperature increases. This could help with keeping those volumetric flowrate inconsistencies in check .
That is a very needed feature for me too. With 0.8 and 1.0mm nozzles extruder becomes the only limit for print speed.
Looks like this feed limit should naturally behave like Minimum Layer Time. It is a dynamic limitation as Layer Height and Line Width may be variable through the print.
Units for this configuration aren't that important as mm鲁/s and mm/s are basically the same and cant change independently for a given filament width.
Hey. I would really love to see that feature too. Not only for the larger nozzle diameters but also for filaments like TPU this is really useful.
As far as my experiences with other slicers go I would assume an implementation liket this: For PLA afaik 12-15 mm鲁/s is a good starting point for a regular hotend. This should limit the maximum printing speed. Or not if you assume a 0.4 nozzle because your printer can probably not go that fast so your regular printing speed applies. It's basically a max function on your volumetric speed and your print speed settings. For a 0.8 nozzle and a 0.4 layer height it would automatically calculate the maximum speed and still respect your regular speed settings otherwise. For a volcano it's more in the 30 mm鲁/s department so I personally don't really need it however it does make a difference for common hotends.
For TPU/Flex this makes adjusting settings also much easier. You could just set your max volumetric speed to something like 1.5 mm鲁/s and assuming a .2 layer height and a .44 line width your print speed would cap at 1.5/(0.2*0.44). Like this I can basically print speed constrained materials without messing with print speed settings.
I know what to set manually but especially more inexperienced users who would try larger nozzles on a common hotend would benefit from not messing up the prints and clogging the hotend. And I just miss this setting since it seems like a calculation that could be possible.
For an ender 3 with a 0.4mm nozzle it鈥檚 closer to 6 or 7 cubic mm/s ... 50 mm/s with 0.5mm nozzle 0.635 mm line width and 0.24 mm layer height clicking away ... dropped down to 45%. So much easier to limit it by volumetric rate. Then if I make a mistake (Going too fast) I don鈥檛 have to slow everything down.
+1. This is the primary thing that stops me from using Cura as much as I'd like.
any news about Volumetric speed limits?
Sorry, no, we haven't worked on this yet.
Some addon to the tread. The Volumetric speed aka mm3/s is critical on all FDM printers! If you hit that limit under extrusion is a fact.
I had an issue with my bowden tube and made some tests and calculations (good page for the math and how to test http://projects.ttlexceeded.com/3dprinting_calibrating_volumetric_rate.html)
My results with a stock Volcano head 0.8mm nozzle on stock Flsun Q5 gave me this:
Filament: PrimaValue Black PLA
(bad bowden tube)
Temp Max Extrusion speed mm3/s (F/60 * A (2.403 for 1.75) )
M109 S200 G1 E100 F200 8.01 mm3/s
M109 S210 G1 E100 F350 12.015 mm3/s
M109 S220 G1 E100 F500 20.025 mm3/s
(changed to unbranded one laying around)
M109 S190 G1 E100 F550 22.0275 mm3/s
M109 S200 G1 E100 F600 24.03 mm3/s
M109 S210 G1 E100 F650 26.0325 mm3/s
M109 S220 G1 E100 F750 30.025 mm3/s
30mm/s is the max my setup can extrude in open air. That limit should never be passed. Adding a safety margin for back pressure when extruding will have to be applied but in my case that was needed when I printed at 0.10mm layer with a 0.8mm nozzle (yes it did print just fine at 1mm line width)
To control extrusion with mm/s instead of mm2/s gives you a lot of errors you have to tweek.
-The gripping diameter of the filament pulley is depending on how soft the filament is. The gripping radius will change and thereby the distance per step will change.
-The nozzle pressure depends a lot on nozzle temperature for each filament used
-The layer height generates different back pressure especially when using "ironing" with a wider line width than nozzle diameter
By using mm2/s we will reduce the needed tweaking to just for each filament to for constants:
Temperature: C
Layer height: mm
Line width: mm
Volumetric: mm3/s
And we will get max printing speed in mm/s by doing the math
20mm3/s @ 0.2mm layer and 1mm line width gives:
20mm3 / (0.2mm * 1mm) = 100mm/s max speed
After that calculation we can start doing all the nice printout tweaks
//Agge
Most helpful comment
Some addon to the tread. The Volumetric speed aka mm3/s is critical on all FDM printers! If you hit that limit under extrusion is a fact.
I had an issue with my bowden tube and made some tests and calculations (good page for the math and how to test http://projects.ttlexceeded.com/3dprinting_calibrating_volumetric_rate.html)
My results with a stock Volcano head 0.8mm nozzle on stock Flsun Q5 gave me this:
Filament: PrimaValue Black PLA
(bad bowden tube)
Temp Max Extrusion speed mm3/s (F/60 * A (2.403 for 1.75) )
M109 S200 G1 E100 F200 8.01 mm3/s
M109 S210 G1 E100 F350 12.015 mm3/s
M109 S220 G1 E100 F500 20.025 mm3/s
(changed to unbranded one laying around)
M109 S190 G1 E100 F550 22.0275 mm3/s
M109 S200 G1 E100 F600 24.03 mm3/s
M109 S210 G1 E100 F650 26.0325 mm3/s
M109 S220 G1 E100 F750 30.025 mm3/s
30mm/s is the max my setup can extrude in open air. That limit should never be passed. Adding a safety margin for back pressure when extruding will have to be applied but in my case that was needed when I printed at 0.10mm layer with a 0.8mm nozzle (yes it did print just fine at 1mm line width)
To control extrusion with mm/s instead of mm2/s gives you a lot of errors you have to tweek.
-The gripping diameter of the filament pulley is depending on how soft the filament is. The gripping radius will change and thereby the distance per step will change.
-The nozzle pressure depends a lot on nozzle temperature for each filament used
-The layer height generates different back pressure especially when using "ironing" with a wider line width than nozzle diameter
By using mm2/s we will reduce the needed tweaking to just for each filament to for constants:
Temperature: C
Layer height: mm
Line width: mm
Volumetric: mm3/s
And we will get max printing speed in mm/s by doing the math
20mm3/s @ 0.2mm layer and 1mm line width gives:
20mm3 / (0.2mm * 1mm) = 100mm/s max speed
After that calculation we can start doing all the nice printout tweaks
//Agge