Prints stopping mid print and duet rebooting.
-
Recently my printer randomly stops printing mid print and the duet restarts. The duet is under my heated bed and I was concerned it was overheating so I put a heatsink on the cpu and I have adjusted the cooling fan to blow more accurately across the board but it is still happening. I have monitored it during a print and the temperature stays constant around 50c when printing ABS with the bed at 120c which is the hottest it ever goes. Is 50c still too hot? I recall reading the max temperature was something over 60c. It is a big job to move the duet but I will if the consensus is that it is a heat issue.
-
Please provide a M122 status report so we can diagnose the cause of restart.
-
Here's the output from M122
[[language]] M122 === Diagnostics === Used output buffers: 2 of 32 (9 max) === Platform === Static ram used: 45820 Dynamic ram used: 39916 Recycled dynamic ram: 280 Stack ram used: 1088 current, 4812 maximum Never used ram: 7476 Last reset 00:20:32 ago, cause: software Last software reset code 0x7001, HFSR 0x00000000, CFSR 0x00000000, ICSR 0x0000080f, BFAR 0xe000ed38, SP 0xffffffff Spinning module during software reset: Network, available RAM 6932 bytes (slot 0) Error status: 0 Free file entries: 10 SD card 0 detected, interface speed: 21.0MBytes/sec SD card longest block write time: 0.0ms MCU temperature: min 28.5, current 34.0, max 35.8 Date/time: 2017-05-23 17:41:21 Slowest main loop (seconds): 0.006226; fastest: 0.000000 === Move === MaxReps: 0, StepErrors: 0, MaxWait: 0ms, Underruns: 0, 0 Scheduled moves: 0, completed moves: 0 Bed compensation in use: none Bed probe heights: 0.000 0.000 0.000 0.000 0.000 === Heat === Bed heater = 0, chamber heater = -1 Heater 1 is on, I-accum = 0.0 === GCodes === Segments left: 0 Stack records: 1 allocated, 0 in use 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 serial is idle in state(s) 0 aux is idle in state(s) 0 daemon is idle in state(s) 0 queue is idle in state(s) 0 Code queue is empty. === Network === Free connections: 15 of 16 Free transactions: 23 of 24 Locked: 1, state: 4, listening: 0x20071b54, 0x0, 0x0 === Webserver === HTTP sessions: 2 of 8 FTP connections: 0, state 0 Telnet connections: 0, state 0
-
Another one, wasn't even printing just preheating the bed on these 2.
[[language]] M122 === Diagnostics === Used output buffers: 2 of 32 (9 max) === Platform === Static ram used: 45820 Dynamic ram used: 39916 Recycled dynamic ram: 280 Stack ram used: 1088 current, 4440 maximum Never used ram: 7848 Last reset 00:01:17 ago, cause: software Last software reset code 0x7000, HFSR 0x00000000, CFSR 0x00000000, ICSR 0x0042f00f, BFAR 0xe000ed38, SP 0xffffffff Spinning module during software reset: Platform, available RAM 7232 bytes (slot 3) Error status: 0 Free file entries: 10 SD card 0 detected, interface speed: 21.0MBytes/sec SD card longest block write time: 0.0ms MCU temperature: min 28.8, current 31.9, max 34.9 Date/time: 2017-05-23 20:26:31 Slowest main loop (seconds): 0.006279; fastest: 0.000099 === Move === MaxReps: 0, StepErrors: 0, MaxWait: 0ms, Underruns: 0, 0 Scheduled moves: 0, completed moves: 0 Bed compensation in use: none Bed probe heights: 0.000 0.000 0.000 0.000 0.000 === Heat === Bed heater = 0, chamber heater = -1 Heater 1 is on, I-accum = 0.0 === GCodes === Segments left: 0 Stack records: 1 allocated, 0 in use 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 serial is idle in state(s) 0 aux is idle in state(s) 0 daemon is idle in state(s) 0 queue is idle in state(s) 0 Code queue is empty. === Network === Free connections: 15 of 16 Free transactions: 23 of 24 Locked: 1, state: 4, listening: 0x20071b54, 0x0, 0x0 === Webserver === HTTP sessions: 1 of 8 FTP connections: 0, state 0 Telnet connections: 0, state 0
-
That's the first time I've ever seen a software reset code of 0x70xx reported. Which firmware version are you running? Please upgrade to 1.18.1 if you are running an older version
-
Could we get firmware version in the M122 code? Would help for these M122 dumps.
-
I am already on 1.18.1, Is it worth reinstalling this version,? Is there anything else I can do? I initially thought it was a heat issue but these last 2 resets have happened within minutes of turning on the Printer and starting preheat of the bed so the CPU temp got to no more than 35c or so.
-
I suggest you reinstall 1.18.1 just in case a flash cell is not fully programmed.
Reset code 0x70xx indicates that a debug exception, SVCall or PendSV exception occurred. None of those should happen unless the firmware is corrupt, or the return stack has been corrupted. If the problem persists then I will change the firmware to give a stack dump for those exceptions like some other exceptions do. [Actually, I will probably do that anyway.]
-
Ok thanks I'll do that tonight.
-
Well I flashed the firmware but it is still resetting.
[[language]] M122 === Diagnostics === Used output buffers: 2 of 32 (18 max) === Platform === Static ram used: 45820 Dynamic ram used: 39916 Recycled dynamic ram: 280 Stack ram used: 1088 current, 4432 maximum Never used ram: 7856 Last reset 00:04:10 ago, cause: software Last software reset code 0x7003, HFSR 0x00000000, CFSR 0x00000000, ICSR 0x0042f00f, BFAR 0xe000ed38, SP 0xffffffff Spinning module during software reset: GCodes, available RAM 4908 bytes (slot 1) Error status: 0 Free file entries: 10 SD card 0 detected, interface speed: 21.0MBytes/sec SD card longest block write time: 0.0ms MCU temperature: min 50.4, current 51.0, max 54.4 Date/time: 2017-05-25 19:46:46 Slowest main loop (seconds): 0.004745; fastest: 0.000092 === Move === MaxReps: 0, StepErrors: 0, MaxWait: 0ms, Underruns: 0, 0 Scheduled moves: 0, completed moves: 0 Bed compensation in use: none Bed probe heights: 0.000 0.000 0.000 0.000 0.000 === Heat === Bed heater = 0, chamber heater = -1 Heater 1 is on, I-accum = 0.0 === GCodes === Segments left: 0 Stack records: 1 allocated, 0 in use 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 serial is idle in state(s) 0 aux is idle in state(s) 0 daemon is idle in state(s) 0 queue is idle in state(s) 0 Code queue is empty. === Network === Free connections: 15 of 16 Free transactions: 23 of 24 Locked: 1, state: 4, listening: 0x20071b54, 0x0, 0x0 === Webserver === HTTP sessions: 1 of 8 FTP connections: 0, state 0 Telnet connections: 0, state 0
-
Do you think it might make a difference if I flash the firmware using Bossac rather than the web interface?
-
Well I have erased and reinstalled using Bossac and so far so good, Hope I don't jinx the print but it is halfway through a 2 hour print and is still going which is more than it has done for a while.
-
Well the print finished but when I went to upload a new file to print the Duet reset again.
M122
=== Diagnostics ===
Used output buffers: 2 of 32 (30 max)
=== Platform ===
Static ram used: 45820
Dynamic ram used: 39916
Recycled dynamic ram: 280
Stack ram used: 1088 current, 4408 maximum
Never used ram: 7880
Last reset 00:00:17 ago, cause: software
Last software reset code 0x7003, HFSR 0x00000000, CFSR 0x00000000, ICSR 0x0042f00f, BFAR 0xe000ed38, SP 0xffffffff
Spinning module during software reset: GCodes, available RAM 4956 bytes (slot 0)
Error status: 0
Free file entries: 10
SD card 0 detected, interface speed: 21.0MBytes/sec
SD card longest block write time: 0.0ms
MCU temperature: min 42.8, current 45.3, max 47.7
Date/time: 2017-05-26 21:34:11
Slowest main loop (seconds): 0.018618; fastest: 0.000104
=== Move ===
MaxReps: 0, StepErrors: 0, MaxWait: 0ms, Underruns: 0, 0
Scheduled moves: 0, completed moves: 0
Bed compensation in use: none
Bed probe heights: 0.000 0.000 0.000 0.000 0.000
=== Heat ===
Bed heater = 0, chamber heater = -1
Heater 1 is on, I-accum = 0.0
=== GCodes ===
Segments left: 0
Stack records: 1 allocated, 0 in use
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
serial is idle in state(s) 0
aux is idle in state(s) 0
daemon is idle in state(s) 0
queue is idle in state(s) 0
Code queue is empty.
=== Network ===
Free connections: 15 of 16
Free transactions: 23 of 24
Locked: 1, state: 4, listening: 0x20071b54, 0x0, 0x0
=== Webserver ===
HTTP sessions: 1 of 8
FTP connections: 0, state 0
Telnet connections: 0, state 0 -
This is still happening almost every print.
[[language]] 14:02:05 M122 === Diagnostics === Used output buffers: 2 of 32 (9 max) === Platform === Static ram used: 45820 Dynamic ram used: 39916 Recycled dynamic ram: 280 Stack ram used: 1088 current, 4804 maximum Never used ram: 7484 Last reset 00:08:59 ago, cause: software Last software reset code 0x7004, HFSR 0x00000000, CFSR 0x00000000, ICSR 0x0042f00f, BFAR 0xe000ed38, SP 0xffffffff Spinning module during software reset: Move, available RAM 5228 bytes (slot 3) Error status: 0 Free file entries: 10 SD card 0 detected, interface speed: 21.0MBytes/sec SD card longest block write time: 0.0ms MCU temperature: min 40.1, current 41.9, max 47.7 Date/time: 2017-06-02 14:02:05 Slowest main loop (seconds): 0.006195; fastest: 0.000061 === Move === MaxReps: 0, StepErrors: 0, MaxWait: 0ms, Underruns: 0, 0 Scheduled moves: 0, completed moves: 0 Bed compensation in use: none Bed probe heights: 0.000 0.000 0.000 0.000 0.000 === Heat === Bed heater = 0, chamber heater = -1 Heater 0 is on, I-accum = 0.0 Heater 1 is on, I-accum = 0.3 === GCodes === Segments left: 0 Stack records: 1 allocated, 0 in use 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 serial is idle in state(s) 0 aux is idle in state(s) 0 daemon is idle in state(s) 0 queue is idle in state(s) 0 Code queue is empty. === Network === Free connections: 15 of 16 Free transactions: 23 of 24 Locked: 1, state: 4, listening: 0x20071b54, 0x0, 0x0 === Webserver === HTTP sessions: 1 of 8 FTP connections: 0, state 0 Telnet connections: 0, state 0
-
That software reset code indicates that the firmware was stuck in a spin loop for too long, and although it was executing Move module code at the time, the network lock was active and the firmware was trying to do USB output. Have you accidentally enabled debugging? To check, run M111 with no parameters. It should report that debugging is off.