Hey folks!
I've been setting up my Duet 3 Mini5+ in SBC mode through initial setup, configuration, and calibration, and it's been working absolutely fine so far — until today, when it started failing with SPI connection reset errors out of nowhere, persisting after multiple full reboots. The errors sometimes occur during initial bed probing (using a Prusa SuperPINDA 5V probe), and sometimes only during a print.
I've been monitoring the MCU and SBC (Raspberry Pi 4) temperatures and they seem fine, and PSU voltage seems stable as well (using a Mean Well LRS-350-12). The Raspberry Pi 4 is powered by its own, official adapter. I've also ensured there are no cables in the vicinity of the ribbon connector that could be creating any sort of EM interference.
Perhaps the M122 output can offer some clues? Thank you in advance for any help, as I'm quite stumped
M122 output follows:
=== Diagnostics ===
RepRapFirmware for Duet 3 Mini 5+ version 3.5.1 (2024-04-19 14:41:25) running on Duet 3 Mini5plus WiFi (SBC mode)
Board ID: 75ZD9-UQ6KL-K65J0-409N0-3J02Z-H2B5T
Used output buffers: 1 of 40 (17 max)
=== RTOS ===
Static ram: 103232
Dynamic ram: 106468 of which 0 recycled
Never used RAM 31716, free system stack 208 words
Tasks: SBC(2,ready,3.1%,433) HEAT(3,nWait 1,0.0%,356) Move(4,nWait 6,0.0%,355) CanReceiv(6,nWait 1,0.0%,940) CanSender(5,nWait 7,0.0%,336) CanClock(7,delaying,0.0%,339) TMC(4,nWait 6,0.8%,111) MAIN(2,running,89.9%,737) IDLE(0,ready,5.3%,30) AIN(4,delaying,0.9%,265), total 100.0%
Owned mutexes: HTTP(MAIN)
=== Platform ===
Last reset 00:00:04 ago, cause: reset button
Last software reset at 2024-05-13 16:39, reason: User, Gcodes spinning, available RAM 31716, slot 1
Software reset code 0x6003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00000000 BFAR 0xe000ed38 SP 0x00000000 Task SBC Freestk 0 n/a
Error status: 0x00
MCU revision 3, ADC conversions started 4800, completed 4800, timed out 0, errs 0
MCU temperature: min 34.6, current 35.2, max 35.4
Supply voltage: min 12.1, current 12.1, max 12.1, 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 444, read errors 0, write errors 1, ifcnt 197, reads 223, writes 14, timeouts 0, DMA errors 0, CC errors 0
Driver 1: standstill, SG min 320, read errors 0, write errors 1, ifcnt 198, reads 223, writes 14, timeouts 0, DMA errors 0, CC errors 0
Driver 2: standstill, SG min 46, read errors 0, write errors 1, ifcnt 145, reads 222, writes 14, timeouts 0, DMA errors 0, CC errors 0
Driver 3: standstill, SG min 2, read errors 0, write errors 1, ifcnt 126, reads 222, writes 14, timeouts 0, DMA errors 0, CC errors 0
Driver 4: standstill, SG min 62, read errors 0, write errors 1, ifcnt 145, reads 223, writes 14, timeouts 0, DMA errors 0, CC errors 0
Driver 5: not present
Driver 6: not present
Date/time: 2024-05-13 18:18:18
Cache data hit count 10098753
Slowest loop: 3.91ms; fastest: 0.12ms
=== Storage ===
Free file entries: 20
SD card 0 not detected, interface speed: 0.0MBytes/sec
SD card longest read time 0.0ms, 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
=== GCodes ===
Movement locks held by null, null
HTTP* is doing "M122" 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 0x0000000
Code queue 0 is empty
Q1 segments left 0, axes/extruders owned 0x0000000
Code queue 1 is empty
=== CAN ===
Messages queued 39, received 0, lost 0, errs 21868, boc 0
Longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 26 (min 26), ts 24/0/0
Tx timeouts 0,0,23,0,0,14 last cancelled message type 30 dest 127
=== SBC interface ===
Transfer state: 5, failed transfers: 0, checksum errors: 0
RX/TX seq numbers: 32874/658
SPI underruns 0, overruns 0
State: 5, disconnects: 0, timeouts: 0 total, 0 by SBC, IAP RAM available 0x0d3f4
Buffer RX/TX: 0/0-0, open files: 0
=== Duet Control Server ===
Duet Control Server version 3.5.1 (2024-04-19 16:20:35, 32-bit)
HTTP+Executed:
> Executing M122
Code buffer space: 4096
Configured SPI speed: 8000000Hz, TfrRdy pin glitches: 2
Full transfers per second: 39.47, max time between full transfers: 59.6ms, max pin wait times: 866.7ms/5.8ms
Codes per second: 0.24
Maximum length of RX/TX data transfers: 4496/1196