SOLVED defective stepper driver?



  • My Duet 2 Ethernet board appears to have a defective stepper driver, on driver 0 (x motor).

    When attempting to home the x-axis, the board reports that driver 0 is not connected to phase A or phase B.

    I double-checked my wiring to the motor, and everything is correct and has continuity. As an additional step, I connected my printer to another control board, and can successfully move the motor that was connected to driver 0 on the Duet 2 Ethernet board, further indicating that the problem is with the stepper driver chip.

    Is there anything else I can try? Or is the driver defective?


  • Moderator

    Hi thanks for your patience and for providing all of the detail. I don't see anything in your config that would cause it and your troubleshooting indicates the driver has failed. Please contact filastruder to initiate a warranty replacement. Refer them to this thread.



  • https://forum.duet3d.com/post/165873 might help narrow down the options?



  • Good thoughts. I don't think those apply in this case, though. I swapped out the new (and possibly bad) duet2 with an older duet2 and used the same sd/configs on the old board which works just fine.



  • That leaves defective driver most likely. But providing the exact error, motor config/specs and the output of M122 might get you some other input.


  • administrators

    @guildner yes does sound like its defective. can you provide the M122 report and a copy of your config.g please.



  • Busy day at work today, but I'll get the info posted tonight.



  • @T3P3Tony When I'm able to get the M122 diagnostics, should I have the board on full 24V power, or would it be sufficient to just use 5V power via USB?



  • Here is my config:

    ; Jubilee 2.0 Config File
    ; drawing inspiration from the Railcore 300ZL config file
    
    ; Name and Identification
    M550 P"Cubilee"                         ; Machine name and Netbios name
    
    ; Networking
    M552 P192.168.1.2 S1                    ; Use Ethernet with a static IP
    M554 192.168.1.3                        ; Gateway
    M553 P255.255.255.0                     ; Netmask
    M586 P2 S1                              ; Enable Telnet
    
    ; Debugging
    M111 S0                                 ; Debug off
    M929 P"eventlog.txt" S1                 ; Start logging to file eventlog.txt
    
    ; General Preferences
    M555 P2                                 ; Set Marlin-style output
    G21                                     ; Set dimensions to millimetres
    G90                                     ; Send absolute coordinates...
    M83                                     ; ...but relative extruder moves
    
    ; Joints
    M584 X0 Y1 Z6:7:8 E3:4:5:9 U2   ; Map Z to drivers 6, 7, 8. Map extruders to 3 and 4. Create Toolchanger Lock axis.
    
    M569 P0 S0                  ; Drive 0 direction | X stepper
    M569 P1 S0                  ; Drive 1 direction | Y Stepper
    
    M569 P6 S0                  ; Drive 6 direction | Front Left Z
    M569 P7 S0                  ; Drive 7 direction | Front Right Z
    M569 P8 S0                  ; Drive 8 direction | Back Z
    
    M569 P2 S0                  ; Drive 2 direction | Toolchanger Actuator
    
    M569 P3 S0                  ; Drive 3 direction | Extruder 0
    M569 P4 S0                  ; Drive 4 direction | Extruder 1
    
    ;M569 P5 S0                  ; Drive 5 direction | Pen 0
    
    ; Joint Kinematics
    M669 K1                                 ; CoreXY mode
    
    ; Kinematic bed ball locations.
    ; Locations are extracted from CAD model assuming lower left build plate corner is (0, 0) on a 305x305mm plate.
    ;M671 X300:5:152.5 Y354:354:24 S10 ; Front Left: (300, 354) | Front Right: (5, 354) | Back: (152.5, 24)
    M671 X297:2.5:150 Y313.5:313.5:-16.5 S10 ; Front Left: (297.5, 313.5) | Front Right: (2.5, 313.5) | Back: (150, -16.5)
    
    
    ; Axis and motor configuration
    ;M350 X16 Y16 Z16 E16 U4 I1              ; Set 16x microstepping for xyz axes & extruder, 4x for toolchanger lock. Use interpolation.
    M350 X8 Y8 Z16 E16 U4 I1              ; Set 8x microstepping for xy, 16x for z axes & extruder, 4x for toolchanger lock. Use interpolation.
    M574 X1 Y1 Z1 S1                        ; Set homing switch configuration x low-end, y low-end, z low-end, all active-high (NC)
    M574 U1 S1                              ; Set homing switch configuration for toolchange lock. Both switches should be wired NC and in series.
    M906 X1950 Y1950 Z1750 E1250            ; Motor currents (mA)
    M906 U670 I60                           ; LDO Toolchanger Elastic Lock Motor current and idle motor percentage.
    ;M906 U900 I60                           ; StepperOnline Toolchanger Elastic Lock Motor current and idle motor percentage
    M201 X1000 Y1000 Z20 E1300 U800        ; Accelerations (mm/s^2)
    M203 X13000 Y13000 Z800 E8000 U9000    ; Maximum speeds (mm/min)
    M566 X1000 Y1000 Z500 E3000 U50          ; Maximum jerk speeds mm/minute
    ;M92 X200 Y200                           ; Steps/mm for X,Y
    M92 X100 Y100
    M92 U30.578                             ; LDO Toolchanger Elastic Lock Motor Steps/deg for U from (200 * 4 * 13.76)/360
    ;M92 U11.515                            ; Stepper-Online Toolchanger Elastic Lock Motor Steps/deg for U from (200 * 4 * 5.18181)/360
    M92 Z3200                               ; Steps/mm for Z for a 2mm pitch leadscrew, 0.9mm stepper. (16 * 400)/2
    M92 E830                                ; Extruder - 0.9 deg/step
    
    ; Set axis software limits and min/max switch-triggering positions.
    ; Adjusted such that (0,0) lies at the lower left corner of a 300x300mm square in the 305mmx305mm build plate.
    M208 X-11.5:311.5 Y-44:341 Z-0.2:315
    M208 U0:200                                 ; Set Elastic Lock (U axis) max rotation angle
    
    ; Thermistors
    M305 P0 S"Bed" T10000 B3435 H0                ; BOM-specified Terminal Lug Thermistor values.
    ;M305 P0 S"Bed" T10000 B3984 H0 L160          ; BOM-specified Terminal Lug Thermistor values.
    ;M305 P0 S"Bed" T100000 B3950 R4700 H0 L0    ; Built-in Keenovo Bed Thermistor values.
    M305 P1 X200                                ; Map Extruder 0 sensor to PT100 Channel 0
    M305 P2 X201                                ; Map Extruder 1 sensor to PT100 Channel 1
    
    ;Heaters
    M570 S30                                    ; Print will be terminated if a heater fault is not reset within 30 minutes.
    M143 H0 S100                                ; Maximum H0 (Bed) heater temperature
    ;M143 H1 S260                                ; Maximum H1 (Extruder) heater temperature
    
    ; Default heater model
    M307 H0 A270.7 C90.4 D6.7 B0 S1.0           ; Default Bed Heater Parameters, before tuning / if config-override.g is missing
    
    ; Tool definitions
    M563 P0 S"Extruder 0" D0 H1 F0          ; Define tool 0
    G10 P0 X-4.5 Y44.02 Z-2.25              ; Set tool 0 offset from the bed
    G10 P0 S190 R170                        ; Set tool 0 operating and standby temperatures(-273 = "off")
    M572 D0 S0.1				; Set pressure advance on Extruder Drive 0
    
    M563 P1 S"Extruder 1" D1 H2 F2          ; Define tool 1
    G10 P1 X-4.15 Y44.62 Z-2.45               ; Set tool 1 offset from the bed with tool-0 as a reference.
    G10 P1 S190 R170                        ; Set tool 1 operating and standby temperatures(-273 = "off")
    M572 D1 S0.1                            ; Set pressure advance on Extruder Drive 1
    
    ; Fans
    M106 P0 S0                               ; Turn off fan 0
    ;M106 P1 S0                               ; Turn off fan 1
    
    ;Mesh Bed Leveling Settings:
    M557 X10:290 Y10:290 P6
    
    ; Z probing settings
    M558 P4 C2 H5 A1 T10000  S0.02
    ; P4 --> probe type: switch
    ; C2 --> endstop number
    ; H5 --> dive height
    ; A1 --> max number of times to probe
    ; T100000 --> travel speed between probe points
    ; S0.02 --> tolerance when probing multiple times
    
    M98 P"config-user.g"                    ; Load custom user config
    
    M501                                    ; Load saved parameters from non-volatile memory
    

    And here is the output from M122, only using 5V from USB (I can get it again later tonight while on 24V if needed.):

    M122
    === Diagnostics ===
    RepRapFirmware for Duet 2 WiFi/Ethernet version 2.03 running on Duet Ethernet 1.02 or later
    Board ID: 08DLM-996RU-N85T0-6J9F2-3SN6L-1UVRR
    Used output buffers: 3 of 24 (10 max)
    === RTOS ===
    Static ram: 25680
    Dynamic ram: 93636 of which 48 recycled
    Exception stack ram used: 208
    Never used ram: 11500
    Tasks: NETWORK(ready,644) HEAT(blocked,1180) MAIN(running,3844) IDLE(ready,160)
    Owned mutexes:
    === Platform ===
    Last reset 00:00:50 ago, cause: power up
    Last software reset time unknown, reason: User, spinning module GCodes, available RAM 10428 bytes (slot 3)
    Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0441f000 BFAR 0xe000ed38 SP 0xffffffff Task 0x4e49414d
    Error status: 0
    Free file entries: 9
    SD card 0 detected, interface speed: 20.0MBytes/sec
    SD card longest block write time: 1.5ms, max retries 0
    MCU temperature: min 33.5, current 37.6, max 37.9
    Supply voltage: min 0.5, current 1.7, max 1.7, under voltage events: 0, over voltage events: 0, power good: no
    Driver 0: ok, SG min/max not available
    Driver 1: ok, SG min/max not available
    Driver 2: ok, SG min/max not available
    Driver 3: ok, SG min/max not available
    Driver 4: ok, SG min/max not available
    Date/time: 2020-07-30 10:08:11
    Cache data hit count 99036185
    Slowest loop: 101.12ms; fastest: 0.06ms
    I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
    === Move ===
    Hiccups: 0, FreeDm: 169, MinFreeDm: 169, MaxWait: 0ms
    Bed compensation in use: none, comp offset 0.000
    === DDARing ===
    Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0
    === Heat ===
    Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1
    === GCodes ===
    Segments left: 0
    Stack records: 2 allocated, 0 in use
    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
    serial is idle in state(s) 0
    aux is idle in state(s) 0
    daemon is idle in state(s) 0
    queue is idle in state(s) 0
    autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 3.97ms; fastest: 0.02ms
    Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0)
    HTTP sessions: 1 of 8
    Interface state 5, link 100Mbps full duplex
    

  • Moderator

    @guildner said in defective stepper driver?:

    or would it be sufficient to just use 5V power via USB?

    I don't think so as the drivers won't be powered when running only from 5v.

    Supply voltage: min 0.5, current 1.7, max 1.7, under voltage events: 0, over voltage events: 0, power good: no
    


  • @Phaedrux cool, I'll grab that later tonight, then. 👍



  • @T3P3Tony @Phaedrux Here is the output from M122 while powered from 24V:

    M122
    === Diagnostics ===
    RepRapFirmware for Duet 2 WiFi/Ethernet version 2.05.1 running on Duet Ethernet 1.02 or later
    Board ID: 08DLM-996RU-N85T0-6J9F2-3SN6L-1UVRR
    Used output buffers: 3 of 24 (9 max)
    === RTOS ===
    Static ram: 25712
    Dynamic ram: 93156 of which 48 recycled
    Exception stack ram used: 272
    Never used ram: 11884
    Tasks: NETWORK(ready,628) HEAT(blocked,1176) MAIN(running,3760) IDLE(ready,160)
    Owned mutexes:
    === Platform ===
    Last reset 00:06:24 ago, cause: power up
    Last software reset time unknown, reason: User, spinning module GCodes, available RAM 10428 bytes (slot 3)
    Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0441f000 BFAR 0xe000ed38 SP 0xffffffff Task 0x4e49414d
    Error status: 0
    Free file entries: 9
    SD card 0 detected, interface speed: 20.0MBytes/sec
    SD card longest block write time: 1.5ms, max retries 0
    MCU temperature: min 34.7, current 43.4, max 43.6
    Supply voltage: min 24.4, current 24.5, max 24.7, under voltage events: 0, over voltage events: 0, power good: yes
    Driver 0: standstill, SG min/max not available
    Driver 1: ok, SG min/max not available
    Driver 2: standstill, SG min/max not available
    Driver 3: standstill, SG min/max not available
    Driver 4: standstill, SG min/max not available
    Date/time: 2020-07-30 20:16:56
    Cache data hit count 727883381
    Slowest loop: 3.53ms; fastest: 0.07ms
    I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
    === Move ===
    Hiccups: 0, FreeDm: 160, MinFreeDm: 160, MaxWait: 0ms
    Bed compensation in use: none, comp offset 0.000
    === DDARing ===
    Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0
    === Heat ===
    Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1
    === GCodes ===
    Segments left: 0
    Stack records: 2 allocated, 0 in use
    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
    serial is idle in state(s) 0
    aux is idle in state(s) 0
    daemon is idle in state(s) 0
    queue is idle in state(s) 0
    autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 4.65ms; fastest: 0.02ms
    Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0)
    HTTP sessions: 1 of 8
    Interface state 5, link 100Mbps full duplex
    


  • And, when attempting to home I get this:

    G28 X
    Warning: motor phase A may be disconnected reported by driver(s) 0
    Warning: motor phase B may be disconnected reported by driver(s) 0
    

    And M122 shows this:

    M122
    === Diagnostics ===
    RepRapFirmware for Duet 2 WiFi/Ethernet version 2.05.1 running on Duet Ethernet 1.02 or later
    Board ID: 08DLM-996RU-N85T0-6J9F2-3SN6L-1UVRR
    Used output buffers: 3 of 24 (10 max)
    === RTOS ===
    Static ram: 25712
    Dynamic ram: 93156 of which 48 recycled
    Exception stack ram used: 432
    Never used ram: 11724
    Tasks: NETWORK(ready,744) HEAT(blocked,1152) MAIN(running,3728) IDLE(ready,160)
    Owned mutexes:
    === Platform ===
    Last reset 00:03:04 ago, cause: power up
    Last software reset time unknown, reason: User, spinning module GCodes, available RAM 10428 bytes (slot 3)
    Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0441f000 BFAR 0xe000ed38 SP 0xffffffff Task 0x4e49414d
    Error status: 0
    Free file entries: 9
    SD card 0 detected, interface speed: 20.0MBytes/sec
    SD card longest block write time: 1.6ms, max retries 0
    MCU temperature: min 38.6, current 43.6, max 43.6
    Supply voltage: min 24.4, current 24.5, max 24.6, under voltage events: 0, over voltage events: 0, power good: yes
    Driver 0: standstill, SG min/max 0/0
    Driver 1: ok, SG min/max 0/0
    Driver 2: standstill, SG min/max not available
    Driver 3: standstill, SG min/max not available
    Driver 4: standstill, SG min/max not available
    Date/time: 2020-07-30 20:36:52
    Cache data hit count 350466746
    Slowest loop: 7.60ms; fastest: 0.07ms
    I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
    === Move ===
    Hiccups: 0, FreeDm: 160, MinFreeDm: 158, MaxWait: 56855ms
    Bed compensation in use: none, comp offset 0.000
    === DDARing ===
    Scheduled moves: 2, completed moves: 2, StepErrors: 0, LaErrors: 0, Underruns: 0, 0
    === Heat ===
    Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1
    === GCodes ===
    Segments left: 0
    Stack records: 2 allocated, 0 in use
    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
    serial is idle in state(s) 0
    aux is idle in state(s) 0
    daemon is idle in state(s) 0
    queue is idle in state(s) 0
    autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 5.46ms; fastest: 0.02ms
    Responder states: HTTP(0) HTTP(2) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0)
    HTTP sessions: 1 of 8
    Interface state 5, link 100Mbps full duplex
    

  • Moderator

    Can you post your homex.g?

    Are you able to generate the same error by just sending

    G92 X100
    G91
    G1 X10 F1000



  • Here is my homex.g file:

    ; Home X Axis
    
    G91                     ; Set relative mode
    G1 X-330 F6000 S1       ; Big negative move to search for endstop
    G1 X4 F600              ; Back off the endstop
    G1 X-10 F600 S1         ; Find endstop again slowly
    G90                     ; Set absolute mode
    

    Yes, that generates the error



  • If it matters, the motor never moves at all when giving it any of these commands.



  • @T3P3Tony This is a brand-new board, and I am looking to get authorization to get a replacement (ordered from Filastruder).

    Is there anything else you need from me?


  • Moderator

    Hi thanks for your patience and for providing all of the detail. I don't see anything in your config that would cause it and your troubleshooting indicates the driver has failed. Please contact filastruder to initiate a warranty replacement. Refer them to this thread.



  • Thanks for your help @Phaedrux @bearer @T3P3Tony! Greatly appreciated.


Log in to reply