Duet 2 Maestro Fault to Ground error



  • I've been running my Ender 5 Pro with a Duet 2 Maestro for a couple months now, and it's been going great. The only issue I was having was an intermittent Y-axis offset during some prints, which I resolved by setting that motor's current to 1200 (which is still well below the max rating of both the motor and the driver). That motor never seemed to get excessively hot.

    Yesterday, after a successful long print job, I started getting a "fault to ground" error message from the "drive 1" stepper motor. Anytime I try to home the Y axis, the error pops up as soon as the gantry hits the end stop and that axis becomes unresponsive until I restart the board. I tried replacing the motor, and that didn't help. I tried replacing the wire and that didn't help. I'm starting to suspect the stepper driver has gone bad.

    I realize that the board has a 6 month warranty, but I ordered it from the UK (because there's a dearth of inventory here) and I live in the US. I'll likely just order a new board once inventory becomes available in the US again.

    In the meantime, is it possible to map the E1 stepper driver to the Y axis? Are there any issues with doing this?



  • when you replaced the motor does that include the cable?

    does the fault persist if you disconnect the cable from the duet?

    you can repurpose E1, its a relatively common request here, maybe it should be a dedicated wiki entry.

    I think you can change M569 P2 P1 to M569 P4 and Y2 in your M584 line to Y4 and thats it. You might want to also have M569 P2 P1 R-1 to supress any warning from the failed driver.



  • @bearer I first replaced just the motor, then I replaced the wire after the new motor didn't fix anything. Also tried replacing the end stop since the error doesn't seem to come up until the gantry hits the end stop. None of those solved the issue.

    The error does not happen until the motor hits a mild resistance like the end stop or the frame, there is no error with nothing disconnected or before I try to move the axis.

    Thank you for the advice!



  • @GoremanX said in Duet 2 Maestro Fault to Ground error:

    Also tried replacing the end stop since the error doesn't seem to come up until the gantry hits the end stop.

    thats new. you might get some other feedback from some of the really clever people here..



  • @GoremanX after the error occured, please make a M122 and show it. Can you please publish config and homeall for a check? And the information, which firmware version is used.
    Fault to ground is in most cases driver fault or wiring problem, but you exchanged both. One rare reason was a wrong stealthChop M569 setting.

    When the endstop is hit and the error pops up, how is the status of the endstop? Is it marked as triggered?



  • Did you change the config from when it was not giving you an error? If not then something else must have changed. You say you increased the current - could it be in response to increased drag/binding?

    Try moving the axis by hand, either very slowly, or with the motor disconnected from the Duet, to see if there is increased drag near the end stop. (and no connecting/disconnecting of motors with the power on).

    Presumably the endstop triggers properly as you say the axis is stopping, and not crashing?

    I'd like to see you try to see if it is the motion of the Y axis, hitting the endstop or homing that triggers the error; If you place the Y axis on the endstop and move it off just enough to clear it, power on Duet and enter G92 Y0.5 then you should be able to control your Y axis without homing as G92 is sort of manual homing. Now run the Y axis to its maximum travel G1 Y220 F2000 and back again G1 Y0.5 F2000 (feel free to change the feedrate or max travel, they're best guess). If it doesn't fail do it again but return to Y0 instead of Y0.5 to hit the endstop and see if it fails. (Should you not hit the endstop when at Y0 then do G92 Y5 G91 and keep sending G1 Y-0.5 F500 until you hit the endstop. If still no error finish off with G90 G1 Y20 F2000 G28 Y



  • @JoergS5 Here's the result of M122 after trying to home Y and getting the error message:

    7/24/2020, 6:58:11 PM 	Error: short-to-ground reported by driver(s) 1
    7/24/2020, 6:58:10 PM 	M122
    === Diagnostics ===
    RepRapFirmware for Duet 2 Maestro version 3.1.1 running on Duet Maestro 1.0
    Board ID: 08DJM-9X66L-LG3SJ-6JKD0-3S86K-TAYUN
    Used output buffers: 3 of 24 (12 max)
    === RTOS ===
    Static ram: 21924
    Dynamic ram: 93432 of which 24 recycled
    Exception stack ram used: 368
    Never used ram: 15324
    Tasks: NETWORK(ready,472) HEAT(blocked,1316) MAIN(running,1996) IDLE(ready,84)
    Owned mutexes:
    === Platform ===
    Last reset 04:03:41 ago, cause: power up
    Last software reset at 2020-07-24 14:11, reason: User, spinning module GCodes, available RAM 15492 bytes (slot 2)
    Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x04418000 BFAR 0xe000ed38 SP 0xffffffff Task MAIN
    Error status: 0
    MCU temperature: min 31.8, current 36.6, max 37.2
    Supply voltage: min 0.0, current 24.2, max 24.4, under voltage events: 0, over voltage events: 0, power good: yes
    Driver 0: standstill, read errors 0, write errors 0, ifcount 8, reads 60332, timeouts 0
    Driver 1: short-to-ground standstill, read errors 0, write errors 0, ifcount 8, reads 60331, timeouts 1
    Driver 2: standstill, read errors 0, write errors 0, ifcount 8, reads 60332, timeouts 0
    Driver 3: standstill, read errors 0, write errors 0, ifcount 7, reads 60333, timeouts 0
    Driver 4: standstill, read errors 0, write errors 0, ifcount 6, reads 60334, timeouts 0
    Driver 5: ok, read errors 0, write errors 0, ifcount 0, reads 0, timeouts 60339
    Driver 6: ok, read errors 0, write errors 0, ifcount 0, reads 0, timeouts 60339
    Date/time: 2020-07-24 18:58:06
    Slowest loop: 6.50ms; fastest: 0.12ms
    I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
    === Storage ===
    Free file entries: 10
    SD card 0 detected, interface speed: 15.0MBytes/sec
    SD card longest read time 3.3ms, write time 0.0ms, max retries 0
    === Move ===
    Hiccups: 0(0), FreeDm: 169, MinFreeDm: 168, MaxWait: 14581071ms
    Bed compensation in use: none, comp offset 0.000
    === MainDDARing ===
    Scheduled moves: 10, completed moves: 10, 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, chamberHeaters = 2 -1
    Heater 1 is on, I-accum = 0.0
    === 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
    Daemon is idle in state(s) 0
    Autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 130.57ms; fastest: 0.02ms
    Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions
    HTTP sessions: 1 of 8
    Interface state active, link 100Mbps full duplex
    

    And here's a copy of my config.g:

    ; General preferences
    G90                                                ; send absolute coordinates...
    M83                                                ; ...but relative extruder moves
    M550 P"Ender 5 Pro"                                ; 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 S0                                         ; physical drive 0 goes backwards
    M569 P1 S1                                         ; 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 Z800.00 E420.00                  ; set steps per mm
    M566 X2400.00 Y2400.00 Z120.00 E3000.00 P1           ; set maximum instantaneous speed changes (mm/min)
    M203 X12000.00 Y12000.00 Z600.00 E3000.00         ; set maximum speeds (mm/min)
    M201 X800.00 Y800.00 Z50.00 E5000.00              ; set accelerations (mm/s^2)
    M906 X800 Y1200 Z1000 E1200 I50                      ; set motor currents (mA) and motor idle factor in per cent
    M84 S60                                            ; Set idle timeout
    
    ; Axis Limits
    M208 X0 Y0 Z0 S1                                   ; set axis minima
    M208 X220 Y220 Z300 S0                             ; set axis maxima
    
    ; Endstops
    M574 X2 S1 P"xstop"                                ; configure active-high endstop for high end on X via pin xstop
    M574 Y2 S1 P"ystop"                                ; configure active-high endstop for high 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 F600 T12000               ; set Z probe type to bltouch and the dive height + speeds
    G31 P500 X-43 Y-13 Z1.70                           ; set Z probe trigger value, offset and trigger height
    ;M557 X0:177 Y0:207 S29.5                             ; define fine mesh grid
    M557 X0:177 Y0:207 S59                             ; define coarse mesh grid
    
    ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B4092     ; 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
    M307 H0 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 S150                                       ; set temperature limit for heater 0 to 150C
    M308 S1 P"e0temp" Y"thermistor" T100000 B4092      ; 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
    M307 H1 B0 S1.00                                   ; disable bang-bang mode for heater  and set PWM limit
    M308 S2 P"ctemp" Y"thermistor" T100000 B4092       ; configure sensor 2 as thermistor on pin ctemp
    M950 H2 C"e1heat" T2                               ; create chamber heater output on e1heat and map it to sensor 2
    M307 H2 A40 B1 S1.00                                   ; disable bang-bang mode for the chamber heater and set PWM limit
    M141 H2                                            ; map chamber to heater 2
    
    ; 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
    M950 F2 C"fan2" Q500                               ; create fan 2 on pin fan2 and set its frequency
    M106 P2 S0.7 H-1                                     ; set fan 2 value. Thermostatic control is turned off
    
    ; Tools
    M563 P0 S"Hotend" 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
    M569 P0 V46                                        ; X in Stealthchop2 till about 200 mm/sec
    M569 P1 V46                                        ; Y in Stealthchop2 till about 200 mm/sec
    M569 P2 V46                                        ; Z in Stealthchop2 till about 200 mm/sec
    M569 P3 D3 V100                                    ; Extruder in Stealthchop2
    
    ; Miscellaneous
    M575 P1 S1 B57600                                  ; enable support for PanelDue
    M918 P1                                            ; enable support for 12864 LCD screen
    M501                                               ; load saved parameters from non-volatile memory
    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
    
    
    

    And my config-override.g:

    ; config-override.g file generated in response to M500 at 2020-06-13 13:47
    ; This is a system-generated file - do not edit
    ; Non-linear extrusion
    ;M592 D0 A0.01 B0.0005
    M592 D0 A0 B0
    ; Dynamic Acceleration
    M593 F0
    ; Heater model parameters
    M307 H0 A404.7 C496.8 D3.0 S1.00 V24.2 B0
    M307 H1 A422.8 C91.1 D2.7 S1.00 V24.2 B0
    M307 H2 S1.00 B1 A40 C100000
    ; Enable pressure advance
    M572 D0 S0.2
    ; Firmware retraction
    M207 S4.0 F3000 Z0.2
    ; Workplace coordinates
    G10 L2 P1 X0.00 Y0.00 Z0.00
    G10 L2 P2 X0.00 Y0.00 Z0.00
    G10 L2 P3 X0.00 Y0.00 Z0.00
    G10 L2 P4 X0.00 Y0.00 Z0.00
    G10 L2 P5 X0.00 Y0.00 Z0.00
    G10 L2 P6 X0.00 Y0.00 Z0.00
    G10 L2 P7 X0.00 Y0.00 Z0.00
    G10 L2 P8 X0.00 Y0.00 Z0.00
    G10 L2 P9 X0.00 Y0.00 Z0.00
    
    

    and my homeall.g file:

    ; homeall.g
    ; called to home all axes
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.3 on Sun Jun 14 2020 23:24:55 GMT-0400 (Eastern Daylight Time)
    G91                   ; relative positioning
    G1 H2 Z5 F600       ; lift Z relative to current position
    G1 H1 X225 Y225 F12000 ; move quickly to X and Y axis endstops and stop there (first pass)
    G1 H2 X-5 Y-5 F12000  ; go back a few mm
    G1 H1 X225 Y225 F360  ; move slowly to X and Y axis endstops once more (second pass)
    G90                   ; absolute positioning
    G1 X153 Y123 F12000     ; center probe over bed
    M558 A1 F600 ; Set single probing at faster feed rate
    G30 ; Do a single probe to quickly home Z axis
    M558 A10 F300 S0.005 ; Set multi probing at slower feed rate
    G30                   ; home Z by probing the bed
    

    @bearer I've made no changes to the configuration in about a month. There have been no hardware or configuration changes since I upped the amperage to the motor. I've had many successful prints, and then this issue just suddenly cropped up after a long 20+ hour print.

    The gantry slides smoothly from one end to the other with zero increased resistance at any point. It's as smooth today as it was when I installed the linear rails a couple months ago. Belts have the exact same tension they had 2 months ago. In fact, the last print turned out flawless and amazing. I happened to be monitoring the Y motor temperature during that print, and it never really got hot.



  • @GoremanX said in Duet 2 Maestro Fault to Ground error:

    linear rails

    hello:) But I'm a little puzzled why you need 1200mA if the axis is smooth as F on linear rails, presumably the high jerk and speed settings? Anyways if it hasn't changed then I'd look elsewhere. Do try the commands posted when you find the time, it should help rule out the different parts that make up the homing sequence that is seemingly triggering the error.



  • @GoremanX you have a few stealthChop settings, so maybe thats the reason. The link where it was discussed by dc42 is:
    https://forum.duet3d.com/topic/9761/duet-2-maestro-error-short-to-ground-on-drivers-1/4
    march 27 2019
    you can try M569 higher V value or lower the homing speed. If you changed current, the stepper may be faster now.



  • @GoremanX it has nothing to do with your current problem, but I wanted to mention that your mesh compensation starts off the bed, because M557 starts at 0,0 but the probe G31 has negative offsets and M208 start at 0,0. So M557 should start at x50 y20 eg.



  • @bearer I plan to run those commands, just waiting on a print to finish in 12 hours (I'm running the Y axis on the E1 driver now and it's working, but I'd still like to know why the Y stepper driver is giving me trouble)

    I only upped the Y axis motor to 1200ma (from 800ma) because of the weird random layer shifting that kept happening on that axis. I spent a week trying to diagnose its cause, and finally it went away after I raised the amperage. The physical resistance on that axis actually dropped significantly when I switched to linear rails, but the layer shifting didn't go away. I figured the issue was caused by the nozzle sometimes hitting the print, but I never found the actual problem. I just know that raising the amperage fixed it at the time.

    @JoergS5 I have multiple instances of M569 for each motor, but they don't override each other. That was just to make it easier when I was tuning StealthChop to find the right setting.

    Thanks for pointing out the mesh leveling thing! I'll have to look into that more closely.


Log in to reply