HardFault Imprec, HardFault invState,.. Printer crashes!
-
Dear all,
I have been getting HardFaults while printing on firmware 3.5.2, and previously on (if I remember correctly 3.4.6) on a Duet3D Mini 5+ WiFi while printing ASA.
Also I have the idea that the wifi is taking longer to connect than it used to. The Duet is set-up as an AP. My laptop used to connect within 10-30 seconds. Now it takes minutes and sometimes I even have to reboot the Duet.Is there any work being done on firmware 3.6 about these HardFaults? Or are there other causes that have been narrowed done? If I read the other topics one users has not had any issues since 3.5.1 but for me it's stil happening.
I have 2 12V-batteries hooked up in parrallel to a Chinese PSU. Voltage is stable.
-
@fromwastetowind Some filaments tend to build up electrostatic charge so it is important to have all the metal parts of your printer grounded. Is that the case? If yes and the problem persists, please share the output of
M122
via copy&paste here after the next crash and I'll take a look. -
@fromwastetowind as it's a Duet 3 Mini WiFi it may be an instance of https://github.com/Duet3D/RepRapFirmware/issues/935.
-
Thanks for the replies so far.
The printer is not grounded as I never had any issues with it (on my Duet3D Mini 5+ Ethernet, with other mechanics and other PSU). I'll try connecting DC- with mains as dc42 suggests here: https://forum.duet3d.com/post/48107 This method raises the question if the printer frame, hotend, etc. should be on the same connection, since the mains ground should never be open to touch by people.
I could not find anything on the official Duet3D howto's about grounding, maybe it should be good that the information is there? -
I grounded the PSU (connected negative DC to mains ground, but yet I received another Hardfault imprec.
Is there anything being done to resolve this issue? -
@fromwastetowind I think @rechrtb and @dc42 have been tracking down what causes this crash, so will hopefully have a fix soon.
Ian
-
@droftarts I don't see any relevant topics. Can you link?
-
@fromwastetowind See @dc42's reply to your original post for links to similar threads. I understand that the fix is still being developed, is being worked on internally (so not covered in the forum), and is beyond my comprehension to describe!
Please could you post the output from M122, it may be useful to see. Ideally, copy and paste the text from DWC into your reply, rather than taking a picture of your screen.
Ian
-
@fromwastetowind said in HardFault Imprec, HardFault invState,.. Printer crashes!:
I grounded the PSU (connected negative DC to mains ground
Also note that this is not what is meant by "grounding your machine". We mean connecting the metal parts of your machine to a common grounding point. This includes the hot end and extruder metal parts, and is what @chrishamm was referring to. Running filament through the extruder can cause a static electricity build up, which can arc out through the stepper motor wiring, or through the wiring to the hot end (hot end heater or temperature sensor). Any of these may cause enough of an electrical discharge to corrupt memory on the MCU (leading to a crash) or even damage or destroy the electronic components on the controller board.
We also recommended that the stepper motor casings be grounded, especially in belt-driven printers. Motion of the belts also causes static charge to build up, which eventually arcs over to the windings. If the motors are screwed to a metal frame, grounding the frame is usually sufficient.
It is not recommended to connect the output ground (ie negative) of any power supply to mains neutral. It can lead to electrocutions. It is also not recommended to connect the negative power output to earth ground, as it can trip the RCD or harm the power supply. Connecting the frame to PSU negative can cause electrocution in case of a power supply internal fault.
Ideally, run the earthing wire from the power outlet (not the earth terminal of the PSU) to a common grounding point (eg a bolt on the frame), and then run that on to the earth on the PSU. Then run grounding wires from all components that require grounding to this common grounding point.
Ian
-
@droftarts
Thanks @droftarts. I just tried grounding like you propose but the printer still halts randomly. These are the M122 reports from the last 2 halts:M122 === Diagnostics === RepRapFirmware for Duet 3 Mini 5+ version 3.5.2 (2024-06-11 17:14:16) running on Duet 3 Mini5plus WiFi (standalone mode) Board ID: DZ0AW-2R6KL-K65J0-409NG-LW02Z-73GQY Used output buffers: 3 of 40 (18 max) === RTOS === Static ram: 103368 Dynamic ram: 121264 of which 0 recycled Never used RAM 13928, free system stack 194 words Tasks: NETWORK(2,nWait 7,15.2%,232) HEAT(3,nWait 1,0.0%,341) Move(4,nWait 6,0.0%,355) CanReceiv(6,nWait 1,0.0%,939) CanSender(5,nWait 7,0.0%,336) CanClock(7,delaying,0.0%,334) TMC(4,nWait 6,0.8%,110) MAIN(1,running,82.6%,665) IDLE(0,ready,0.5%,29) AIN(4,delaying,0.9%,264), total 100.0% Owned mutexes: === Platform === Last reset 00:04:24 ago, cause: power up Last software reset at 2024-09-13 15:35, reason: HardFault imprec, Platform spinning, available RAM 13568, slot 1 Software reset code 0x4060 HFSR 0x40000000 CFSR 0x00000400 ICSR 0x00000803 BFAR 0xe000ed38 SP 0x20012008 Task NETW Freestk 482 ok Stack: 2002c658 00000000 200014e8 0000016c 20032d79 0003015d 00034b34 810f0000 00030149 00000000 00000000 00000000 2003039c 00000800 200358d8 2002c640 2001882c 2002c496 2001882c 2001ea80 000302e3 00000000 00000000 00000000 200120b8 00000014 b5dd62e8 Error status: 0x00 MCU revision 3, ADC conversions started 264308, completed 264308, timed out 0, errs 0 MCU temperature: min 28.1, current 30.1, max 30.2 Supply voltage: min 21.0, current 21.0, max 26.3, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 99/0, heap memory allocated/used/recyclable 2048/12/12, gc cycles 0 Events: 0 queued, 0 completed Driver 0: standstill, SG min 0, read errors 0, write errors 0, ifcnt 10, reads 13874, writes 10, timeouts 0, DMA errors 0, CC errors 0 Driver 1: standstill, SG min 0, read errors 0, write errors 0, ifcnt 10, reads 13873, writes 10, timeouts 0, DMA errors 0, CC errors 0 Driver 2: standstill, SG min 0, read errors 0, write errors 0, ifcnt 10, reads 13873, writes 10, timeouts 0, DMA errors 0, CC errors 0 Driver 3: standstill, SG min 0, read errors 0, write errors 0, ifcnt 10, reads 13873, writes 10, timeouts 0, DMA errors 0, CC errors 0 Driver 4: standstill, SG min 0, read errors 0, write errors 0, ifcnt 10, reads 13874, writes 10, timeouts 0, DMA errors 0, CC errors 0 Driver 5: not present Driver 6: not present Date/time: 2024-09-16 13:06:09 Cache data hit count 499772224 Slowest loop: 18.72ms; fastest: 0.16ms === Storage === Free file entries: 20 SD card 0 detected, interface speed: 22.5MBytes/sec SD card longest read time 3.7ms, write time 0.0ms, max retries 0 === Move === DMs created 83, segments created 0, maxWait 0ms, bed compensation in use: none, height map offset 0.000, max steps late 0, min interval 0, bad calcs 0, ebfmin 0.00, ebfmax 0.00 no step interrupt scheduled Moves shaped first try 0, on retry 0, too short 0, wrong shape 0, maybepossible 0 === DDARing 0 === Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === DDARing 1 === Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters 0 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0 Heater 0 is on, I-accum = -0.0 Heater 1 is on, I-accum = 0.0 === GCodes === Movement locks held by null, 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 File2 is idle in state(s) 0 Queue2 is idle in state(s) 0 Q0 segments left 0, axes/extruders owned 0x0000803 Code queue 0 is empty Q1 segments left 0, axes/extruders owned 0x0000000 Code queue 1 is empty === CAN === Messages queued 2375, received 0, lost 0, errs 1270720, boc 0 Longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 26 (min 26), ts 1321/0/0 Tx timeouts 0,0,1320,0,0,1053 last cancelled message type 30 dest 127 === Network === Slowest loop: 110.72ms; fastest: 0.00ms Responder states: MQTT(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) HTTP sessions: 1 of 8 === WiFi === Interface state: active Module is providing access point Failed messages: pending 0, notrdy 0, noresp 1 Firmware version 2.1.0 MAC address c6:5b:be:ce:9c:5d Module reset reason: Power up, Vcc 3.33, flash size 2097152, free heap 38772 WiFi IP address 192.168.1.1 Connected clients 2 Clock register 00002001 Socket states: 0 0 0 0 0 0 0 0
M122 === Diagnostics === RepRapFirmware for Duet 3 Mini 5+ version 3.5.2 (2024-06-11 17:14:16) running on Duet 3 Mini5plus WiFi (standalone mode) Board ID: DZ0AW-2R6KL-K65J0-409NG-LW02Z-73GQY Used output buffers: 3 of 40 (18 max) === RTOS === Static ram: 103368 Dynamic ram: 121264 of which 0 recycled Never used RAM 13928, free system stack 199 words Tasks: NETWORK(2,nWait 7,14.7%,217) HEAT(3,nWait 1,0.0%,350) Move(4,nWait 6,0.0%,355) CanReceiv(6,nWait 1,0.0%,939) CanSender(5,nWait 7,0.0%,336) CanClock(7,delaying,0.0%,334) TMC(4,nWait 6,0.8%,110) MAIN(1,running,83.1%,663) IDLE(0,ready,0.4%,29) AIN(4,delaying,0.9%,264), total 100.0% Owned mutexes: === Platform === Last reset 00:06:29 ago, cause: software Last software reset at 2024-09-16 16:02, reason: HardFault imprec, Gcodes spinning, available RAM 13008, slot 2 Software reset code 0x4063 HFSR 0x40000000 CFSR 0x00000400 ICSR 0x0047d803 BFAR 0xe000ed38 SP 0x20012008 Task NETW Freestk 482 ok Stack: 2002c658 00000000 200014e8 0000016c 20032d79 0003015d 00034b34 810f0000 00030149 00000000 00000000 00000000 2003039c 00000800 200358d8 2002c640 2001882c 2002c496 2001882c 2001ea80 000302e3 00000000 00000000 00000000 200120b8 00000014 b5dd62e8 Error status: 0x00 MCU revision 3, ADC conversions started 389282, completed 389282, timed out 0, errs 0 MCU temperature: min 40.1, current 40.6, max 46.6 Supply voltage: min 22.9, current 24.2, max 24.5, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 99/0, heap memory allocated/used/recyclable 2048/12/12, gc cycles 0 Events: 0 queued, 0 completed Driver 0: standstill, SG min 2, read errors 0, write errors 1, ifcnt 23, reads 20460, writes 10, timeouts 0, DMA errors 0, CC errors 0 Driver 1: standstill, SG min 4, read errors 0, write errors 1, ifcnt 23, reads 20460, writes 10, timeouts 0, DMA errors 0, CC errors 0 Driver 2: standstill, SG min 2, read errors 0, write errors 1, ifcnt 23, reads 20460, writes 10, timeouts 0, DMA errors 0, CC errors 0 Driver 3: standstill, SG min 2, read errors 0, write errors 1, ifcnt 23, reads 20459, writes 10, timeouts 0, DMA errors 0, CC errors 0 Driver 4: standstill, SG min 0, read errors 0, write errors 1, ifcnt 21, reads 20460, writes 10, timeouts 0, DMA errors 0, CC errors 0 Driver 5: not present Driver 6: not present Date/time: 2024-09-16 16:09:16 Cache data hit count 741936763 Slowest loop: 19.45ms; fastest: 0.16ms === Storage === Free file entries: 20 SD card 0 detected, interface speed: 22.5MBytes/sec SD card longest read time 3.7ms, write time 0.0ms, max retries 0 === Move === DMs created 83, segments created 0, maxWait 0ms, bed compensation in use: none, height map offset 0.000, max steps late 0, min interval 0, bad calcs 0, ebfmin 0.00, ebfmax 0.00 no step interrupt scheduled Moves shaped first try 0, on retry 0, too short 0, wrong shape 0, maybepossible 0 === DDARing 0 === Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === DDARing 1 === Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0 Heater 1 is on, I-accum = 0.2 === GCodes === Movement locks held by null, 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 File2 is idle in state(s) 0 Queue2 is idle in state(s) 0 Q0 segments left 0, axes/extruders owned 0x0000803 Code queue 0 is empty Q1 segments left 0, axes/extruders owned 0x0000000 Code queue 1 is empty === CAN === Messages queued 3501, received 0, lost 0, errs 1834075, boc 0 Longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 26 (min 26), ts 1946/0/0 Tx timeouts 0,0,1945,0,0,1554 last cancelled message type 30 dest 127 === Network === Slowest loop: 14.49ms; fastest: 0.00ms Responder states: MQTT(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) HTTP sessions: 1 of 8 === WiFi === Interface state: active Module is providing access point Failed messages: pending 0, notrdy 0, noresp 0 Firmware version 2.1.0 MAC address c6:5b:be:ce:9c:5d Module reset reason: Power up, Vcc 3.33, flash size 2097152, free heap 35376 WiFi IP address 192.168.1.1 Connected clients 2 Clock register 00002001 Socket states: 0 0 0 0 0 0 0 0
-
-
All, please see https://forum.duet3d.com/topic/36689/random-hard-fault-resets-on-duet-3-mini-wifi and provide any additional reports there. I am locking this thread.
-