Duet SZP reconnect
-
Issue
I have issue with my DUET SZP canboard. When I start up printer everything is ok. When using SZP(homing/bed leveling/meshing) I get random Can timeout on SZP board. Sometimes it works without errors and it starts printing. Sometimes it errors out and I have to reset printer and try again. Sometimes it logs error in DWC Console but still functions as expected(home/bed level/mesh)Console it looks like this:
12/04/2025, 11:24:29 Error: CAN response timeout: board 120, req type 6061, RID 35
Error: Expansion board 120 reconnected
12/04/2025, 11:24:27 Error: CAN response timeout: board 120, req type 6061, RID 35
Error: Expansion board 120 reconnectedSetup:
MB6HC->3HC->Tooldistribution->SZP
MB6HC - can terminated
SZP - Can terminated.
Tooldsitribution - SZP connected to T3, bypass jumpers removed. Also removed tooldistribution termination jumper.What I have done already.
-
- Made new canbus wire
-
- recrimped both cable ends
-
- Eliminated Tooldistribution board
-
- redid ja swapped RJ11 canbuswires between MB6HC->3HC->Tooldistribution board
-
- SZP factory reset
-
- swapped firmware 3.6.0-rc.2 -> 3.6.0-rc.1
My current config is in github:
https://github.com/jurikaur/trident_rrf/tree/SZP/sysLogs after timeot error(taken from serial console)
M122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.6.0-rc.1 (2025-02-28 15:00:13) running on Duet 3 MB6HC v1.02 or 1.02a (standalone mode) Board ID: 0JD2M-9P9DA-F0PSJ-6J1FA-3SD6R-T5RR3 Used output buffers: 2 of 40 (35 max) === RTOS === Static ram: 137420 Dynamic ram: 133488 of which 76 recycled Never used RAM 72112, free system stack 150 words Tasks: NETWORK(1,ready,34.8%,180) ETHERNET(5,nWait 7,0.2%,562) ACCEL(6,nWait 6,0 .0%,345) LASER(5,nWait 7,0.1%,235) HEAT(3,nWait 6,0.0%,341) Move(4,nWait 6,0.0%, 250) TMC(4,nWait 6,3.2%,343) CanReceiv(6,nWait 1,0.0%,794) CanSender(5,nWait 7,0 .0%,329) CanClock(7,delaying,0.0%,350) MAIN(1,running,61.1%,103) IDLE(0,ready,0. 4%,29) USBD(3,blocked,0.0%,137), total 100.0% Owned mutex=== Platform === Last reset 00:03:17 ago, cause: power up Last software reset at 2025-04-12 11:18, reason: User, Gcodes spinning, availabl e RAM 72112, slot 0 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task MAIN Freestk 0 n/a === Storage === Free file entries: 19 SD card 0 detected, interface speed: 25.0MBytes/sec SD card longest read time 2.5ms, write time 0.0ms, max retries 0 === Move === Segments created 40, maxWait 20080ms, bed comp in use: none, height map offset 0 .000, hiccups added 0/0 (0.00/0.00ms), max steps late 0, ebfmin 0.00, ebfmax 0.0 0 Pos req/act/dcf: 48000.00/48000/0.00 0.00/0/0.00 8000.00/8000/0.00 Next step interrupt due in 101 ticks, disabled Driver 0: standstill, SG min 0, mspos 340, reads 509, writes 23 timeouts 0 Driver 1: standstill, SG min n/a, mspos 8, reads 521, writes 11 timeouts 0 Driver 2: standstill, SG min 0, mspos 420, reads 509, writes 23 timeouts 0 Driver 3: standstill, SG min n/a, mspos 8, reads 521, writes 11 timeouts 0 Driver 4: standstill, SG min n/a, mspos 8, reads 521, writes 11 timeouts 0 Driver 5: standstill, SG min n/a, mspos 8, reads 516, writes 17 timeouts 0 Phase step loop runtime (us): min=0, max=85, frequency (Hz): min=941, max=10135 === Heat === Bed heaters 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters 2 -1 -1 -1 -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 ready with "M122" 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 doing "G4 S10" in state(s) 0 0, running macro 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 === CAN === Messages queued 1792, received 3353, lost 0, ignored 0, errs 0, boc 0 Longest wait 3ms for reply type 6061, peak Tx sync delay 165, free buffers 50 (m in 49), ts 935/934/0 Tx timeouts 0,0,0,0,0,0 === Network === Slowest loop: 788.84ms; fastest: 0.03ms Responder states: MQTT(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0) HTTP sessions: 2 of 8 === Multicast handler === Responder is inactive, messages received 0, responses 0 = Ethernet = Interface state: active Error counts: 0 0 0 1 0 0 Socket states: 2 2 2 2 2 2 0 0 0 === WiFi === Interface state: disabled Module is disabled Failed messages: pending 0, notrdy 0, noresp 0 Socket states: 0 0 0 0 0 0 0 0 ok
M122 b1 Diagnostics for board 1: Duet EXP3HC rev 1.02 or later firmware version 3.6.0-rc.1 (2025-02-28 15:01:59) Bootloader ID: SAME5x bootloader version 2.11 (2024-08-09) All averaging filters OK Never used RAM 169368, free system stack 172 words Tasks: Move(3,nWait 7,0.0%,144) TMC(2,nWait 6,7.3%,61) HEAT(2,nWait 6,0.0%,130) CanAsync(5,nWait 4,0.0%,70) CanRecv(3,nWait 1,0.0%,74) CanClock(5,nWait 1,0.0%,64) MAIN(1,running,91.5%,413) IDLE(0,ready,0.0%,39) AIN(2,delaying,1.2%,263), total 100.0% Owned mutexes: Last reset 00:03:50 ago, cause: power up Last software reset data not available Moves scheduled 6, hiccups 0 (0.00/0.00ms), segs 33, step errors 0 (types 0x0), maxLate 0 maxPrep 98, ebfmin 0.00 max 0.00 Peak sync jitter -7/5, peak Rx sync delay 186, resyncs 0/0, no timer interrupt scheduled, next step interrupt due in 4155325809 ticks, disabled VIN voltage: min 24.3, current 24.5, max 24.5 V12 voltage: min 12.3, current 12.3, max 12.3 MCU temperature: min 26.3C, current 28.5C, max 28.5C Driver 0: pos -31, 400.0 steps/mm, standstill, SG min 0, mspos 504, reads 41044, writes 29 timeouts 0 Driver 1: pos -31, 400.0 steps/mm, standstill, SG min 0, mspos 504, reads 41044, writes 29 timeouts 0 Driver 2: pos -31, 400.0 steps/mm, standstill, SG min 0, mspos 536, reads 41045, writes 29 timeouts 0 Last sensors broadcast 0x00000000 found 0 207 ticks ago, 0 ordering errs, loop time 0 CAN messages queued 2826, send timeouts 0, received 2205, lost 0, ignored 0, errs 0, boc 0, free buffers 38, min 38, error reg 0 dup 0, oos 0/0/0/0, rxMotionDelay 399, adv 37011/37070 ok
M122 b120 Diagnostics for board 120: Duet SZP firmware version 3.6.0-rc.1 (2025-02-28 15:03:22) Bootloader ID: SAMC21 bootloader version 2.10 (2023-11-16) All averaging filters OK Never used RAM 11852, free system stack 112 words Tasks: ScanSens(6,nWait 6,13.6%,50) HEAT(2,nWait 6,0.1%,126) CanAsync(5,nWait 4,0.0%,54) CanRecv(3,nWait 1,0.0%,64) CanClock(5,nWait 1,0.0%,52) ACCEL(3,nWait 6,0.0%,72) MAIN(1,running,54.7%,420) IDLE(0,ready,0.0%,26) AIN(2,nWait 2,31.6%,112), total 100.0% Owned mutexes: Last reset 00:03:36 ago, cause: software Last software reset at 2025-04-12 11:24, reason: HardFault, available RAM 11776, slot 0 Software reset code 0x0060 ICSR 0x00000003 SP 0x200047b0 Task Scan Freestk 110 ok Stack: 00000000 00000001 00000000 00000000 20002fe4 0000e1c5 000065cc 81000000 20002cb0 0000e1c5 00000000 a5a5a5a5 a5a5a5a5 20002cb8 20002c8c 20002cb4 20002c84 20002c9c 20002c88 20002c94 20002c98 20002c90 a5a5a5a5 a5a5a5a5 a5a5a5a5 a5a5a5a5 a5a5a5a5 Peak sync jitter 1/5, peak Rx sync delay 277, resyncs 0/0, no timer interrupt scheduled VIN voltage: min 4.8, current 4.8, max 4.9 MCU temperature: min 25.8C, current 26.1C, max 26.1C Last sensors broadcast 0x00000000 found 0 71 ticks ago, 0 ordering errs, loop time 0 CAN messages queued 908, send timeouts 0, received 1914, lost 0, ignored 0, errs 0, boc 0, free buffers 18, min 18, error reg 0 Accelerometer: LIS2DW, status: 00 Inductive sensor: raw value 36560899, frequency 3.40MHz, current setting 16, ok I2C bus errors 0, naks 3, contentions 0, other errors 0
-
-
@vaike_peeter please upgrade to 3.6.0-rc.2 and test again.
-
@dc42 I did firmware upgrade and started G28. X and Y was homed correctly. Z homing errored out. SZP green led started to flash and then followed red led with quick flases. From docs I can read that quick red flashes is when SZP is not connected.
Error in printer console:
12/04/2025, 19:02:36 CAN response timeout: board 120, req type 6060, RID 94
Error: Expansion board 120 reconnected
Error: invalid Z probe index
Error: invalid Z probe index
Error: invalid Z probe index
Error: in file macro line 28: G30: Z probe 0 not found
Error: invalid Z probe index
Error: invalid Z probe index
Error: in file macro line 26: meta command: insufficient axes homedSerial console debug:
M122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.6.0-rc.2 (2025-03-31 12:17:13) running on Duet 3 MB6HC v1.02 or 1.02a (standalone mode) Board ID: 0JD2M-9P9DA-F0PSJ-6J1FA-3SD6R-T5RR3 Used output buffers: 3 of 40 (31 max) === RTOS === Static ram: 137420 Dynamic ram: 133728 of which 264 recycled Never used RAM 71684, free system stack 150 words Tasks: NETWORK(1,ready,35.3%,180) ETHERNET(5,nWait 7,0.1%,562) ACCEL(6,nWait 6,0.0%,345) LASER(5,nWait 7,0.0%,235) HEAT(3,nWait 6,0.0%,333) Move(4,nWait 6,0.0%,250) TMC(4,nWait 6,3.3%,343) CanReceiv(6,nWait 1,0.0%,794) CanSender(5,nWait 7,0.0%,329) CanClock(7,delaying,0.0%,350) MAIN(1,running,61.0%,103) IDLE(0,ready,0.2%,29) USBD(3,blocked,0.0%,137), total 100.0% Owned mute=== Platform === Last reset 00:09:38 ago, cause: software Last software reset at 2025-04-12 11:18, reason: User, Gcodes spinning, available RAM 72112, slot 0 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task MAIN Freestk 0 n/a === Storage === Free file entries: 19 SD card 0 detected, interface speed: 25.0MBytes/sec SD card longest read time 2.5ms, write time 0.0ms, max retries 0 === Move === Segments created 40, maxWait 521749ms, bed comp in use: none, height map offset 0.000, hiccups added 0/0 (0.00/0.00ms), max steps late 0, ebfmin 0.00, ebfmax 0.00 Pos req/act/dcf: 47987.00/47987/0.00 -13.00/-13/0.00 8000.00/8000/0.00 Next step interrupt due in 67 ticks, disabled Driver 0: standstill, SG min 0, mspos 236, reads 52797, writes 5 timeouts 0 Driver 1: standstill, SG min n/a, mspos 8, reads 52802, writes 0 timeouts 0 Driver 2: standstill, SG min 0, mspos 316, reads 52797, writes 5 timeouts 0 Driver 3: standstill, SG min n/a, mspos 8, reads 52803, writes 0 timeouts 0 Driver 4: standstill, SG min n/a, mspos 8, reads 52803, writes 0 timeouts 0 Driver 5: standstill, SG min n/a, mspos 8, reads 52802, writes 0 timeouts 0 Phase step loop runtime (us): min=0, max=68, frequency (Hz): min=1313, max=4189 === DDARing 0 === Scheduled moves 17, completed 17, LaErrors 0, Underruns [0, 0, 0] Segments left 0, axes/extruders owned 0x80000007, drives owned 0x80000007 Code queue is empty === DDARing 1 === Scheduled moves 0, completed 0, LaErrors 0, Underruns [0, 0, 0] Segments left 0, axes/extruders owned 0x00000000, drives owned 0x00000000 Code queue is empty === Heat === Bed heaters 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters 2 -1 -1 -1 -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 ready with "M122" 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 doing "G4 S10" in state(s) 0 0, running macro 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 === CAN === Messages queued 2295, received 5005, lost 0, ignored 0, errs 0, boc 0 Longest wait 2ms for reply type 6061, peak Tx sync delay 367, free buffers 50 (min 49), ts 1213/1213/0 Tx timeouts 0,0,0,0,0,0 === Network === Slowest loop: 592.30ms; fastest: 0.03ms Responder states: MQTT(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0) HTTP sessions: 1 of 8 === Multicast handler === Responder is inactive, messages received 0, responses 0 = Ethernet = Interface state: active Error counts: 0 0 142 0 0 0 Socket states: 2 2 2 2 2 2 0 0 0 === WiFi === Interface state: disabled Module is disabled Failed messages: pending 0, notrdy 0, noresp 0 Socket states: 0 0 0 0 0 0 0 0 ok
M122 B1 Diagnostics for board 1: Duet EXP3HC rev 1.02 or later firmware version 3.6.0-rc.2 (2025-03-31 12:21:29) Bootloader ID: SAME5x bootloader version 2.11 (2024-08-09) All averaging filters OK Never used RAM 169228, free system stack 182 words Tasks: Move(3,nWait 7,0.0%,146) TMC(2,nWait 6,7.2%,61) HEAT(2,nWait 6,0.0%,119) CanAsync(5,nWait 4,0.0%,70) CanRecv(3,nWait 1,0.0%,73) CanClock(5,nWait 1,0.0%,63) MAIN(1,running,91.6%,427) IDLE(0,ready,0.0%,39) AIN(2,delaying,1.2%,261), total 100.0% Owned mutexes: Last reset 00:10:44 ago, cause: software Last software reset data not available Moves scheduled 4, hiccups 0 (0.00/0.00ms), segs 33, step errors 0 (types 0x0), maxLate 0 maxPrep 95, ebfmin 0.00 max 0.00 Peak sync jitter -7/6, peak Rx sync delay 183, resyncs 0/0, no timer interrupt scheduled, next step interrupt due in 4221993173 ticks, disabled VIN voltage: min 24.5, current 24.5, max 24.5 V12 voltage: min 12.3, current 12.3, max 12.3 MCU temperature: min 26.9C, current 28.2C, max 28.2C Driver 0: pos 185, 400.0 steps/mm, standstill, SG min 0, mspos 120, reads 64278, writes 29 timeouts 0 Driver 1: pos 185, 400.0 steps/mm, standstill, SG min 0, mspos 120, reads 64278, writes 29 timeouts 0 Driver 2: pos 185, 400.0 steps/mm, standstill, SG min 0, mspos 920, reads 64279, writes 29 timeouts 0 Last sensors broadcast 0x00000000 found 0 81 ticks ago, 0 ordering errs, loop time 0 CAN messages queued 7800, send timeouts 0, received 7797, lost 0, ignored 0, errs 0, boc 0, free buffers 38, min 38, error reg 0 dup 0, oos 0/0/0/0, rxMotionDelay 399, adv 37039/37073 ok
M122 B120 Diagnostics for board 120: Duet SZP firmware version 3.6.0-rc.2 (2025-03-31 12:12:25) Bootloader ID: SAMC21 bootloader version 2.10 (2023-11-16) All averaging filters OK Never used RAM 12472, free system stack 126 words Tasks: HEAT(2,nWait 6,0.1%,130) CanAsync(5,nWait 4,0.0%,58) CanRecv(3,nWait 1,0.0%,70) CanClock(5,nWait 1,0.0%,58) ACCEL(3,nWait 6,0.0%,72) MAIN(1,running,65.0%,426) IDLE(0,ready,0.0%,26) AIN(2,nWait 2,34.8%,112), total 100.0% Owned mutexes: Last reset 00:01:58 ago, cause: software Last software reset at 2025-04-12 19:02, reason: HardFault, available RAM 11628, slot 1 Software reset code 0x0060 ICSR 0x00000003 SP 0x200047c0 Task Scan Freestk 110 ok Stack: 00000000 00000001 00000000 00000000 20002274 0000e1f5 000065fc 81000000 20001f40 0000e1f5 00000000 a5a5a5a5 a5a5a5a5 20001f48 20001f1c 20001f44 20001f14 20001f2c 20001f18 20001f24 20001f28 20001f20 a5a5a5a5 a5a5a5a5 a5a5a5a5 a5a5a5a5 a5a5a5a5 Peak sync jitter 1/5, peak Rx sync delay 216, resyncs 0/0, no timer interrupt scheduled VIN voltage: min 4.7, current 4.8, max 4.9 MCU temperature: min 25.5C, current 25.7C, max 25.8C Last sensors broadcast 0x00000000 found 0 100 ticks ago, 0 ordering errs, loop time 0 CAN messages queued 497, send timeouts 0, received 1046, lost 0, ignored 0, errs 0, boc 0, free buffers 18, min 18, error reg 0 Accelerometer: LIS2DW, status: 00 Inductive sensor: never activated I2C bus errors 0, naks 3, contentions 0, other errors 0 ok
-
@vaike_peeter @dc42 found out my issue.
I was using Andy's tutorial from Discord https://discord.com/channels/711873626080804914/1345788631457202239 and each time I issued M558 command with pin parameter "C" Duet SZP board did reset. I think Andy is using Fly SHT36 board and this board does not do that. After removing "C" parameter from M558 definition my homing/bed level config, everything works as expected.
My current working config is now in my github if anybody wants to read it, do not copy as is because you have to calibrate your own probe.I want to thank @dc42 and @gloomyandy for this amazing work. Good Job!!
Happy printing!
-
@vaike_peeter Can you post the M558 command you were using before and the one you are using now so we can understand what the problem was?
-
@gloomyandy
Before:
when I had issues with can timeout I was using this commnad to declare probe parmeters.
Config.g:M558 P11 C"120.i2c.ldc1612" F18000 T18000
Homez.g:
M558 P11 C"120.i2c.ldc1612" F100:100:18000 T18000 H3:3 R0.75
After:
Correct declaration for SZP probe for Duet SZP board without any can timeout issues
Config.g:M558 P11 C"120.i2c.ldc1612" F300:120 T12000 A3 S0.02
homez.g:
M558 A2 H3:3 R0.75
-
@vaike_peeter I would not expect re-initialising the probe to cause the board to reset, but it looks like there was a "HardFault" reset in your M122 output. One for @dc42 to comment on I think.
-
@vaike_peeter thanks for your report. I have identified why re-initialising the probe when it was already taking readings caused a reset and I have implemented a fix for that.