Duet 3hc6 Z axis stepper drivers stopped working
-
Recently I was reconfiguring the settings on the Duet 3 mainboard to fix some issues with one moter stalling. However after I changed these setting all 3 stepper drivers assigned to the Z axis stopped working. When I put the old settings back, the drivers still didnt work. The only thing i notice happening with the motors is a buzzing noise, Clicking inside the motors and the motors can barely move when their enabled. The wires look fine and when the power is of the motors can be turned smoothly with barely any resitance. The M122 command doesnt show anything wrong with the drivers either.
I have no idea how to further diagnose the issue and if these drivers are either blown up or i messed up somewhere else.
Followed are the settings withing this machine
=======================================================
; General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"Duet 3" ; set printer name
M669 K1 ; select CoreXY mode; Drives
M569 P0.0 S0 ; physical drive 0.0 goes forwards
M569 P0.1 S0 ; physical drive 0.1 goes forwards
M569 P0.2 S0 ; physical drive 0.2 goes forwards
M569 P0.3 S0 ; physical drive 0.3 goes forwards
M569 P0.4 S1 ; physical drive 0.4 goes backwards
M569 P0.5 S1 ; physical drive 0.5 goes backwards
M584 X4 Y3 Z0:1:2 E5 ; set drive mapping
M350 Z16 E32 I0 ; configure microstepping without interpolation
M350 X16 Y16 I1 ; configure microstepping with interpolation
M92 X160.00 Y160.00 Z1600.0.00 E803.14 ; set steps per mm
M566 X900.00 Y900.00 Z150.00 E600.00 ; set maximum instantaneous speed changes (mm/min)
M203 X12000.00 Y12000.00 Z200 E6000.00 ; set maximum speeds (mm/min)
M201 X1000.00 Y1000.00 Z1000.00 E1000.00 ; set accelerations (mm/s^2)
M906 X800 Y800 Z800 E800 I30 ; set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout;M671 X151:-12.5:313 Y-35:283:283 S3
; Axis Limits
M208 X42:252 Y36:279 ; set axis limits; Endstops
M574 X2 S1 P"!io1.in" ; configure active-high endstop for high end on X via pin !io3.in
M574 Y1 S1 P"!io2.in" ; configure active-high endstop for low end on Y via pin !io4.in
M574 Z2 S1 P"!io3.in" ; configure active-high endstop for high end on Z via pin !io5.in; Z-Probe
M950 S0 C"io7.out" ; Create a GPIO/Servo pin index
M558 P9 C"io7.in" H5 F120 T6000 ; enable Z probe but set dive height, probe speed and travel speed
G31 X-34.4 Y4 Z2.7 P25 ; Set Set up the probe offsets, trigger height and trigger value in G31
M557 X15:215 Y15:195 S20 ; define mesh grid; Heaters ; Bed heater
M308 S0 P"temp0" Y"thermistor" T100000B4267 ; configure sensor 0 as thermistor on pin temp0
M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0
M307 H0 A187.1 C613.9 D1.2 V23.9 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit
M140 H0 ; map heated bed to heater 0
M143 H0 S120 ; set temperature limit for heater 0 to 120C; Extruder 1 heater
M308 S1 P"temp1" Y"thermistor" T100000 B4725 C7.060000e-8 ; configure sensor 1 as thermistor on pin temp1
M950 H1 C"out1" T1 ; create nozzle heater output on out1 and map it to sensor 1
M307 H1 A553.7 C216.2 D10 V24 B0 S0.8 ; disable bang-bang mode for heater and set PWM limit
M143 H1 S300 ; set temperature limit for heater 1 to 285C
M572 D0 S0.75 ; Enable pressure advance; Fans
M950 F0 C"out7" Q500 ; create fan 0 on pin out7 and set its frequency
M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
M950 F1 C"out8" Q500 ; create fan 1 on pin out8 and set its frequency
M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on; Tools
M563 P0 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; Estop
M950 J0 C"!io4.in" ; set J0 to input 4 inverted
M581 T0 P0 S0 ; Trigger emergency stop (T0) when J0 (P0) has a falling edge
M582 T0 ; Trigger emergency stop when all inputs for T0 are low; Custom settings are not defined
T0 ; Sets Tool0 as default
; Miscellaneous
M575 P1 S1 B57600 ; enable support for PanelDue
M501 ; load saved parameters from non-volatile memory=======================================================
-
@ronineter said in Duet 3hc6 Z axis stepper drivers stopped working:
Recently I was reconfiguring the settings on the Duet 3 mainboard to fix some issues with one moter stalling. However after I changed these setting all 3 stepper drivers assigned to the Z axis stopped working. When I put the old settings back, the drivers still didnt work.
Which motor was stalling originally? Do you know why?
What settings did you change? What were they before? What are they now?
What commands are you sending to try and move the z axis that causes the buzzing?
Have you tested the Z motors and drivers individually by mapping them as single drives and trying to move them?
1600 is a fairly high steps per mm for a Z axis, what kind of an axis is it?
Why disable interpolation on Z and E?Can you send M122 and M98 P"config.g" in the gcode console and copy paste the results here?
-
@phaedrux
It was the motor mapped to driver 1, the ones on 0 and 2 where fine initially.I changed the accelaration, settings, and swapped the X and Y drivers around.
Also some other settings to reconfigure to board from cartesiaan to core XY========================================================
These where before:; Drives M569 P0.0 S1 ; physical drive 0.0 goes forwards M569 P0.1 S1 ; physical drive 0.1 goes forwards M569 P0.2 S1 ; physical drive 0.2 goes forwards M569 P0.3 S1 ; physical drive 0.3 goes forwards M569 P0.4 S0 ; physical drive 0.4 goes backwards M569 P0.5 S0 ; physical drive 0.5 goes backwards M584 X0.3 Y0.4 Z0.0:0.1:0.2 E0.5 ; set drive mapping M350 Z16 E32 I0 ; configure microstepping without interpolation M350 X16 Y16 I1 ; configure microstepping with interpolation M92 X160.00 Y160.00 Z1600.00 E779.05 ; set steps per mm M566 X900.00 Y900.00 Z150.00 E600.00 ; set maximum instantaneous speed changes (mm/min) M203 X12000.00 Y12000.00 Z300 E6000.00 ; set maximum speeds (mm/min) M201 X1000.00 Y1000.00 Z100.00 E1000.00 ; set accelerations (mm/s^2) M906 X800 Y900 Z800 E800 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout
===============================
These where after:
; Drives M569 P0.0 S0 ; physical drive 0.0 goes forwards M569 P0.1 S0 ; physical drive 0.1 goes forwards M569 P0.2 S0 ; physical drive 0.2 goes forwards M569 P0.3 S0 ; physical drive 0.3 goes forwards M569 P0.4 S1 ; physical drive 0.4 goes backwards M569 P0.5 S1 ; physical drive 0.5 goes backwards M584 X4 Y3 Z0:1:2 E5 ; set drive mapping M350 Z16 E32 I0 ; configure microstepping without interpolation M350 X16 Y16 I1 ; configure microstepping with interpolation M92 X160.00 Y160.00 Z1600.0.00 E803.14 ; set steps per mm M566 X900.00 Y900.00 Z150.00 E600.00 ; set maximum instantaneous speed changes (mm/min) M203 X12000.00 Y12000.00 Z200 E6000.00 ; set maximum speeds (mm/min) M201 X1000.00 Y1000.00 Z1000.00 E1000.00 ; set accelerations (mm/s^2) M906 X800 Y800 Z800 E800 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout
===================================================
as commands I tried using the homing sequence and a G91 followed by a G1 z-5 F200
I havnt, what i did try however was remapping the drivers to the x and y axis and hitting emergancy when it started to move.
All 3 did so they still work and it seems to be a software issue. the motor suppossed to move the Z axis didnt move tho.This is a leadscrew driven Z Axis, these are the same settings from when it was running as a caresian printer.
I have no id why i ever disabled that.
Here is the result for m122==========================================================================================
M122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.1.1 running on Duet 3 MB6HC v1.01 or later (SBC mode) Board ID: 08DJM-956L2-G43S8-6J9FL-3S86T-183LD Used output buffers: 1 of 40 (10 max) === RTOS === Static ram: 154604 Dynamic ram: 162816 of which 52 recycled Exception stack ram used: 264 Never used ram: 75480 Tasks: NETWORK(ready,1968) HEAT(blocked,1200) CanReceiv(suspended,3820) CanSender(suspended,1488) CanClock(blocked,1452) TMC(blocked,204) MAIN(running,4952) IDLE(ready,76) Owned mutexes: === Platform === Last reset 00:00:43 ago, cause: software Last software reset at 2022-06-07 20:18, reason: User, spinning module LinuxInterface, available RAM 75328 bytes (slot 3) Software reset code 0x0010 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0444a000 BFAR 0x00000000 SP 0xffffffff Task MAIN Error status: 0 MCU temperature: min 35.4, current 35.7, max 35.8 Supply voltage: min 24.0, current 24.1, max 24.1, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.1, current 12.2, max 12.3, under voltage events: 0 Driver 0: standstill, reads 15621, writes 14 timeouts 0, SG min/max 0/0 Driver 1: standstill, reads 15622, writes 14 timeouts 0, SG min/max 0/0 Driver 2: standstill, reads 15622, writes 14 timeouts 0, SG min/max 0/0 Driver 3: standstill, reads 15626, writes 11 timeouts 0, SG min/max 0/0 Driver 4: standstill, reads 15626, writes 11 timeouts 0, SG min/max 0/0 Driver 5: standstill, reads 15624, writes 14 timeouts 0, SG min/max 0/0 Date/time: 2022-06-07 20:19:14 Slowest loop: 3.84ms; fastest: 0.14ms === Storage === Free file entries: 10 SD card 0 not detected, interface speed: 37.5MBytes/sec SD card longest read time 0.0ms, write time 0.0ms, max retries 0 === Move === Hiccups: 0(0), FreeDm: 375, MinFreeDm: 375, MaxWait: 0ms Bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 CDDA state: -1 === AuxDDARing === Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 CDDA state: -1 === Heat === Bed heaters = 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1 Heater 1 is on, I-accum = 0.0 === GCodes === Segments left: 0 Movement lock held by null HTTP* is ready with "M122" in state(s) 0 Telnet is idle in state(s) 0 File is idle in state(s) 0 USB is idle in state(s) 0 Aux is idle in state(s) 0 Trigger* is idle in state(s) 0 Queue is idle in state(s) 0 LCD is idle in state(s) 0 SBC is idle in state(s) 0 Daemon* is idle in state(s) 0 Aux2 is idle in state(s) 0 Autopause is idle in state(s) 0 Code queue is empty. === Network === Slowest loop: 0.86ms; fastest: 0.01ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions Telnet(0), 0 sessions HTTP sessions: 0 of 8 - Ethernet - State: disabled Error counts: 0 0 0 0 0 Socket states: 0 0 0 0 0 0 0 0 === CAN === Messages sent 144, longest wait 0ms for type 0 === Linux interface === State: 0, failed transfers: 0 Last transfer: 17ms ago RX/TX seq numbers: 1167/1169 SPI underruns 0, overruns 0 Number of disconnects: 0 Buffer RX/TX: 0/0-0 === Duet Control Server === Duet Control Server v3.1.1 Code buffer space: 4096 Configured SPI speed: 8000000 Hz Full transfers per second: 31.62
==================================================
This is the result for M98========================================== M98 P"config.g" Warning: M307: Heater 0 appears to be over-powered. If left on at full power, its temperature is predicted to reach 212C Warning: M307: Heater 1 appears to be over-powered. If left on at full power, its temperature is predicted to reach 578C Warning: M307: Heater 0 appears to be over-powered. If left on at full power, its temperature is predicted to reach 212C Warning: M307: Heater 1 appears to be over-powered. If left on at full power, its temperature is predicted to reach 804C =========================================
Doesnt look like it has anythign to do with this problem
-
I think M201 Z1000 may be too aggressive acceleration and it's binding. Can you try M201 Z60? That should give it a nice gentle take off. If that works, slowly increase it from there. Z240 isn't too bad for a lead screw.
Does driver 1 work at all individually?
-
@phaedrux
Assigning M201 Z60 doesnt do the trickThey all work when re assigned to the X and Y axis. all 0, 1 and 2.
is there any other standard file that might influence Driver behavior? Somewhere is re assigning the steps per MM as 1
running m92 after a reset gives the same result -
After sending M92 Z1600 in the Gcode console the drivers work.
After a board reset its back.
Oh found it. it was
M92 X160.00 Y160.00 Z1600.0.00 EE803.14 ; set steps per mm
The original issue with driver 1 seems to be fixed two. It sounds like that was caused by the acceleration setting.
Thanks for the help
-
-
-