Duet 3 + SBC Intermittently can't connect since reinstall?
-
Hi,
I've had this issue ever since I rebuilt my config from a duetpi lite to a fresh duetpi with gui
Where 4 times out of 5 the SBC seems to fail to connect to the Duet 3, for a transfer ready pin issue
Important note, my Pi has a fried io pin we've since reassigned to pin 26.
Whenever this happens I can check the config file again and the assignment is still correct.
Then after a few restarts (complete power down/up, sudo reboot don't seem to work) I eventually know it works when I hear the fans blip and bltouch self test, indicating it properly went through config.
Any ideas on what's happening and how to resolve this issue?
Thanks!
-
Is it that your browser can't connect, or the Duet Pi just isn't starting up?
Can you enable logging on the Pi and gather some more details from startup?
https://github.com/Duet3D/DuetSoftwareFramework/wiki/SBC-Setup-Guide#troubleshooting
-
@fractalengineer The reason is more or less already in the error message, there is something wrong with the GPIO connection flagging when the Duet is ready for a data transfer. If you can, try out another SBC and check if the problem persists. You said there is a damaged IO on your SBC so it is hard to exclude a fault in the GPIO peripheral of your SBC.
-
"If you can, try out another SBC"
Excuse me sir, in this economy?
It is true that the default TR pin is dead on that pi, however, the machine has shown to be perfectly happy running on the alternative pin on my previous DuetPi Lite install.
I've also installed a HDMI screen since, but it is powered directly from the PSU and the pi gets no low power flags that could have caused these startup issues
Here's what the pi logging repeats
Dec 07 23:01:29 duet3 systemd[1]: duetcontrolserver.service: Main process exited, code=exited, status=69/UNAVAILABLE Dec 07 23:01:29 duet3 systemd[1]: duetcontrolserver.service: Failed with result 'exit-code'. Dec 07 23:01:29 duet3 systemd[1]: Failed to start Duet Control Server. Dec 07 23:01:30 duet3 systemd[1]: duetcontrolserver.service: Service RestartSec=100ms expired, scheduling restart. Dec 07 23:01:30 duet3 systemd[1]: duetcontrolserver.service: Scheduled restart job, restart counter is at 46. Dec 07 23:01:30 duet3 systemd[1]: Stopped Duet Control Server. Dec 07 23:01:30 duet3 systemd[1]: Starting Duet Control Server... Dec 07 23:01:31 duet3 DuetControlServer[3038]: Duet Control Server v3.4.3 Dec 07 23:01:31 duet3 DuetControlServer[3038]: Written by Christian Hammacher for Duet3D Dec 07 23:01:31 duet3 DuetControlServer[3038]: Licensed under the terms of the GNU Public License Version 3 Dec 07 23:01:32 duet3 DuetControlServer[3038]: [info] Settings loaded Dec 07 23:01:33 duet3 DuetControlServer[3038]: [info] Environment initialized Dec 07 23:01:33 duet3 DuetControlServer[3038]: [warn] Restarting full transfer because a bad header format code was received (0xff) Dec 07 23:01:34 duet3 DuetControlServer[3038]: [fatal] Could not connect to Duet: Timeout while waiting for transfer ready pin Dec 07 23:01:34 duet3 DuetControlServer[3038]: [debug] System.OperationCanceledException: Timeout while waiting for transfer ready pin Dec 07 23:01:34 duet3 DuetControlServer[3038]: System.OperationCanceledException: Timeout while waiting for transfer ready pin Dec 07 23:01:34 duet3 DuetControlServer[3038]: at DuetControlServer.SPI.DataTransfer.WaitForTransfer(Boolean inTransfer) in /home/christian/Duet3D/DuetSoftwareFramework/src/DuetControlServer/SPI/DataTransfer.cs:line 1337 Dec 07 23:01:34 duet3 DuetControlServer[3038]: at DuetControlServer.SPI.DataTransfer.ExchangeResponse(UInt32 response) in /home/christian/Duet3D/DuetSoftwareFramework/src/DuetControlServer/SPI/DataTransfer.cs:line 1559 Dec 07 23:01:34 duet3 DuetControlServer[3038]: at DuetControlServer.SPI.DataTransfer.ExchangeHeader() in /home/christian/Duet3D/DuetSoftwareFramework/src/DuetControlServer/SPI/DataTransfer.cs:line 1419 Dec 07 23:01:34 duet3 DuetControlServer[3038]: at DuetControlServer.SPI.DataTransfer.PerformFullTransfer(Boolean connecting) in /home/christian/Duet3D/DuetSoftwareFramework/src/DuetControlServer/SPI/DataTransfer.cs:line 227 Dec 07 23:01:34 duet3 DuetControlServer[3038]: at DuetControlServer.SPI.DataTransfer.Init() in /home/christian/Duet3D/DuetSoftwareFramework/src/DuetControlServer/SPI/DataTransfer.cs:line 98 Dec 07 23:01:34 duet3 DuetControlServer[3038]: at DuetControlServer.Program.Main(String[] args) in /home/christian/Duet3D/DuetSoftwareFramework/src/DuetControlServer/Program.cs:line 129
An interesting note, it seems I've found a way to semi-reliably start it up...
If I hear no fanspin on initial start-up, I can turn it off again, wait the perfect amount of time (not too short, not too long - I have yet to quantify the exact delay- and upon turning on again, it should work just fine!
Works every time, 50% of the time though
-
@fractalengineer You also need to supply +3.3V from the SBC to the Duet before MISO and DATA_RDY are actually activated. Make sure that the +3.3V line has no glitch, it is pin 17 on the expansion header.
-
@chrishamm interesting; perhaps there might be some delay issue?
The power supply goes as follow:
24V PSU ------- Duet 3
\______________ 5V DC/DC PSU ________ Rpi 3B+With the 5V Rpi jumper removed as follows:
5V enable ON,
Duet --> SBC OFF
SBC --> Duet OFFPerhaps the rpi power up a fraction of a second too late as powers through the additional 5V DC/DC converter?
That might also explain why it would start up fine after a repower; perhaps thanks to some residual juice in that 5V PSU?
Could disabling the 5V Enable jumper and jump SBC --> Duet be worth trying?