How to diagnose an issue with broken stepper output
-
@dima If it was me id change the stepper cable out first then if that failed move the suspect driver to an axis/extruder that I can control on its own and attempt to move it.
Is there any sign of damage to the driver chip/board? does it make any noise at all when driving?
-
@jumpedwithbothfeet I already know the stepper&cable work I plugged them into another port and they worked fine. I did not see any damage on the board.
When I try to get that specific port to move (extrude), any stepper attached does not move.
-
@dima it would be helpful to post your config.g, what driver is the one at fault?
-
I wanted to ask if it could be in fact a firmware issue, and hopefully not anything physical.
this is my config, I'm aware my fans are off.
; Configuration file for Duet 3 (firmware version 3)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v3.3.5 on Sat Nov 20 2021 23:14:00 GMT-0500 (Eastern Standard Time); General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"My Printer" ; set printer name; Network
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.0 S1 ; 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 (z)
M569 P0.3 S0 ; physical drive 0.3 goes forwards (z)
M569 P0.4 S1 ; physical drive 0.4 goes forwards
M569 P0.5 S1 ; physical drive 0.5 goes forwards
M584 X0.0 Y0.1 Z0.2:0.3 E0.4:0.5 ; set drive mapping
M350 X16 Y16 Z16 E16:16 I0 ; configure microstepping without interpolation
M92 X100.00 Y105.00 Z1600.00 E110.00:110.00 ; set steps per mm
M566 X900.00 Y900.00 Z60.00 E80.00:80.00 ; set maximum instantaneous speed changes (mm/min)
M203 X6000.00 Y6000.00 Z180.00 E1200.00:1200.00 ; set maximum speeds (mm/min)
M201 X500.00 Y500.00 Z20.00 E250.00:250.00 ; set accelerations (mm/s^2)
M906 X800 Y800 Z800 E800:800 I30 ; set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout; Axis Limits
M208 X0 Y0 Z0 S1 ; set axis minima
M208 X205 Y250 Z250 S0 ; set axis maxima; Endstops
M574 X1 S1 P"!io0.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin !io0.in
M574 Y0 S1 P"!io1.in" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin !io1.in
M574 Z1 S1 P"!io2.in" ; configure switch-type (e.g. microswitch) endstop for low end on Z via pin !io2.in; Z-Probe
M558 P0 H5 F120 T3000 ; disable Z probe but set dive height, probe speed and travel speed
M557 X15:205 Y15:195 S20 ; define mesh grid; Heaters
M308 S0 P"temp0" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp0
M950 H0 C"out1" T0 ; create bed heater output on out1 and map it to sensor 0
M307 H1 B1 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
M308 S1 P"temp1" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin temp1
M950 H1 C"out2" T1 ; create nozzle heater output on out2 and map it to sensor 1
M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
M143 H1 S280 ; set temperature limit for heater 1 to 280C
M308 S2 P"temp2" Y"thermistor" T100000 B4138 ; configure sensor 2 as thermistor on pin temp2
M950 H2 C"out3" T2 ; create nozzle heater output on out3 and map it to sensor 2
M307 H2 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
M143 H2 S280 ; set temperature limit for heater 2 to 280C; Fans
; M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency
; M106 P0 C"AlwaysOn0" S0 H-1 ; set fan 0 name and value. Thermostatic control is turned off
; M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency
; M106 P1 S0 H-1 ; set fan 1 value. Thermostatic control is turned off; Tools
M563 P0 S"noz1" 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
M563 P1 S"noz2" D1 H2 F0 ; define tool 1
G10 P1 X5 Y0 Z0 ; set tool 1 axis offsets
G10 P1 R0 S0 ; set initial tool 1 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 -
@dima
The driver is 0.5
And when I run m122 I get
'Driver 5: position 0, standstill, reads 48153, writes 0 timeouts 0, SG min/max not available' -
@dima you need to run through and change each of these -
M350 X16 Y16 Z16 E16:16 I0 ; configure microstepping without interpolation M92 X100.00 Y105.00 Z1600.00 E110.00:110.00 ; set steps per mm M566 X900.00 Y900.00 Z60.00 E80.00:80.00 ; set maximum instantaneous speed changes (mm/min) M203 X6000.00 Y6000.00 Z180.00 E1200.00:1200.00 ; set maximum speeds (mm/min) M201 X500.00 Y500.00 Z20.00 E250.00:250.00 ; set accelerations (mm/s^2) M906 X800 Y800 Z800 E800:800 I30 ; set motor currents (mA) and motor idle factor in per cent
M566 Gcode reference RepRapFirmware does not support individual motor settings where an axis has multiple motors connected to different stepper drivers. The first parameter specified will be used for all motors on the axis. You should use identical motors on any axis that has more than one motor to avoid unexpected behaviour. Example: If you have two motors on your Z axis, physically connected to Z and E0 stepper drivers, configured with M584 Z2:3, set M566 Z50, not M566 Z50:50
https://duet3d.dozuki.com/Wiki/Gcode use this to check each M code and change them as required
-
Can you send M122 and M98 P"config.g" and post the result?
How many extruders do you have? 1 or 2?
What axis are you trying to use drive 0.5 as? Right now it's set as extruder 2. How are you trying to move the motor?
-
@phaedrux
when I run m122 I get
Driver 5: position 0, standstill, reads 48153, writes 0 timeouts 0, SG min/max not available
I have 2 extruders, 0.5 is the second extruder.
Sidenote - I cannot see a second extrusion control when I go the dashboard tab of dwc.
If that is at all helpful -
@dima when I try to extrude from it, I get
response took to long
issues raised -
@phaedrux said in How to diagnose an issue with broken stepper output:
M98 P"config.g"
M98 returns ->
HTTP is enabled on port 80
FTP disabled
Telnet disabled
Error: unknown pin name 'fan0'
Error: Fan number 0 not found
Error: unknown pin name 'fan1'
Error: Fan number 1 not found
Also just noticed in consol!
Warning: motor phase A may be disconnected reported by driver(s) 5
and
Warning: motor phase B may be disconnected reported by driver(s) 5 -
Can you post the full M122 result from the console tab please?
motor phase disconnected can mean exactly that and the wiring it not actually connected to the right phases.
Are you able to test that same wiring and motor on another driver successfully?
-
@phaedrux
I have successfully used the stepper motor (w/ the same wiring) from different ports
m122
=== Diagnostics ===
RepRapFirmware for Duet 3 MB6HC version 3.2 running on Duet 3 MB6HC v1.01 or later (standalone mode)
Board ID: 08DJM-956BA-NA3TJ-6J1F6-3SJ6T-TVAUV
Used output buffers: 3 of 40 (20 max)
=== RTOS ===
Static ram: 149788
Dynamic ram: 93140 of which 284 recycled
Never used RAM 115620, free system stack 130 words
Tasks: NETWORK(ready,175) ETHERNET(blocked,109) HEAT(blocked,277) CanReceiv(blocked,927) CanSender(blocked,352) CanClock(blocked,349) TMC(blocked,19) MAIN(running,1123) IDLE(ready,19)
Owned mutexes:
=== Platform ===
Last reset 22:26:15 ago, cause: software
Last software reset at 2022-01-31 18:14, reason: User, GCodes spinning, available RAM 115868, slot 2
Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0044a000 BFAR 0x00000000 SP 0x00000000 Task MAIN Freestk 0 n/a
Error status: 0x00
Aux0 errors 0,0,0
Aux1 errors 0,0,0
MCU temperature: min 41.8, current 44.3, max 45.6
Supply voltage: min 23.9, current 24.0, max 24.1, under voltage events: 0, over voltage events: 0, power good: yes
12V rail voltage: min 11.9, current 12.0, max 12.0, under voltage events: 0
Driver 0: position 0, standstill, reads 6966, writes 20 timeouts 0, SG min/max 0/0
Driver 1: position 0, standstill, reads 6966, writes 20 timeouts 0, SG min/max 0/0
Driver 2: position 40000, standstill, reads 6961, writes 25 timeouts 0, SG min/max 0/126
Driver 3: position 0, standstill, reads 6961, writes 25 timeouts 0, SG min/max 0/106
Driver 4: position 0, standstill, reads 6967, writes 20 timeouts 0, SG min/max 0/0
Driver 5: position 0, standstill, reads 6962, writes 25 timeouts 0, SG min/max 0/0
Date/time: 2022-02-01 16:40:23
Slowest loop: 17.78ms; fastest: 0.05ms
=== Storage ===
Free file entries: 10
SD card 0 detected, interface speed: 25.0MBytes/sec
SD card longest read time 7.6ms, write time 4.7ms, max retries 0
=== Move ===
DMs created 125, maxWait 19187302ms, bed compensation in use: none, comp offset 0.000
=== MainDDARing ===
Scheduled moves 7, completed moves 7, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 4], CDDA state -1
=== AuxDDARing ===
Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 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
=== GCodes ===
Segments left: 0
Movement lock held by null
HTTP is idle 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: 45.32ms; fastest: 0.02ms
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: 1 of 8- Ethernet -
State: active
Error counts: 0 0 0 0 0
Socket states: 5 2 2 2 2 0 0 0
=== CAN ===
Messages queued 323102, send timeouts 726977, received 0, lost 0, longest wait 0ms for reply type 0, free buffers 48
- Ethernet -
-
When and where did you purchase your Duet?
-
@phaedrux I bought the duett board with a 3d printer (used) off FB Marketplace. I bought it last summer (2021), I do not know how long ago the previous owner had the board.
-
Ah, that does complicate things on the warranty front as we don't know the vendor, it's age, or even if it is genuine. If you can post some photos of the board we may be able to get a better idea of it's provenance. The 6HC is a fairly recent board and only very recently cloned, so I think the likelihood of it being genuine is good.
-
@dima if it's black it's a clone and if it's blue it's real
-
-
@Dima still doing a little digging to see if we can pin down the original purchase of the board to determine warranty status.
Barring that, there are two other options available.
We have some refurbished Duet3 boards that we offer at reduced cost on exchange with the old board.
Or, if that's too expensive an option, and you require all the drivers perhaps using a toolboard for the extruder would be a good option?
-
@Phaedrux
would this mean that it is not a software/firmware issue?
Could I be running too old of a firmware? -- even if its 'stable' -
No it doesn't seem like a firmware issue. The phase error would indicate there is a connection issue, but you have tested the motor and wiring successfully on a different driver. That would indicate that the driver has failed/damaged.
Though if you'd like to update to 3.3 just in case feel free.
Upload this zip file to the system tab.
https://github.com/Duet3D/RepRapFirmware/releases/download/3.3/Duet2and3Firmware-3.3.zip