Duet 2 Maestro Fault to Ground error
GoremanX last edited by
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?
A Former User last edited by A Former User
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
Y4and thats it. You might want to also have
P1 R-1to supress any warning from the failed driver.
GoremanX last edited by GoremanX
@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 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.5then you should be able to control your Y axis without homing as
G92is sort of manual homing. Now run the Y axis to its maximum travel
G1 Y220 F2000and 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 G91and keep sending
G1 Y-0.5 F500until you hit the endstop. If still no error finish off with
G90 G1 Y20 F2000 G28 Y
GoremanX last edited by
@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.
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:
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.
GoremanX last edited by GoremanX
@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.