Duet 3 Mini 5+ standalone 3.5.2 - HardFault bfarValid precise
-
I saw a couple of older posts about resets occurring with
reason: HardFault imprec,
but on 3.5.1, and after encountering the issue myself I addedM122 P500 S0
for the more helpful M122 output.Printer is the same one as here, just running in standalone mode now.
Duet 3 Mini 5+ running 3.5.2
CannedERCF running 3.5.2
SHT36MAX3 running 3.5.2M122
=== 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: NTK2Z-J196U-D65J0-40KMN-1V03Z-ZJMGF Used output buffers: 18 of 40 (25 max) === RTOS === Static ram: 103368 Dynamic ram: 124620 of which 0 recycled Never used RAM 10572, free system stack 202 words Tasks: NETWORK(2,nWait 7,6.2%,242) LASER(5,nWait 7,0.0%,269) HEAT(3,nWait 6,0.0%,353) Move(4,nWait 6,0.0%,355) CanReceiv(6,nWait 1,0.1%,798) CanSender(5,nWait 7,0.0%,336) CanClock(7,delaying,0.0%,353) TMC(4,delaying,1.5%,101) MAIN(1,running,90.2%,665) IDLE(0,ready,1.2%,29) AIN(4,delaying,0.9%,259), total 100.0% Owned mutexes: WiFi(NETWORK) === Platform === Last reset 00:00:24 ago, cause: software Last software reset at 2024-07-13 14:02, reason: HardFault bfarValid precise, Gcodes spinning, available RAM 10404, slot 1 Software reset code 0x4063 HFSR 0x40000000 CFSR 0x00008200 ICSR 0x00000803 BFAR 0x00000004 SP 0x20012008 Task NETW Freestk 482 ok Stack: 0000016e 00000002 200014e8 0000016d 20033aba 000a0bff 00030152 810f0000 00030149 00000000 00000000 00000000 200310cc 00000800 2002c640 2002c640 00000001 2002c496 2001882c 2001ea80 000302e3 00000000 00000000 00000000 200120b8 00000014 b5ddbf73 Error status: 0x00 Aux0 errors 0,0,0 MCU revision 3, ADC conversions started 25301, completed 25301, timed out 0, errs 0 MCU temperature: min 36.1, current 36.3, max 37.8 Supply voltage: min 24.3, current 24.3, max 24.4, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 99/10, heap memory allocated/used/recyclable 2048/304/132, gc cycles 0 Events: 0 queued, 0 completed Driver 0: standstill, SG min 0, read errors 0, write errors 1, ifcnt 46, reads 2198, writes 13, timeouts 0, DMA errors 0, CC errors 0 Driver 1: standstill, SG min 0, read errors 0, write errors 1, ifcnt 46, reads 2198, writes 13, timeouts 0, DMA errors 0, CC errors 0 Driver 2: standstill, SG min 0, read errors 0, write errors 1, ifcnt 32, reads 2201, writes 10, timeouts 0, DMA errors 0, CC errors 0 Driver 3: standstill, SG min 0, read errors 0, write errors 1, ifcnt 47, reads 2198, writes 13, timeouts 0, DMA errors 0, CC errors 0 Driver 4: standstill, SG min 0, read errors 0, write errors 1, ifcnt 46, reads 2198, writes 13, timeouts 0, DMA errors 0, CC errors 0 Driver 5: standstill, SG min 0, read errors 0, write errors 1, ifcnt 47, reads 2198, writes 13, timeouts 0, DMA errors 0, CC errors 0 Driver 6: standstill, SG min 0, read errors 0, write errors 1, ifcnt 32, reads 2201, writes 10, timeouts 0, DMA errors 0, CC errors 0 Date/time: 2024-07-13 14:02:38 Cache data hit count 46575139 Slowest loop: 4.76ms; fastest: 0.16ms === Storage === Free file entries: 20 SD card 0 detected, interface speed: 22.5MBytes/sec SD card longest read time 0.4ms, 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 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 209, received 716, lost 0, errs 0, boc 0 Longest wait 1ms for reply type 6042, peak Tx sync delay 3, free buffers 26 (min 25), ts 123/122/0 Tx timeouts 0,0,0,0,0,0 === Network === Slowest loop: 4.13ms; 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 connected to access point Failed messages: pending 0, notrdy 0, noresp 0 Firmware version 2.1.0 MAC address d8:bf:c0:14:e5:fc Module reset reason: Power up, Vcc 3.36, flash size 2097152, free heap 39688 WiFi IP address 192.168.2.8 Signal strength -72dBm, channel 1, mode 802.11n, reconnections 0 Clock register 00002001 Socket states: 0 0 0 0 0 0 0 0
Printer was idle at the time the reset occurred. DWC was open in Chrome 126.0.6478.127 (but I can't be certain on the version with how often Chrome can update). Installed languages were English (United States) and English, for the Chrome UI.
Let me know if there's any other information I can provide.
-
-
-
@omtek I've added this thread to the Github issue here as it seems similar, for @dc42 to investigate: https://github.com/Duet3D/RepRapFirmware/issues/935
Ian
-
I wanted to add some behavior that I've noticed as I've encountered this issue several times since switching to standalone mode.
A reset just occurred, so here is a more recent M122 (hopefully more of these help!)
=== 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: NTK2Z-J196U-D65J0-40KMN-1V03Z-ZJMGF Used output buffers: 15 of 40 (25 max) === RTOS === Static ram: 103368 Dynamic ram: 124620 of which 0 recycled Never used RAM 10572, free system stack 198 words Tasks: NETWORK(2,nWait 7,8.5%,211) LASER(5,nWait 7,0.0%,269) HEAT(3,nWait 6,0.0%,335) Move(4,nWait 6,0.0%,355) CanReceiv(6,nWait 1,0.1%,798) CanSender(5,nWait 7,0.0%,336) CanClock(7,delaying,0.0%,350) TMC(4,nWait 6,1.5%,101) MAIN(1,running,87.7%,665) IDLE(0,ready,1.4%,29) AIN(4,delaying,0.9%,263), total 100.0% Owned mutexes: WiFi(NETWORK) === Platform === Last reset 00:00:21 ago, cause: software Last software reset at 2024-07-27 14:21, reason: HardFault bfarValid precise, Gcodes spinning, available RAM 6824, slot 1 Software reset code 0x4063 HFSR 0x40000000 CFSR 0x00008200 ICSR 0x00000803 BFAR 0x0000001c SP 0x20012008 Task NETW Freestk 482 ok Stack: 2002c658 20032190 200014e8 00000000 20033b45 0003015d 00030070 610f0000 00030149 00000000 00000000 00000000 2003219c 00000800 200366a8 2002c640 2001882c 2002c496 2001882c 2001ea80 000302e3 00000000 00000000 00000000 200120b8 00000014 b5ddbf73 Error status: 0x00 Aux0 errors 0,0,0 MCU revision 3, ADC conversions started 21420, completed 21420, timed out 0, errs 0 MCU temperature: min 34.6, current 34.8, max 36.0 Supply voltage: min 24.2, current 24.3, max 24.4, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 99/10, heap memory allocated/used/recyclable 2048/300/128, gc cycles 0 Events: 0 queued, 0 completed Driver 0: standstill, SG min 0, read errors 0, write errors 1, ifcnt 65, reads 1901, writes 13, timeouts 0, DMA errors 0, CC errors 0 Driver 1: standstill, SG min 0, read errors 0, write errors 1, ifcnt 64, reads 1901, writes 13, timeouts 0, DMA errors 0, CC errors 0 Driver 2: standstill, SG min 0, read errors 0, write errors 1, ifcnt 21, reads 1903, writes 10, timeouts 0, DMA errors 0, CC errors 0 Driver 3: standstill, SG min 2, read errors 0, write errors 1, ifcnt 66, reads 1900, writes 13, timeouts 0, DMA errors 0, CC errors 0 Driver 4: standstill, SG min 0, read errors 0, write errors 1, ifcnt 64, reads 1901, writes 13, timeouts 0, DMA errors 0, CC errors 0 Driver 5: standstill, SG min 2, read errors 0, write errors 1, ifcnt 65, reads 1901, writes 13, timeouts 0, DMA errors 0, CC errors 0 Driver 6: standstill, SG min 0, read errors 0, write errors 1, ifcnt 21, reads 1903, writes 10, timeouts 0, DMA errors 0, CC errors 0 Date/time: 2024-07-27 14:22:18 Cache data hit count 40640421 Slowest loop: 7.25ms; fastest: 0.16ms === Storage === Free file entries: 20 SD card 0 detected, interface speed: 22.5MBytes/sec SD card longest read time 0.5ms, 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 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 200, received 634, lost 0, errs 0, boc 0 Longest wait 2ms for reply type 6034, peak Tx sync delay 6, free buffers 26 (min 25), ts 107/106/0 Tx timeouts 0,0,0,0,0,0 === Network === Slowest loop: 10.82ms; fastest: 0.00ms Responder states: MQTT(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) HTTP sessions: 2 of 8 === WiFi === Interface state: active Module is connected to access point Failed messages: pending 0, notrdy 0, noresp 0 Firmware version 2.1.0 MAC address d8:bf:c0:14:e5:fc Module reset reason: Power up, Vcc 3.36, flash size 2097152, free heap 42932 WiFi IP address 192.168.2.8 Signal strength -48dBm, channel 1, mode 802.11n, reconnections 0 Clock register 00002001 Socket states: 0 0 0 0 0 0 0 0
The peculiar thing I noticed that while the printer seems to be in working order (config.g loads without error [including toolboard configuration; this is important later], printer homes properly, and bed/tool temperatures look ok along with DHT22/SZP temperatures), the electronics section in the Machine-Specific tab looks like this:
and is missing two toolboard entries; a CannedERCF-SAMMYC21 and a Mellow Fly SHT36 Max V3.
The boards respond to M122.
M122 B19 (CannedERCF-SAMMYC21)
Diagnostics for board 19: Duet SAMMYC21 firmware version 3.5.2+001 (2024-06-12 12:43:35) Bootloader ID: SAMMY-C21 bootloader version 2.4 (2021-12-10) Never used RAM 1180, free system stack 91 words Tasks: Move(3,nWait 7,0.0%,92) HEAT(2,nWait 6,0.1%,126) CanAsync(5,nWait 4,0.0%,54) CanRecv(3,nWait 1,0.0%,72) CanClock(5,nWait 1,0.0%,60) TMC(2,delaying,2.5%,44) MAIN(1,running,62.6%,420) IDLE(0,ready,0.0%,40) AIN(2,nWait 2,34.7%,112), total 100.0% Owned mutexes: Last reset 36:45:40 ago, cause: power up Last software reset data not available Driver 0: pos 798616, 80.0 steps/mm, standstill, SG min 0, read errors 20, write errors 0, ifcnt 14, reads 36602, writes 14, timeouts 2, DMA errors 0, CC errors 0, failedOp 0x41, steps req 0 done 1402 Driver 1: pos 0, 566.3 steps/mm, standstill, SG min 0, read errors 21, write errors 0, ifcnt 12, reads 36605, writes 12, timeouts 0, DMA errors 0, CC errors 0, steps req 0 done 0 Moves scheduled 4, completed 4, in progress 0, hiccups 0, segs 6, step errors 0, maxLate 1 maxPrep 192, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0, ebfmin 0.00 max 0.00 Peak sync jitter -3/20, peak Rx sync delay 221, resyncs 0/1, no timer interrupt scheduled VIN voltage: min 24.2, current 24.2, max 24.2 MCU temperature: min 30.4C, current 32.2C, max 36.3C Last sensors broadcast 0x00000000 found 0 139 ticks ago, 0 ordering errs, loop time 0 CAN messages queued 1061425, send timeouts 0, received 1720327, lost 0, errs 0, boc 0, free buffers 18, min 18, error reg 0 dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 306, adv 37121/37173 === Filament sensors === Interrupt 5726621 to 0us, poll 4 to 509us Driver 1: no data received
M122 B20 (SHT36MAX3)
Diagnostics for board 20: Duet SHT36MAX3 firmware version 3.5.2 (2024-06-13 00:58:17) Bootloader ID: All averaging filters OK Never used RAM 217004, free system stack 380 words Tasks: Move(3,nWait 7,0.6%,72) HEAT(2,nWait 6,0.2%,110) CanAsync(5,nWait 4,0.0%,56) CanRecv(3,nWait 1,0.4%,356) CanClock(5,nWait 1,0.0%,334) ACCEL(3,nWait 6,0.0%,52) TMC(2,nWait 6,2.2%,52) MAIN(1,running,79.3%,436) IDLE(0,ready,0.0%,26) USBD(2,blocked,0.0%,150) AIN(2,delaying,17.3%,202), total 100.0% Owned mutexes: Last reset 36:45:53 ago, cause: power up or brownout Last software reset data not available Driver 0: pos 0, 900.0 steps/mm, standstill, read errors 0, write errors 0, ifcnt 25, reads 62720, writes 25, timeouts 0, DMA errors 0, CC errors 0, steps req 0 done 90296677 Moves scheduled 8734781, completed 8734781, in progress 0, hiccups 1, segs 46, step errors 0, maxLate 0 maxPrep 210, maxOverdue 30481, maxInc 15031, mcErrs 0, gcmErrs 0, ebfmin 0.00 max 1.00 Peak sync jitter -28/28, peak Rx sync delay 603, resyncs 0/1, no timer interrupt scheduled MCU temperature: min 33.7C, current 34.6C, max 49.1C Last sensors broadcast 0x00000012 found 2 154 ticks ago, 0 ordering errs, loop time 0 CAN messages queued 5299546, send timeouts 0, received 9928012, lost 0, errs 0, boc 0, free buffers 38, min 37, error reg 0 dup 0, oos 28/0/0/14, bm 0, wbm 0, rxMotionDelay 849, adv 35533/74590 Accelerometer: LIS2DW, status: 00 Inductive sensor: raw value 56698385, frequency 4.22MHz, current setting 16, amplitude error I2C bus errors 0, naks 0, contentions 0, other errors 0
After the reset occurs, when I try to load my working configuration for my ERCFv2, I get the following error:
M98 P"0:/sys/ercf/config.g"
Error: Driver 19.0 does not exist
ercf/config.g
;=== configuration - ERCF - drive & axis mapping ===; M569 P19.0 S1 D2 ;; ERCF Selector M569 P19.1 S0 D2 ;; ERCF Drive M584 E20.0:19.1 V19.0 ;; gizmoN extruder and ERCF drive are bonded together, selector is V-axis ;=== configuration - ERCF - drive - steps/mm, current, idle timeout ===; M350 E{move.extruders[0].microstepping.value, 16} V16 I1 M906 E{move.extruders[0].current, 1400} V1600 I30 M92 E{move.extruders[0].stepsPerMm, 566.3} V80 ;=== configuration - ERCF - drive - speed, acceeleration, jerk ===; M201 E{move.extruders[0].acceleration, 3000} V3000 M203 E{move.extruders[0].speed, 7200} V6000 M205 E{move.extruders[0].jerk, 5.0} V5.0 ;=== configuration - ERCF - axis - endstops ===; M574 V1 S1 P"19.io3.in" ;=== configuration - ERCF - axis - min/max ===; M208 V0 S1 M208 V200 S0 ;=== configuration - ERCF - servo, blinky ===; M591 D1 P7 C"^19.io1.in" S1 A1 L1.000 ;; pulsed filament monitor on CannedERCF, Binky mod M950 S10 C"19.io0.out" ;; cannedERCF servo M950 S5 C"0.out6" ;; filament cutter, ;=== configuration - ERCF - tool definitions ===; M563 P0 D0:1 H1 F1 L0; define tool 0 G10 P0 R0 S0 M563 P0 S"ERCF_0" D0:1 H1 F1 L1 ;; define and name tool ;; assign orbiter/ERCF as extruder drive G10 P0 R0 S0 ;; set active & standby temperatures M563 P1 S"ERCF_1" D0:1 H1 F1 L1 ;; define and name tool ;; assign orbiter/ERCF as extruder drive G10 P1 R0 S0 ;; set active & standby temperatures M563 P2 S"ERCF_2" D0:1 H1 F1 L1 ;; define and name tool ;; assign orbiter/ERCF as extruder drive G10 P2 R0 S0 ;; set active & standby temperatures M563 P3 S"ERCF_3" D0:1 H1 F1 L1 ;; define and name tool ;; assign orbiter/ERCF as extruder drive G10 P3 R0 S0 ;; set active & standby temperatures M563 P4 S"ERCF_4" D0:1 H1 F1 L1 ;; define and name tool ;; assign orbiter/ERCF as extruder drive G10 P4 R0 S0 ;; set active & standby temperatures M563 P5 S"ERCF_5" D0:1 H1 F1 L1 ;; define and name tool ;; assign orbiter/ERCF as extruder drive G10 P5 R0 S0 ;; set active & standby temperatures M563 P6 S"ERCF_6" D0:1 H1 F1 L1 ;; define and name tool ;; assign orbiter/ERCF as extruder drive G10 P6 R0 S0 ;; set active & standby temperatures M563 P7 S"ERCF_7" D0:1 H1 F1 L1 ;; define and name tool ;; assign orbiter/ERCF as extruder drive G10 P7 R0 S0 ;; set active & standby temperatures ;=== housekeeping ===: T0 P0 ;; select Tool 0, don't run toolchange macros
And if I try to home the V-axis (ERCF Selector axis), the printer hangs in a "Busy" state", the selector axis doesn't move and I have to use the E-stop to reset the printer. After the printer comes back up again, the electronics section is properly populated
and my ERCF configuration executes without issue.
Let me know if I can provide any further information.
-
@omtek What you are seeing with the toolboards after a reset of the mainboard is probably to be expected. I'd recommend that you power cycle the printer after a reset, or at the very least you do an estop after the mainboard has restarted. When the mainboard resets the expansion boards do not get a reset message, so are in what is effectively an undefined state. After a software reset you are essentially in the same state as if you pressed the reset button on the mainboard see the limitation notes here: https://docs.duet3d.com/User_manual/RepRapFirmware/CAN_limitations
-
@gloomyandy Ah ok, that actually makes a lot of sense. I'll keep that in mind in the future.
-
-
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.
-