Z motor skipping steps
When running bed probing, one of the Z motors (typically the right) will just skip one of the movements, while the other will keep going, causing the whole X axis to crash into the glass plate on the bottom. It happens randomly, and I have already tried swapping the wires, buying new motors, and buying new wires, yet this keeps happening.I cannot understand why. no errors are shown in the log. sometimes it will fail halfway through, sometimes it will work, and sometimes, it fails on the first move. could this be a defective board?
Post your config.g. Are you using Z motors on different drivers, or both connected to Z? If different drivers, could be M584 is after motor settings.
They are both on the default Z Controller.
; Configuration file for Duet Maestro (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v2.1.4 on Sun Dec 15 2019 20:30:18 GMT-0500 (Eastern Standard Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Aiden's 3D Printer" ; set printer name ; Network M551 P"[REDACTED]" ; set password M552 P0.0.0.0 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 M569 P0 S0 ; physical drive 0 goes backwards M569 P1 S0 ; physical drive 1 goes backwards M569 P2 S0 ; physical drive 2 goes backwards M569 P3 S1 ; physical drive 3 goes forwards M584 X0 Y1 Z2 E3 ; set drive mapping M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z400.00 E94.00 ; set steps per mm M566 X480.00 Y480.00 Z24.00 E300.00 ; set maximum instantaneous speed changes (mm/min) M203 X18000.00 Y18000.00 Z300.00 E1500.00 ; set maximum speeds (mm/min) M201 X1500.00 Y1500.00 Z100.00 E10000.00 ; set accelerations (mm/s^2) M906 X1020 Y1020 Z1020 E1020 ; set motor currents (mA) M84 S0 ; Disable motor idle current reduction ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X200 Y200 Z180 S0 ; set axis maxima ; Endstops M574 X1 S0 P"!xstop" ; configure active-low endstop for low end on X via pin !xstop M574 Y1 S0 P"!ystop" ; configure active-low endstop for low end on Y via pin !ystop M574 Z1 S2 ; configure Z-probe endstop for low end on Z ; Z-Probe M950 S0 C"^zprobe.mod" ; create servo pin 0 for BLTouch M558 P9 C"zprobe.in" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X-36 Y-42 Z0.46 ; set Z probe trigger value, offset and trigger height M557 X36:200 Y42:200 S20 ; define mesh grid ; Heaters M308 S0 P"bedtemp" Y"thermistor" T100000 B3988 ; configure sensor 0 as thermistor on pin bedtemp M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C M307 H0 B0 S1.00 ; disable bang-bang mode for the nozzle heater and set PWM limit M308 S1 P"e0temp" Y"thermistor" T100000 B3988 ; configure sensor 1 as thermistor on pin e0temp M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1 M143 H1 S280 ; set temperature limit for heater 1 to 280C M307 H1 B0 S1.00 ; disable bang-bang mode for the nozzle heater and set PWM limit ; Fans M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on ; Tools M563 P0 S"Extruder" D0 H1 F0 ; 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 ; Custom settings are not defined ; Miscellaneous M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss T0 ; select first tool M950 S0 C"^zprobe.mod"
SIam last edited by
does the mechanic on the right side runing smooth? have you tried to set the motor currents for the z axis to 80% from the motors maximum current?
on the previous motors, yes. the current motors are set to 1020mA as that is the safe limit. the motors are rated at 1.5A each, so at 80% it would be 2.4A, being over the duet's limit of 1.6A this only affects one motor though.
Also, by skipping, I mean it makes no noise, and does not even try to move, while the other motor will move. which is odd, as they are wired in parallel.
zapta last edited by
which is odd, as they are wired in parallel.
Why not serial? In serial configuration the current through the motor is guaranteed to be identical.
sorry, I meant Series. My bad.
they are both on the Z controller that the Maestro has.
Veti last edited by
M584 X0 Y1 Z2 E3 ; set drive mapping
M584 X0 Y1 Z2:4 E3 ; set drive mapping
and connect the second motor to E1 (dont forget to add the jumpers to the second z connector)
@CaptainSnowball As both motors are connected to the Z driver pins, I'd guess this was a motor-side problem. Your Z axis motor settings look sensible, shouldn't be causing skipping, though does this happen at all speeds, or the fastest speed the axis will allow? Because the Z motors are wired in series, any break or poor connection on one motor would cause the same effect on the other side. Wiring is series keeps the current the same, but halves the voltage, though the stepper driver should take account of this and increase the voltage (if possible). As you have 1.5A rated steppers, you can set the current to 1200mA.
Most likely something is stalling the motor; either the axis is jamming (which is the most likely) or there's a problem internally with the motor, for example metal swarf in motor - test by disconnecting both Z motors, and turning the motor shaft with your fingers, feeling for any point that feels tight or the motor feels rough, compared to the other motor.
Are the motors the same (brand/type)? Unmatched motors could have different resistance, and one motor need more current. Even motors that are the same manufacturer and part number can vary. Are you using 12V or 24V PSU? If 12V, it's possible (depending on the specification of your motors) that it's not enough to voltage is going through both motors, in which case wiring each motor to a separate driver, as @Veti suggests, but this does mean you need to have a way of levelling your X gantry, ideally with a probe. See https://duet3d.dozuki.com/Wiki/Bed_levelling_using_multiple_independent_Z_motors