Duet 6HC and SBC: Timeout while waiting for transfer ready pin
-
Hello everyone,
My Duet 6HC board doesen't want to connect to an SBC anymore. I've tried to connect it to a Pi 3B and a Pi 4.
The Duet, the Pi 3B and my self-made printer were working fine for a while now, so I've decided to add Obico to my printer:
https://forum.duet3d.com/topic/33382/reprapfirmware-obico?_=1710320648604
To do so, I've installed the most recent beta release on a Pi 4 (as an additional upgrade for the printer). Everything went fine, the DWC was running on the SBC and Obico was working too, so I've connected the Pi 4 to the 6HC and uploaded the new config.zip from RRF Config Tool (V3.5). This config.zip also contained firmware files, which were installed while uploading the config.
Everything was still running untill the next reboot of the SBC and the Duet 6HC.Now im getting this from journalctl on the SBC:
Sep 06 20:48:34 duet3 systemd[1]: duetcontrolserver.service: Service RestartSec=100ms expired, scheduling restart. Sep 06 20:48:34 duet3 systemd[1]: duetcontrolserver.service: Scheduled restart job, restart counter is at 23. Sep 06 20:48:34 duet3 systemd[1]: Stopped Duet Control Server. Sep 06 20:48:34 duet3 systemd[1]: Starting Duet Control Server... Sep 06 20:48:36 duet3 DuetControlServer[1984]: Duet Control Server v3.4.6 Sep 06 20:48:36 duet3 DuetControlServer[1984]: Written by Christian Hammacher for Duet3D Sep 06 20:48:36 duet3 DuetControlServer[1984]: Licensed under the terms of the GNU Public License Version 3 Sep 06 20:48:39 duet3 DuetControlServer[1984]: [info] Settings loaded Sep 06 20:48:40 duet3 DuetControlServer[1984]: [info] Environment initialized Sep 06 20:48:41 duet3 DuetControlServer[1984]: [fatal] Could not connect to Duet: Timeout while waiting for transfer ready pin Sep 06 20:48:41 duet3 systemd[1]: duetcontrolserver.service: Main process exited, code=exited, status=69/UNAVAILABLE Sep 06 20:48:41 duet3 systemd[1]: duetcontrolserver.service: Failed with result 'exit-code'. Sep 06 20:48:41 duet3 systemd[1]: Failed to start Duet Control Server. Sep 06 20:48:41 duet3 systemd[1]: duetcontrolserver.service: Service RestartSec=100ms expired, scheduling restart. Sep 06 20:48:41 duet3 systemd[1]: duetcontrolserver.service: Scheduled restart job, restart counter is at 24. Sep 06 20:48:41 duet3 systemd[1]: Stopped Duet Control Server. Sep 06 20:48:41 duet3 systemd[1]: Starting Duet Control Server... Sep 06 20:48:42 duet3 DuetControlServer[2007]: Duet Control Server v3.4.6 Sep 06 20:48:42 duet3 DuetControlServer[2007]: Written by Christian Hammacher for Duet3D Sep 06 20:48:42 duet3 DuetControlServer[2007]: Licensed under the terms of the GNU Public License Version 3 Sep 06 20:48:46 duet3 DuetControlServer[2007]: [info] Settings loaded Sep 06 20:48:47 duet3 DuetControlServer[2007]: [info] Environment initialized Sep 06 20:48:47 duet3 DuetControlServer[2007]: [fatal] Could not connect to Duet: Timeout while waiting for transfer ready pin lines 298-320/320 (END)
No matter which SBC I am using, there is alwas the same connection problem. I've allready tried a new ribbon cable and a clean image on the SD card.
It is still possible to connect the Duet by YAT, the status LED is flashing steady. Here is what I'm getting from M115 and M122:M115 FIRMWARE_NAME: RepRapFirmware for Duet 3 MB6HC FIRMWARE_VERSION: 3.4.5 ELECTRONICS: Duet 3 MB6HC v1.01 FIRMWARE_DATE: 2022-11-30 19:35:23<LF>ok<LF> M122 === Diagnostics ===<LF>RepRapFirmware for Duet 3 MB6HC version 3.4.5 (2022-11-30 19:35:23) running on Duet 3 MB6HC v1.01 (SBC mode)<LF>Board ID: 08DJM-9P63L-DJMSS-6JKD0-3S86M-9ADH9<LF>Used output buffers: 1 of 40 (1 max)<LF>=== RTOS ===<LF>Static ram: 152760<LF>Dynamic ram: 65024 of which 0 recycled<LF>Never used RAM 132888, free system stack 190 words<LF>Tasks: SBC(notifyWait,0.0%,974) HEAT(notifyWait,0.0%,374) Move(notifyWait,0.0%,351) CanReceiv(notifyWait,0.0%,944) CanSender(notifyWait,0.0%,336) CanClock(delaying,0.0%,343) TMC(notifyWait,0.0%,103) MAIN(running,100.0%,1273) IDLE(ready,0.0%,30), total 100.0%<LF>Owned mutexes: USB(MAIN)<LF>=== Platform ===<LF>Last reset 00:09:08 ago, cause: power up<LF>Last software reset at 2024-03-07 11:19, reason: User, none spinning, available RAM 132632, slot 2<LF>Software reset code 0x0012 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task SBC Freestk 0 n/a<LF>Error status: 0x00<LF>Step timer max interval 74551<LF>MCU temperature: min 22.4, current 38.3, max 38.[Warning: Maximal number of characters per line exceeded! Check the line break settings in [Terminal > Settings... > Text...] or increase the limit in [Terminal > Settings... > Advanced...].]
What could be the problem and what can be done now? I hope you can help me with this.
-
@StanRyab one for @chrishamm I think.
-
@StanRyab Your SBC/Duet are not on the latest beta, they're on 3.4.6/3.4.5 respectively. You may want to try out this SBC image instead: https://forum.duet3d.com/topic/34825/new-experimental-duetpi-bookworm-builds-available?_=1710407281118 Also try to flash this firmware build instead: https://github.com/Duet3D/RepRapFirmware/releases/download/3.5.0-rc.3/Duet3Firmware_MB6HC.bin See docs.duet3d.com -> Updating firmware for further info.
What was the reason you generated and installed a new config bundle? If it contained firmware files, it was probably generated for a Duet running in standalone mode. Config bundles for SBC mode should never contain firmware update files since they are managed by the
apt
package management.Nevertheless, I'll check again what firmware builds the config tool outputs.
-
@chrishamm thank you for the reply, and sorry for the confusion. The journalctl log is from the Pi3B which is still on 3.4.6.
Here is the log fom the Pi4 which is already on 3.5.0-rc.3, but im'm getting the same error:Mär 13 11:14:30 duet3 systemd[1]: duetcontrolserver.service: Main process exited, code=exited, status=69/UNAVAILABLE Mär 13 11:14:30 duet3 systemd[1]: duetcontrolserver.service: Failed with result 'exit-code'. Mär 13 11:14:30 duet3 systemd[1]: Failed to start Duet Control Server. Mär 13 11:14:35 duet3 systemd[1]: duetcontrolserver.service: Service RestartSec=5s expired, scheduling restart. Mär 13 11:14:35 duet3 systemd[1]: duetcontrolserver.service: Scheduled restart job, restart counter is at 8. Mär 13 11:14:35 duet3 systemd[1]: Stopped Duet Control Server. Mär 13 11:14:35 duet3 systemd[1]: Starting Duet Control Server... Mär 13 11:14:36 duet3 DuetControlServer[2002]: Duet Control Server v3.5.0-rc.3 Mär 13 11:14:36 duet3 DuetControlServer[2002]: Written by Christian Hammacher for Duet3D Mär 13 11:14:36 duet3 DuetControlServer[2002]: Licensed under the terms of the GNU Public License Version 3 Mär 13 11:14:37 duet3 DuetControlServer[2002]: [info] Settings loaded Mär 13 11:14:37 duet3 DuetControlServer[2002]: [info] Environment initialized Mär 13 11:14:38 duet3 DuetControlServer[2002]: [fatal] Could not connect to Duet: Timeout while waiting for transfer ready pin
I generated and installed a new config bundle to use a CNC spindle. The firmware file was a included (and probably insatlled) by mistake, I was inattentive.
I will try to update the firmware. Since the Duet is still in SBC mode according to YAT and there is no connection between the Duet and the SBC, do I have to use Fallback procedure #1 with the firmware file from the link above for updating it?
-
@StanRyab I'd recommend fallback procedure #2 since you're in SBC mode: https://docs.duet3d.com/en/User_manual/RepRapFirmware/Updating_firmware#all-other-duet-boards
-
@chrishamm updating by fallback procedure #2 went fine I gues. there is still the same error, no connection between the Pi4 and the Duet. I've tried the old SBC image and the new one. Tried it with the Pi3B and the Pi4.
This is what I get from YAT:M115 FIRMWARE_NAME: RepRapFirmware for Duet 3 MB6HC FIRMWARE_VERSION: 3.5.0-rc.3 ELECTRONICS: Duet 3 MB6HC v1.01 FIRMWARE_DATE: 2024-01-24 17:58:49<LF>ok<LF> M122 === Diagnostics ===<LF>RepRapFirmware for Duet 3 MB6HC version 3.5.0-rc.3 (2024-01-24 17:58:49) running on Duet 3 MB6HC v1.01 (SBC mode)<LF>Board ID: 08DJM-9P63L-DJMSS-6JKD0-3S86M-9ADH9<LF>Used output buffers: 1 of 40 (15 max)<LF>=== RTOS ===<LF>Static ram: 155184<LF>Dynamic ram: 85020 of which 0 recycled<LF>Never used RAM 105788, free system stack 176 words<LF>Tasks: SBC(2,nWait 7,0.0%,934) HEAT(3,nWait 6,0.0%,367) Move(4,nWait 6,0.0%,336) CanReceiv(6,nWait 1,0.0%,940) CanSender(5,nWait 7,0.0%,334) CanClock(7,delaying,0.0%,336) TMC(4,nWait 6,0.0%,68) MAIN(1,running,100.0%,444) IDLE(0,ready,0.0%,30), total 100.0%<LF>Owned mutexes: USB(MAIN)<LF>=== Platform ===<LF>Last reset 00:15:21 ago, cause: power up<LF>Last software reset at 2024-03-07 11:19, reason: User, Expansion spinning, available RAM 132632, slot 2<LF>Software reset code 0x0012 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task SBC Freestk 0 n/a<LF>Error status: 0x00<LF>MCU temperature: min 39.4, current 39.7, max 39.9<LF>Supply voltage: min 0.2, current 0.2, max 0.2, under voltage events: 0, over voltage events: 0, power good: no<LF>12V rail voltage: min 0.1, current 0.1, max 0.2, under voltage events: 0<LF>Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0<LF>Events: 0 queued, 0 completed<LF>Driver 0: ok, SG min n/a, mspos 0, reads 0, writes 0 timeouts 0<LF>Driver 1: ok, SG min n/a, mspos 0, reads 0, writes 0 timeouts 0<LF>Driver 2: ok, SG min n/a, mspos 0, reads 0, writes 0 timeouts 0<LF>Driver 3: ok, SG min n/a, mspos 0, reads 0, writes 0 timeouts 0<LF>Driver 4: ok, SG min n/a, mspos 0, reads 0, writes 0 timeouts 0<LF>Driver 5: ok, SG min n/a, mspos 0, reads 0, writes 0 timeouts 0<LF>Date/time: 1970-01-01 00:00:00<LF>Slowest loop: 0.14ms; fastest: 0.07ms<LF>=== Storage ===<LF>Free file entries: 20<LF>SD card 0 not detected, interface speed: 37.5MBytes/sec<LF>SD card longest read time 0.0ms, write time 0.0ms, max retries 0<LF>=== Move ===<LF>DMs created 125, segments created 0, maxWait 0ms, bed compensation in use: none, height map offset 0.000, max steps late 0, ebfmin 0.00, ebfmax 0.00<LF>no step interrupt scheduled<LF>Moves shaped first try 0, on retry 0, too short 0, wrong shape 0, maybepossible 0<LF>=== DDARing 0 ===<LF>Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1<LF>=== DDARing 1 ===<LF>Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1<LF>=== Heat ===<LF>Bed heaters -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0<LF>=== GCodes ===<LF>Movement locks held by null, null<LF>HTTP is idle in state(s) 0<LF>Telnet is idle in state(s) 0<LF>File is idle in state(s) 0<LF>USB is ready with "M122" in state(s) 0<LF>Aux is idle in state(s) 0<LF>Trigger is idle in state(s) 0<LF>Queue is idle in state(s) 0<LF>LCD is idle in state(s) 0<LF>SBC is idle in state(s) 0<LF>Daemon is idle in state(s) 0<LF>Aux2 is idle in state(s) 0<LF>Autopause is idle in state(s) 0<LF>File2 is idle in state(s) 0<LF>Queue2 is idle in state(s) 0<LF>Q0 segments left 0, axes/extruders owned 0x0000000<LF>Code queue 0 is empty<LF>Q1 segments left 0, axes/extruders owned 0x0000000<LF>Code queue 1 is empty<LF>=== CAN ===<LF>Messages queued 291, received 0, lost 0, errs 283431, boc 0<LF>Longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 50 (min 50), ts 291/0/0<LF>Tx timeouts 0,0,291,0,0,0 last cancelled message type 30 dest 127<LF>=== SBC interface ===<LF>Transfer state: 0, failed transfers: 0, checksum errors: 0<LF>RX/TX seq numbers: 0/1<LF>SPI underruns 0, overruns 0<LF>State: 0, disconnects: 0, timeouts: 0 total, 0 by SBC, IAP RAM available 0x255cc<LF>Buffer RX/TX: 0/0-0, open files: 0<LF>ok<LF>
The journalctl on the SBC:
Jan 26 18:15:09 duet3 systemd[1]: Stopped duetcontrolserver.service - Duet Control Server. Jan 26 18:15:09 duet3 systemd[1]: duetcontrolserver.service: Consumed 1.288s CPU time. Jan 26 18:15:09 duet3 systemd[1]: Starting duetcontrolserver.service - Duet Control Server... Jan 26 18:15:09 duet3 DuetControlServer[5006]: Duet Control Server v3.5.0-rc.3 Jan 26 18:15:09 duet3 DuetControlServer[5006]: Written by Christian Hammacher for Duet3D Jan 26 18:15:09 duet3 DuetControlServer[5006]: Licensed under the terms of the GNU Public License Version 3 Jan 26 18:15:10 duet3 DuetControlServer[5006]: [info] Settings loaded Jan 26 18:15:10 duet3 DuetControlServer[5006]: [info] Environment initialized Jan 26 18:15:11 duet3 DuetControlServer[5006]: [fatal] Could not connect to Duet: Timeout while waiting for transfer ready pin Jan 26 18:15:11 duet3 systemd[1]: duetcontrolserver.service: Main process exited, code=exited, status=69/UNAVAILABLE Jan 26 18:15:11 duet3 systemd[1]: duetcontrolserver.service: Failed with result 'exit-code'. Jan 26 18:15:11 duet3 systemd[1]: Failed to start duetcontrolserver.service - Duet Control Server. Jan 26 18:15:11 duet3 systemd[1]: duetcontrolserver.service: Consumed 1.322s CPU time.
Is there any chance to fix it or should I replace the board?