I'm having the same issue: https://forum.duet3d.com/topic/35647/hardfault-causing-failed-prints
Posts made by Nate.Nygren
-
HardFault causing failed prints 3.5.1
Not sure why, but since upgrading to 3.5.x I've had 3 times where the Duet3 Mini board just stops motion and reboots. Any clue as to the cause from the diagnostics? Most of the time my prints complete just fine, so I'm puzzled as to why this has started happening. Here's my M122:
=== Diagnostics === RepRapFirmware for Duet 3 Mini 5+ version 3.5.1 (2024-04-19 14:41:25) running on Duet 3 Mini5plus WiFi (standalone mode) Board ID: AATGZ-U396U-D65J0-40KM4-NM03Z-HUQXW Used output buffers: 8 of 40 (21 max) === RTOS === Static ram: 103232 Dynamic ram: 121388 of which 0 recycled Never used RAM 13868, free system stack 160 words Tasks: NETWORK(2,nWait 7,13.9%,234) HEAT(3,nWait 6,0.0%,351) Move(4,nWait 6,0.0%,294) CanReceiv(6,nWait 1,0.0%,940) CanSender(5,nWait 7,0.0%,336) CanClock(7,delaying,0.0%,334) TMC(4,nWait 6,0.8%,111) MAIN(1,running,84.3%,665) IDLE(0,ready,0.1%,30) AIN(4,delaying,0.9%,269), total 100.0% Owned mutexes: WiFi(NETWORK) === Platform === Last reset 00:03:24 ago, cause: software Last software reset at 2024-05-05 19:22, reason: HardFault imprec, Gcodes spinning, available RAM 12748, slot 0 Software reset code 0x4063 HFSR 0x40000000 CFSR 0x00000400 ICSR 0x0047d803 BFAR 0xe000ed38 SP 0x20012050 Task NETW Freestk 507 ok Stack: 2002c5e0 20031398 200014e8 00000000 ffffffff 0002ff99 00030058 610ff200 000347e1 2002c3a8 2002c3a8 00000003 0002f715 00000020 20034ee0 00000000 0ded7a33 e000e000 2001e9f8 a5a5a5a5 20034ee0 00000000 0dee8d89 e000e000 2001e9f8 a5a5a5a5 a5a5a5a5 Error status: 0x00 MCU revision 3, ADC conversions started 205089, completed 205088, timed out 0, errs 0 MCU temperature: min 34.3, current 34.3, max 42.0 Supply voltage: min 24.1, current 24.3, max 24.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/336/336, gc cycles 0 Events: 0 queued, 0 completed Driver 0: standstill, SG min 174, read errors 0, write errors 1, ifcnt 77, reads 10768, writes 10, timeouts 0, DMA errors 0, CC errors 0 Driver 1: standstill, SG min 188, read errors 0, write errors 1, ifcnt 74, reads 10768, writes 10, timeouts 0, DMA errors 0, CC errors 0 Driver 2: standstill, SG min 110, read errors 0, write errors 1, ifcnt 52, reads 10765, writes 13, timeouts 0, DMA errors 0, CC errors 0 Driver 3: standstill, SG min 2, read errors 0, write errors 1, ifcnt 226, reads 10768, writes 10, timeouts 0, DMA errors 0, CC errors 0 Driver 4: standstill, SG min 2, read errors 0, write errors 1, ifcnt 53, reads 10765, writes 13, timeouts 0, DMA errors 0, CC errors 0 Driver 5: not present Driver 6: not present Date/time: 2024-05-05 19:25:35 Cache data hit count 378313878 Slowest loop: 4.71ms; fastest: 0.16ms === Storage === Free file entries: 20 SD card 0 detected, interface speed: 22.5MBytes/sec SD card longest read time 2.1ms, write time 0.0ms, max retries 0 === Move === DMs created 83, segments created 3, maxWait 40727ms, 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 1, completed 1, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 1], 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 0x0000807 Code queue 0 is empty Q1 segments left 0, axes/extruders owned 0x0000000 Code queue 1 is empty === Filament sensors === check 0 clear 980104 Extruder 0 sensor: ok === CAN === Messages queued 1844, received 0, lost 0, errs 965983, boc 0 Longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 26 (min 26), ts 1025/0/0 Tx timeouts 0,0,1024,0,0,818 last cancelled message type 4514 dest 127 === Network === Slowest loop: 10.47ms; 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 f4:cf:a2:6f:9a:ba Module reset reason: Power up, Vcc 3.36, flash size 2097152, free heap 43052 WiFi IP address 192.168.1.12 Signal strength -56dBm, channel 9, mode 802.11n, reconnections 0 Clock register 00002001 Socket states: 0 0 0 0 0 0 0 0
-
What SBC do you use?
Just curious what SBC everyone is using. Anyone running on a PiZero2W?
-
Prusa Style Filament AutoLoad macro
Thought I'd share my Prusa style autoload macro (firmware => 3.5.0) for others to use or improve. Please feel free to add your suggestions! This assumes you have a filament sensor.
EDIT: I've updated the load.g code to make it a little more smart.
daemon.g
; Monitor the Filament Sensor to see if it's loaded if {sensors.filamentMonitors[0].status = "noFilament"} M98 P"0:/macros/load.g"
load.g
; Filament AutoLoad Macro for RepRapFirmware ; While waiting for the user to load filament, check the filament sensor while {sensors.filamentMonitors[0].status = "noFilament"} M117 "Please load filament." ; Read filament sensor and if filment is present, continue the load process if {sensors.filamentMonitors[0].status = "ok"} ; Ask user what type of filament is loaded M291 S4 T0 P"Select Filament Type" R"Filament Type" K{"PLA","PETG","ABS","TPU","Nylon"} ; Set the temperature based on the filament type if {input == 0} G10 S200 ; Set temperature for PLA elif {input == 1} G10 S235 ; Set temperature for PETG elif {input == 2} G10 S240 ; Set temperature for ABS elif {input == 3} G10 S220 ; Set temperature for TPU elif {input == 4} G10 S250 ; Set temperature for Nylon M116 ; Wait for the temperatures to be reached M83 ; Extruder to relative mode ; Move E till filament is grabbed by gears G1 E15 F120 ; Extrude 15mm of filament at a speed of 120mm/min ; Ask user if filament was grabbed by gears. If not, grab a little more filament var loaded = false while {var.loaded = false} M291 S4 T0 P"Filament Loaded?" R"Filament Loaded?" K{"Continue","Try Again"} if {input == 1} ; Try again set var.loaded = false G1 E15 F120 ; Extrude 15mm of filament at a speed of 120mm/min continue elif {input == 0} ; Continue set var.loaded = true break if {var.loaded == true} ; Change the extruded amount depending on the size of your hotend setup. G1 E80 F240 ; Extrude 80mm of filament at a speed of 240mm/min. ; Ask user if filament is extruding properly var extruded = false while {var.extruded = false} M291 S4 T0 P"Filament Extruding?" R"Did filament come out?" K{"No","Yes"} if {input == 0} ; No set var.extruded = false G1 E15 F240 ; Extrude 15mm more of filament at a speed of 240mm/min continue elif {input == 1} ; Yes set var.extruded = true break ; Set the extruder position to 0 G92 E0 M104 S0 ; set tool temp to 0
-
RE: Software bundle 3.5.0rc.4 now available
@T3P3Tony The new one didn't get flagged.
-
RE: 3.5.0-rc.4 Z (print head) crashes into bed at end of print
@gloomyandy I'll suggest that in the report to the ConfigTool repo.
-
RE: 3.5.0-rc.4 Z (print head) crashes into bed at end of print
@gloomyandy Bingo, commenting out the last G1 move was the key. Thank!
-
RE: 3.5.0-rc.4 Z (print head) crashes into bed at end of print
@gloomyandy I'm already on it I commented out the last G1 move in the homex.g file, which isn't really necessary anyway, and am heating up for a quick print test.
-
RE: 3.5.0-rc.4 Z (print head) crashes into bed at end of print
@gloomyandy I agree the H2 doesn't need to be there, but this homex.g file was generated by the RepRapFirmware Config tool, and like I mentioned above it works fine if it's called by the Home X button in DWC, so I didn't edit them out.
-
RE: 3.5.0-rc.4 Z (print head) crashes into bed at end of print
@gloomyandy
Using the Home X button in DWC works fine, no Z crash.homex.g
; homex.g ; called to home the X axis ; ; generated by RepRapFirmware Configuration Tool v3.5.0-rc.3+2 on Fri Apr 05 2024 23:17:10 GMT-0500 (Central Daylight Time) ; lift Z G91 ; relative positioning G1 H2 Z2 ; move Z relative to current position to avoid dragging nozzle over the bed G90 ; absolute positioning ; home X var maxTravel = move.axes[0].max - move.axes[0].min + 5 ; calculate how far X can travel plus 5mm G1 H1 X{-var.maxTravel} F6000 ; coarse home in the -X direction G1 H2 X5 F6000 ; move back 5mm G1 H1 X{-var.maxTravel} F3000 ; fine home in the -X direction G1 H2 Z-2 F6000 ; lower Z again
-
3.5.0-rc.4 Z (print head) crashes into bed at end of print
Expected result
At end of print, my GCODE is:
...
G28 X
...
G90 ;absolute positioning
G1 Y200 ;move Y forward to present printObserved result
DWC displayed "Error: G1: intermediate position outside machine limits" in Console
G1 Y200 was never executed, print head crashed into bed after homing X.Steps to reproduce
Type in G28 X into DWC command line produced same result.Config.g
; Configuration file for RepRapFirmware on Duet 3 Mini 5+ Ethernet ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.5.0-rc.3+2 on Fri Apr 05 2024 23:17:08 GMT-0500 (Central Daylight Time) ; General G90 ; absolute coordinates M83 ; relative extruder moves M550 P"Prusa Bear" ; set hostname M911 S19.8 R22 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss ; Accessories ;M918 P2 E4 F2000000 C30 R6 ; configure direct-connect display ;M150 X2 R255 U255 B255 S3 ; set all 3 LEDs to white ; Network M552 S1 ; configure network M586 P0 S1 ; enable HTTP ; Smart Drivers M569 P0.0 S0 D3 V10 ; driver 0.0 goes backwards (X axis) M915 P0.0 S6 ; set StallGuard threshold M569 P0.1 S1 D3 V10 ; driver 0.1 goes forwards (Y axis) M915 P0.1 S1 ; set StallGuard threshold M569 P0.2 S0 D3 V38 ; driver 0.2 goes backwards (Z axis) M569 P0.3 S1 D2 ; driver 0.3 goes forwards (extruder 0) M569 P0.4 S0 D3 V38 ; driver 0.4 goes backwards (Z axis) ; Motor Idle Current Reduction M906 I30 ; set motor current idle factor M84 S30 ; set motor current idle timeout ; Axes M584 X0.0 Y0.1 Z0.2:0.4 ; set axis mapping M671 X-50:305 Y0:0 P2 S10 ; define dual driven z-axis with 8mm pitch for leadscrews M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation M906 X1200 Y1200 Z1200 ; set axis driver currents M92 X100 Y100 Z400 ; configure steps per mm M208 X-8:250 Y-8:210 Z0:210 ; set minimum and maximum axis limits M566 X480 Y480 Z480 ; set maximum instantaneous speed changes (mm/min) X and Y can be 600 M203 X9000 Y9000 Z960 ; set maximum speeds (mm/min) ;M201 X500 Y500 Z20 ; set accelerations (mm/s^2) M201 X500 Y500 Z250 ; Extruders M584 E0.3 ; set extruder mapping M350 E16 I1 ; configure microstepping with interpolation M906 E800 ; set extruder driver currents M92 E140 ; configure steps per mm M566 E360 ; set maximum instantaneous speed changes (mm/min) M203 E3600 ; set maximum speeds (mm/min) M201 E500 ; set accelerations (mm/s^2) ; Kinematics M669 K0 ; configure Cartesian kinematics ; Probes M558 P5 C"io3.in" H2 F800:300 T6000 A3 ; configure digital probe via slot #0 G31 P1000 X0 Y0 Z1.0966 ; set Z probe trigger value, offset and trigger height with steel TEXTURED sheet ;G31 P1000 X0 Y0 Z0.9003 ; set Z probe trigger value, offset and trigger height with steel SMOOTH sheet ; Endstops M574 X1 S3 ; configure X axis endstop M574 Y1 S3 ; configure Y axis endstop M574 Z1 S2 ; configure Z axis endstop M574 Z2 S3 ; top end Z ? ; sensorless homing M915 X S6 F0 H112 R0 ; set X axis Sensitivity M915 Y S1 F0 H112 R0 ; set Y axis Sensitivity ; Mesh Bed Compensation M557 X13:217 Y1:198 P3 ; define grid for mesh bed compensation M376 H2 ; Fade height 2mm ; Sensors M308 S0 P"temp0" Y"thermistor" A"Bed" T100000 B4725 C7.06e-8 ; configure sensor #0 M308 S1 P"temp1" Y"thermistor" A"Nozzle" T100000 B4725 C7.06e-8 ; configure sensor #1 ; Heaters M950 H0 C"out0" T0 ; create heater #0 M143 H0 P0 T0 C0 S120 A0 ; configure heater monitor #0 for heater #0 ;M307 H0 R2.43 D5.5 E1.35 K0.56 B1 ; configure model of heater #0 M950 H1 C"out1" T1 ; create heater #1 M143 H1 P0 T1 C0 S280 A0 ; configure heater monitor #0 for heater #1 ;M307 H1 R2.43 D5.5 E1.35 K0.56 B0 ; configure model of heater #1 M307 H1 R2.203 K0.332:0.243 D6.51 E1.35 S1.00 B0 V24.2 ; Heated beds M140 P0 H0 ; configure heated bed #0 ; Fans M950 F0 C"out5" ; create fan #0 M106 P0 S0 L0 X1 B0.1 ; configure fan #0 M950 F1 C"out6" ; create fan #1 M106 P1 S0 B0.1 H1 T55 ; configure fan #1 ; Tools M563 P0 D0 H1 F0 ; create tool #0 M568 P0 R0 S0 ; set initial tool #0 active and standby temperatures to 0C ; Miscellaneous M501 ; load saved parameters from non-volatile memory T0 ; select first tool ; Accelerometer for Input Shaping ;M955 P0 C"spi.cs2+spi.cs1" ; all wires connected to temp DB connector ; Custom settings M572 D0 S0.045 ; Pressure Advance M207 S0.65 F2400 Z0 ; firmware retraction M593 P"zvddd" F61 ; use input shaping to cancel ringing
-
RE: Software bundle 3.5.0rc.4 now available
@dc42 Interestingly, I got the virus detection warning in Windows today when I downloaded DuetWebControl-SD.zip from the RepRapFirmware repo but not the archive downloaded from the DuetWebControl repo.
-
RE: Homing issues with RRF 3.4.5 on Duet 3 Mini
@dc42 Thank you! I have confirmed that homing works correctly again on the new version. Merry Christmas
-
3.4.5 Homing moves really slow
Using Duet 3 mini 5+ board on cartesian style printer
Issue after upgrading to 3.4.5 during the homing sequences occurred on the axis being told to travel back a few mm. The movement would happen normally during the H1 home, but move at a snails pace during the H2 portion.
On X and Y:
G1 H1 X-265 F3600 ; move quickly to X axis end <-- MOVES NORMALLY
G1 H2 X10 F6000 ; go back a few mm <-- HERE IS WHERE THE AXIS MOVES AT A SNAILS PACE.On Z homing:
G30 ; <-- LOWERS Z AT NORMAL SPEED FIRST TIME, BUT SUBSEQUENT RAISES AND LOWERS ARE SO SLOW I COULD BARELY TELL THE GANTRY WAS MOVING. RESULTS IN FAILED Z PROBE.Downgraded to 3.4.4 which works a treat. Just thought I'd let you know in case this is the first you've seen the issue.
config.g file attached for reference in case you need it.config.g -
RE: Duet WiFi Mini5+ will not connect to WiFi
@phaedrux I was using SerialTools as suggested on the GettingConnected page. Since you mentioned the mac being problematic, I decided to give it a try with a Windows PC using YAT. First try with M587 got the OK response and M552 S1 had me back in the web interface.
So, thank you!
tbh, I'm kinda shocked that a windows program outdone a *nix OS at terminal emulation -
Duet WiFi Mini5+ will not connect to WiFi
Long story short: I first setup my Duet as DHCP and last night I tried to set a static IP by sending the M587 command through DWC. Yeah, I know hangs head in shame
I lost connection to the web interface, kicked myself, dragged out my MacBook and the USB cable, and connected up via terminal emulator.
M558 S-1 to shut off the module
ok
M558 S0 to put it in idle mode
ok
M587 S"myssid" P"mypassword"
<waits>
Try again.
<waits again>
3rd time's a charm.
<nothing>Ok, no worries, refresh the firmware with M997 S1.
After that, repeat above and get the same results.
Pff, fine. I regenerated the 'runonce.g' file using the Duet web configurator. Copy and paste it into my sys folder on the SD, boot up the Printer... no new devices connect to my wifi router.
Connect the terminal emulator again and run M588 "*" to forget the remembered networks and run through the manual setup steps again, and still get the same results.
I'm fresh out of ideas.
Latest firmware and wifiserver versions.
Help?