Printer stopping mid-print - need help troubleshooting
-
Alright, lets go on a journey, because I'm usually pretty good at troubleshooting a problem, but I'm steadily going insane now. I keep getting apparently random print-freezes, all reporting "reset button or watchdog" and I can't figure it out for the life of me.
Background:
It's a 350x350x500mm build volume i3-style printer, with a BL Touch and it has been working great for YEARS, but now it won't finish a print. It keeps simply stopping mid-print and I've included multiple M122's below, spanning printing multiple different Gcodes, over many days. It's an intermittent issue and even printing the same file, it occurs at random points during the print, between 8 minutes, and 3 hours into printing.Printer specs:
-
12V 20A power supply - I'm seeing ~120W of power draw normally, up to 170W so far during a print. Haven't seen it higher than 170W while spot checking it during a print.
-
A 120V heated bed controlled by an SSR with an in-line thermal fuse, and a separate ground wire tying the bed to the ground on the PSU.
-
Dual 30W heater cartridges
-
The hotend cooling fans are plugged into the two always-on fan headers.
-
Two part cooling fans per hotend, each pair ties back to a single fan header on the board (F0 and F1 below).
-
Three system fans, one blows air through the electronics enclosure, and one each on the X-axis and Y-axis motors to keep them cool, all three are wired through a basic harness I built, and are plugged into F2 on the board.
-
There is nothing plugged into the GPIO pins other than the BL touch, plugged in per the wiki using heater 3.
Config.g:
; General preferences M575 P1 S1 B57600 ; enable support for PanelDue G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Knyte i3" ; set printer name ; Network M552 S1 ; enable network 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 S0 ; physical drive 1 goes backwards M569 P2 S0 ; physical drive 2 goes backwards M569 P3 S1 ; physical drive 3 goes forwards M569 P4 S1 ; physical drive 4 goes forwards M584 X0 Y1 Z2 E3:4 ; set drive mapping M350 X16 Y16 Z16 E16:16 I1 ; configure microstepping with interpolation M92 X100.40 Y100.50 Z800.00 E714:714 ; set steps per mm M566 X600.00 Y600.00 Z120.00 E300.00:300.00 ; set maximum instantaneous speed changes (mm/min) M203 X9000.00 Y9000.00 Z900.00 E3600.00:3600.00 ; set maximum speeds (mm/min) M201 X3000.00 Y3000.00 Z30.00 E600.00:600.00 ; set accelerations (mm/s^2) M906 X1100 Y1400 Z800 E600:600 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout M572 D0:1 S0.08:0.08 ; Pressure Advance Configurations M593 P"zvdd" F35 ; Ringing Compensation M208 X-87 Y-0 Z0 S1 ; set axis minima M208 X260 Y350 Z495 S0 ; set axis maxima ; Endstops M574 X1 S1 P"xstop" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin xstop M574 Y1 S1 P"ystop" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin ystop M574 Z1 S2 ; configure Z-probe endstop for low end on Z ; Z-Probe M950 S0 C"exp.heater3" ; Create a GPIO/Servo pin index using Heater 3 (pin 8) in the GPIO header) M558 P9 C"^zprobe.in" H5 F120 T6000 A1 S0.1 ; set Z probe type to unmodulated and the dive height + speeds G31 P500 X0 Y-25 Z3.1 ; set Z probe trigger value, offset and trigger height M557 X50:300 Y62.5:287.5 S25 ; define mesh grid M671 X57:297:57:297 Y56:56:296:296 P0.5 ; adjusting screw locations, bed screw thread pitch 0.5mm ; Heaters M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; 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 R0.8 B1 S1.00 ; SSR bed control and a heating rate M140 H0 ; map heated bed to heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; 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 R1.669 K0.444:0.110 D6.90 E1.35 S1.00 B0 V12.0 ; Define PID-tuned Hotend Heater M143 H1 S280 ; set temperature limit for heater 1 to 280C M308 S2 P"e1temp" Y"thermistor" T100000 B4138 ; configure sensor 2 as thermistor on pin e1temp M950 H2 C"e1heat" T2 ; create nozzle heater output on e1heat and map it to sensor 2 M307 H2 R2.336 K0.422:0.219 D5.18 E1.35 S1.00 B0 V12.0 ; disable bang-bang mode for heater and set PWM limit M143 H2 S280 ; set temperature limit for heater 2 to 280C ; Sensors M308 S10 Y"mcu-temp" A"MCU" ; defines sensor 10 as MCU temperature sensor M308 S11 Y"drivers" A"Duet stepper drivers" ; defines sensor 11 as stepper driver temperature sensor ; Cooling M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency M106 P0 S0 H-1 C"Part Cooling 1" ; set fan 0 value. Thermostatic control is turned off M950 F1 C"fan1" Q500 ; create fan 0 on pin fan0 and set its frequency M106 P1 S0 H-1 C"Part Cooling 2" ; set fan 0 value. Thermostatic control is turned off M950 F2 C"fan2" Q250 ; create fan 2 on pin fan2 and set its frequency M106 P2 H1 L0.0 X0.6 B0.5 T50 C"System Fans" ; set fan 2 value L-Min 0%, X-Max 60%, B-Blip Time, T-Trigger Temp ; Tools M563 P0 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 M563 P1 D1 H2 F1 ; define tool 1 G10 P1 X87 Y0 Z0 ; set tool 1 axis offsets G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C ; Custom settings are not defined ; Miscellaneous T0 ; select first tool
It all started a few weeks ago. I was printing as normal, left, came back, the printer had rebooted, didn't think much of it, checked all the connections, resliced the file, uploaded it, restarted it, and it worked for several days, no problem.
Crash 1:
Was printing a new file I just sliced, saw the Gcode Spinning bit (didn't realize that that error was from over a month before), and ran a mesh reduction, and successfully printed it multiple times without issue.
9-5-2023.txtBut then that reduced-mesh file froze mid-print with what appears to be the same issue.
9-6-2023.txtThen I got some console messages that there was a short-to-ground on driver 2, so out of an abundance of caution and just wanting to be done with this problem, I replaced both motors with new ones and ran new wires. Worked for a couple days, and then boom:
9-8-2023.txtThis happened with a bunch of notices about a short to ground on driver 2, so after double checking the motors and wires, I assumed it was the stepper driver itself was failing (the board has been running like a champ for 2-3 years). Bit the bullet and ordered a new controller.
Got the new controller, set up the networking, updated the firmware, swapped my SD card from the old controller to the new one. I also took this opportunity to install my second hot end carriage since I had it all torn apart (and updated the config.g to add the fan, heater, extruder and tool, this is what's in the video above).
Again, it worked great for a few days, probably ~30 hours of printing time, then got a crash due to a power spike.
9-27-2023.txtI adjusted the pot on the power supply, and ordered a new one just to be on the safe side (it's getting old as well, and I'm going to have to replace it soon anyways when I go to quad-extrusion). I decided to start another freshly-sliced file, and was rewarded with another random freeze due to "reset button or watchdog"
9-28-2023.txtI figured the only other thing plugged in to the header with the reset pin is the BL Touch, so I swapped in a bl touch from a different printer, still crashed.
9-28-2023 number 2.txtRight now, I have it printing a file that was sliced a few months back, I'm going to keep doing that until/if it crashes again, to see if it's something to do with my slicer, which, here's the S3D Profiles:
Regular Slicing Profile.txt
Clone Slicing Profile.txtOnce the new power supply arrives, I'll swap it out, because I'm going to need the extra amperage for a future upgrade anyways, but other than that, I'm open to ideas, because this is driving me nuts at this point, and it just doesn't make any sense from what I can see/understand.
-
-
@KnyteTech, my first guess would be power supply if it resets and you already have that angle covered. I hope the replacement supply was ordered from a reputable (ie not China, Aliexpress or Amazon) source. Meanwell is the go-to power supply in my books but there are way too many clones out there (which are virtually indistinguishable unless you open it up) to risk questionable vendors. In North America I can recommend Digikey.
Question ... the normal config.g contains commands for power save for recovery. Would a failing power supply generate a recovery file? I have never used that feature so it is a wild guess. -
Printing a single-extrusion file I've run countless times, printed successfully once, died halfway through the second time - still no real error I can see to investigate based off of. New 350W Meanwell PSU arrives tomorrow.
9/29/2023, 10:21:58 AM M122 === Diagnostics === RepRapFirmware for Duet 2 WiFi/Ethernet version 3.4.6 (2023-07-21 14:08:28) running on Duet WiFi 1.02 or later Board ID: 0JD0M-9P6B2-NJ4S4-6J9FA-3SD6M-KV12L Used output buffers: 1 of 26 (15 max) === RTOS === Static ram: 23896 Dynamic ram: 75936 of which 0 recycled Never used RAM 11936, free system stack 134 words Tasks: NETWORK(notifyWait,45.9%,242) HEAT(notifyWait,0.1%,329) Move(notifyWait,0.0%,284) MAIN(running,53.9%,458) IDLE(ready,0.1%,30), total 100.0% Owned mutexes: WiFi(NETWORK) === Platform === Last reset 01:48:49 ago, cause: reset button or watchdog Last software reset details not available Error status: 0x00 Aux0 errors 0,0,0 Step timer max interval 0 MCU temperature: min 35.1, current 39.7, max 40.3 Supply voltage: min 12.2, current 12.5, max 12.8, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0 Events: 0 queued, 0 completed Driver 0: standstill, SG min 0 Driver 1: standstill, SG min n/a Driver 2: standstill, SG min 67 Driver 3: standstill, SG min n/a Driver 4: standstill, SG min n/a Driver 5: Driver 6: Driver 7: Driver 8: Driver 9: Driver 10: Driver 11: Date/time: 2023-09-29 10:21:57 Cache data hit count 4294967295 Slowest loop: 11.45ms; fastest: 0.18ms 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: 20.0MBytes/sec SD card longest read time 5.4ms, write time 0.0ms, max retries 0 === Move === DMs created 83, segments created 13, maxWait 291223ms, bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves 5, completed 5, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === AuxDDARing === 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 === 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: 135.80ms; fastest: 0.00ms Responder states: 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, notready 0, noresp 0 WiFi firmware version 1.27 WiFi MAC address a4:e5:7c:03:db:02 WiFi Vcc 3.43, reset reason Power up WiFi flash size 2097152, free heap 24128 WiFi IP address 192.168.1.104 WiFi signal strength -48dBm, mode 802.11n, reconnections 0, sleep mode modem Clock register 00002002 Socket states: 0 0 0 0 0 0 0 0
-
@KnyteTech I'd be tempted to try a new SD card. Just on the basis that you seem to have changed everything else and that SD cards are prone to failure.
-
@deckingman I've got a few extra microSD's laying around (learning Arduino right now) - would it be okay to copy all the files off of the existing card? Or do I need to start from scratch?
-
@KnyteTech Copying the files should be fine - make sure you keep the same folder structure. TBH, I make it habit to have a working copy of the entire contents of the SD card on a PC which is then backed up to my NAS and also to cloud storage. I only ever edit or add files on the PC and upload them to the SD card - never the other way round. That way, I can always create a new SD card if and when the worst happens.