Is there a way to specify printer speed for specific layers?
Hi - I need to have a certain layer (12) print slower - say 80%. I currently have to manually turn the dial on my MK3S to 80% then bring it back up. Wondering if theres any way to specify print speed for a specific layer? Maybe someone knows a gcode hack? Appreciate any help! TY!
Best Answer by Neophyl:
When you dial the speed down from the dial that is the equivalent of M220 (Set feedrate percentage) which applies to all axis feedrates so movement in XYZ and extrusion (E). It does not effect fan speeds or anything else. So if slicer was configured for perimeters at 50mm and infill at 80mm and you sliced the file and printed it, then slowing down to 50% via the dial would result in perimeters at 25mm and infill at 40mm with no changes to fan etc.
You could use the insert custom gcode at specific layers option (same as the process to insert a pause or colour change) and thentype in/insert a M220 S50 for example to set 50% and then at a later layer add another custom gcode set it back.
M220 is Marlin specific as the Mk3 uses a firmware based on Marlin (but doesn't support all the possible codes, no printer does really though) and it does support some purely specific Prusa codes that they added.
RE: Is there a way to specify printer speed for specific layers?
You can use a height range modifier to do this. just slice the project get the layer you want it on, say layer 12, so you would set the modifier at layer 11, that will affect layer 12 and you can add all the speed settings to the modifier.
You will want to be in expert mode so you have all the settings available to you.
The knowledge base should have more info on this process.
RE: Is there a way to specify printer speed for specific layers?
Thanks for the lead! I read the KB and tried to implement but am confused – how will these settings interact with the printer settings? For my print, I am running the printer at 125% then reducing to 80% just for this one layer, then bringing it back to 125%. If I change the settings here (I would have to calculate 80% because it only accepts mm/s here) and just leave the printer at 125% -- it would run at 125% of whatever I calculate? So I would have to calculate to compensate for that?
Also, would changing the speed here change all the other necessary values? Ex - fan speed, etc? I assume that when I adjust the printer speed using the dial it adjusts whatever other variables necessary to compensate for the faster printing (but maybe I'm wrong here?)
There's no gcode injection trick to adjust the print speed? Basically what I do with the dial but automatically? I realize it would have to be prusa-specific probably...
Sorry for all the questions and hope they make sense! This is my deepest dive into print settings plumbing in 3 yrs of printing : )) TY again for any insight.
RE: Is there a way to specify printer speed for specific layers?
When you dial the speed down from the dial that is the equivalent of M220 (Set feedrate percentage) which applies to all axis feedrates so movement in XYZ and extrusion (E). It does not effect fan speeds or anything else. So if slicer was configured for perimeters at 50mm and infill at 80mm and you sliced the file and printed it, then slowing down to 50% via the dial would result in perimeters at 25mm and infill at 40mm with no changes to fan etc.
You could use the insert custom gcode at specific layers option (same as the process to insert a pause or colour change) and thentype in/insert a M220 S50 for example to set 50% and then at a later layer add another custom gcode set it back.
M220 is Marlin specific as the Mk3 uses a firmware based on Marlin (but doesn't support all the possible codes, no printer does really though) and it does support some purely specific Prusa codes that they added.
RE: Is there a way to specify printer speed for specific layers?
@andrey
Neophyl gave a very good explanation, I found this old post on google and it may help also.
RE: Is there a way to specify printer speed for specific layers?
This worked splendidly! Thanks!