Unwanted decelerations during travel moves
-
I have noticed that long travel moves are not smooth. If a G1 command is sent to quickly move a long fistance, the print head decelerates and accelerates several times during the move.
What could be causing this? Z axis movement settings too conservative for mesh grid compensation?
Here's a video of the phenomenon:
http://imgur.com/a/6sdqtUvHere is my config file:
; Configuration file for Duet Maestro
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v2; General preferences
G90 ; Send absolute coordinates...
M83 ; ...but relative extruder moves; Network
M550 P"Printer of Theseus" ; Set machine name
M555 P0 ; Set gcode flavor to RepRapFirmware
M551 P"reprap" ; Set password
M552 P192.168.2.2 S1 ; Enable network and acquire dynamic address via DHCP
M586 P0 S1 ; Enable HTTP
M586 P1 S0 ; Disable FTP
M586 P2 S0 ; Disable Telnet; Drives (X=0 Y=1 Z=2 E0=3 E1=4)
; Equations for StealthChop/SpreadCycle transition feed F (mm/s), where V is the parameter given in M569 command and S is the steps/mm:
; V = 1.5E6/(SF)
; F = 1.5E6/(SV)M569 P0 S0 D3 V2500 ; Physical drive 0 goes backwards
M569 P1 S1 D3 V2500 ; Physical drive 1 goes forwards
M569 P2 S0 D3 V187.5 ; Physical drive 2 goes backwards 1875
M569 P3 S0 D3 V1000 ; Physical drive 3 goes backwards
M569 P4 S1 D3 V1000 ; Physical drive 4 goes backwards
M569 P5 S0 D3 V333.3 ; Physical drive 5 goes forwards
M350 X32 Y32 Z32 E32:32:32 I1 ; Configure microstepping with interpolation
M92 X200.00 Y200.00 Z800.00 E300.00:300.00:900.00 ; Set steps per mm
M566 X300.00 Y300.00 Z24.00 E40:40:40 ; Set maximum instantaneous speed changes (mm/min)
M203 X15000 Y15000 Z360 E6000:6000:6000 ; Set maximum speeds (mm/min) 7200
M201 X1250 Y1250 Z1000 E1000:1000:1000 ; Set accelerations (mm/s^2)
M906 X1400 Y1400 Z800 E500:500:600 I30 ; Set motor currents (mA) and motor idle factor in percent
M84 S180 ; Set idle timeout; Axis Limits
M208 X0 Y-5 Z0 S1 ; Set axis minima
M208 X256 Y225 Z201 S0 ; Set axis maxima
M564 H0 S1 ; Allow movement before homing and disallow movement outside of axis limits; Endstops
M574 X1 Y1 S1 ; Set active high endstops; Z-Probe
M574 Z1 S2 ; Set endstops controlled by probe
M558 P5 H1 I1 F300 T15000 ; Set Z probe type to switch and the dive height + speeds
G31 P500 X22.5 Y0 Z0.40 ; Set Z probe trigger value, offset and trigger height
M557 X25:231 Y20:200 P5:5 ; Define mesh grid; Heaters
M305 P0 T100000 B4725 C7.06e-8 R2200 ; Set thermistor + ADC parameters for heater 0
M143 H0 S110 ; Set temperature limit for heater 0 to 110C
M305 P1 T100000 B4725 C7.06e-8 R2200 ; Set thermistor + ADC parameters for heater 1
M143 H1 S290 ; Set temperature limit for heater 1 to 290C
M305 H100 P101 S"Duet MCU Temp" ; Configure MCU thermister
M305 H101 P101 S"Duet Drivers Temp" ; Configure driver thermister; Fans
M106 P0 S0.0 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
M106 P1 S1.0 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
M106 P2 S1.0 I0 F500 H100:101 T40 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on; Tools
M563 P0 D0:2 H1 ; Define tool 0
G10 P0 X0 Y0 Z0 ; Set tool 0 axis offsets
G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C
M567 P0 E1:1 ; Set mix ratio 1 to 1
M563 P1 D1:2 H1 ; Define tool 1
G10 P1 X0 Y0 Z0 ; Set tool 1 axis offsets
G10 P1 R0 S0 ; Set initial tool 1 active and standby temperatures to 0C
M567 P1 E1:1 ; Set mix ratio 1 to 1; Automatic saving after power loss is not enabled
; Custom settings
M572 D0 S0.02 ; Enable pressure advance for extruder 0
M572 D1 S0.02 ; Enable pressure advance for extruder 1M501 ; Load stored settings
Thanks!
-
I suspect it is because you are using mesh bed compensation but you have a very low Z jerk limit set in your M566 command. When the head crosses a ridge or valley in the height map, the Z motor has to reverse direction. It's slowing down to keep the change in Z motor speed within the jerk limit.
-
@dc42 Thanks for the explanation, that makes a lot of sense. When I have access to my machine again I'll try that out.