Changing Acceleration Midprint
-
It is possible to change acceleration values for the X and Y axis during a print, either from the command prompt or by inserting it into the G-code? The goal is to change accelerations for a ringing test.
-
@3dprintingworld yes that's possible. The standard way to change XY accelerations during a print is to use the M204 command, however M201 cold also be used.
-
@dc42 That's what I thought but does not seem to be working for me. I'm trying to increase the accel by 1000 every 25 layers starting at 2000.
Config
M201 X2000.00 Y2000.00 Z500.00 E600.00
Inserted on line 25 of gcode
M201 X3000.00 Y3000.00I also tried M204 like this.
Config
M201 X2000.00 Y2000.00 Z500.00 E600.00
Inserted on line 25
M201 X3000.00 Y3000.00
M204 P3000.00 T3000.00It does not look like its increasing, plus layer times are not decreasing. Is there a way to check the current acceleration setting?
-
@3dprintingworld said in Changing Acceleration Midprint:
Is there a way to check the current acceleration setting?
Yes, send M201 by itself and it will report back the current value.
Is your slicer inserting it's own values?
Are your extruder settings holding things back perhaps?
-
@phaedrux Thanks, that will make it easy to verify.
When searching the g-code the only M201 or 204 I find is the ones I inserted.
"The extruder holding it back", like its accelerations are not fast enough to keep up with the travel moves? I can increase it and try. -
@3dprintingworld you can also use a macro called on a layer change using the command M98.
The idea was to be able to adjust the values without having modify manually a gcode file or modify the gcode in the slicer every time.Below is a script (requires RRF3+) I used longtime ago, I'm not sure at 100% it works but you have a base to play with.
It can be easily improved with a loop or to also test the Jerk or even Input Shaping values.var mbase = 7000 var macc = {var.mbase} if move.axes[2].machinePosition >= 55 set var.macc = {var.mbase}+5500 elif move.axes[2].machinePosition >= 50 set var.macc = {var.mbase}+5000 elif move.axes[2].machinePosition >= 45 set var.macc = {var.mbase}+4500 elif move.axes[2].machinePosition >= 40 set var.macc = {var.mbase}+4000 elif move.axes[2].machinePosition >= 35 set var.macc = {var.mbase}+3500 elif move.axes[2].machinePosition >= 30 set var.macc = {var.mbase}+3000 elif move.axes[2].machinePosition >= 25 set var.macc = {var.mbase}+2500 elif move.axes[2].machinePosition >= 20 set var.macc = {var.mbase}+2000 elif move.axes[2].machinePosition >= 15 set var.macc = {var.mbase}+1500 elif move.axes[2].machinePosition >= 10 set var.macc = {var.mbase}+1000 elif move.axes[2].machinePosition >= 5 set var.macc = {var.mbase}+500 else set var.macc = {var.mbase} M201 X{var.macc} Y{var.macc}
-
@fred-y That's really smart, I just put a dumb script in my slicer at layer height.
-
Thanks for the help! It turns out changing M201 worked perfectly fine from the start. I expected to see a larger amount of ringing between accelerations but I was printing fast enough as I forgot to turn up perimeter under speed.