DuetControlServer won't run after upgrading from 3.3 to 3.4.6
-
I have a Duet 3 6HC & Raspberry Pi 4 SBC on my E3D Tool Changer
I ran an apt upgrade for duetsoftwareframework and after completion, web control just loops between connected/disconnected. Using advice I found in another thread, I opened a terminal on the SBC and ran sudo journalctl -u duetcontrolserver -efIt seems DCS hits an exception and crashes resulting in a start/stop loop. Here's the log terminal output:
Feb 17 21:21:35 duet3 systemd[1]: Starting Duet Control Server... Feb 17 21:21:36 duet3 DuetControlServer[11398]: Duet Control Server v3.4.6 Feb 17 21:21:36 duet3 DuetControlServer[11398]: Written by Christian Hammacher for Duet3D Feb 17 21:21:36 duet3 DuetControlServer[11398]: Licensed under the terms of the GNU Public License Version 3 Feb 17 21:21:36 duet3 DuetControlServer[11398]: [info] Settings loaded Feb 17 21:21:37 duet3 DuetControlServer[11398]: [info] Environment initialized Feb 17 21:21:37 duet3 DuetControlServer[11398]: [warn] Kernel SPI buffer size is smaller than RepRapFirmware buffer size (4096 configured vs 8192 required) Feb 17 21:21:37 duet3 DuetControlServer[11398]: [info] Connection to Duet established Feb 17 21:21:37 duet3 DuetControlServer[11398]: [info] IPC socket created at /run/dsf/dcs.sock Feb 17 21:21:37 duet3 systemd[1]: Started Duet Control Server. Feb 17 21:21:38 duet3 DuetControlServer[11398]: [fatal] Abnormal program termination Feb 17 21:21:38 duet3 DuetControlServer[11398]: [fatal] SPI task faulted Feb 17 21:21:38 duet3 DuetControlServer[11398]: System.IO.IOException: Error 90 performing SPI data transfer. Feb 17 21:21:38 duet3 DuetControlServer[11398]: at LinuxApi.SpiDevice.Transfer(Byte* writeBufferPtr, Byte* readBufferPtr, Int32 buffersLength) in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/LinuxApi/SpiDevice.cs:line 141 Feb 17 21:21:38 duet3 DuetControlServer[11398]: at LinuxApi.SpiDevice.TransferFullDuplex(ReadOnlySpan`1 writeBuffer, Span`1 readBuffer) in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/LinuxApi/SpiDevice.cs:line 121 Feb 17 21:21:38 duet3 DuetControlServer[11398]: at DuetControlServer.SPI.DataTransfer.ExchangeData() in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/DuetControlServer/SPI/DataTransfer.cs:line 1573 Feb 17 21:21:38 duet3 DuetControlServer[11398]: at DuetControlServer.SPI.DataTransfer.PerformFullTransfer(Boolean connecting) in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/DuetControlServer/SPI/DataTransfer.cs:line 233 Feb 17 21:21:38 duet3 DuetControlServer[11398]: at DuetControlServer.SPI.Interface.Run() in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/DuetControlServer/SPI/Interface.cs:line 904 Feb 17 21:21:38 duet3 DuetControlServer[11398]: at DuetControlServer.Utility.PriorityThreadRunner.<>c__DisplayClass0_0.<Start>b__0() in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/DuetControlServer/Utility/PriorityThreadRunner.cs:line 25 Feb 17 21:21:38 duet3 DuetControlServer[11398]: [fatal] SPI task faulted Feb 17 21:21:38 duet3 DuetControlServer[11398]: System.IO.IOException: Error 90 performing SPI data transfer. Feb 17 21:21:38 duet3 DuetControlServer[11398]: at LinuxApi.SpiDevice.Transfer(Byte* writeBufferPtr, Byte* readBufferPtr, Int32 buffersLength) in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/LinuxApi/SpiDevice.cs:line 141 Feb 17 21:21:38 duet3 DuetControlServer[11398]: at LinuxApi.SpiDevice.TransferFullDuplex(ReadOnlySpan`1 writeBuffer, Span`1 readBuffer) in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/LinuxApi/SpiDevice.cs:line 121 Feb 17 21:21:38 duet3 DuetControlServer[11398]: at DuetControlServer.SPI.DataTransfer.ExchangeData() in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/DuetControlServer/SPI/DataTransfer.cs:line 1573 Feb 17 21:21:38 duet3 DuetControlServer[11398]: at DuetControlServer.SPI.DataTransfer.PerformFullTransfer(Boolean connecting) in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/DuetControlServer/SPI/DataTransfer.cs:line 233 Feb 17 21:21:38 duet3 DuetControlServer[11398]: at DuetControlServer.SPI.Interface.Run() in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/DuetControlServer/SPI/Interface.cs:line 904 Feb 17 21:21:38 duet3 DuetControlServer[11398]: at DuetControlServer.Utility.PriorityThreadRunner.<>c__DisplayClass0_0.<Start>b__0() in /home/runner/work/DuetSoftwareFramework/DuetSoftwareFramework/src/DuetControlServer/Utility/PriorityThreadRunner.cs:line 25 Feb 17 21:21:38 duet3 DuetControlServer[11398]: [info] Application has shut down Feb 17 21:21:38 duet3 systemd[1]: duetcontrolserver.service: Main process exited, code=exited, status=70/SOFTWARE Feb 17 21:21:38 duet3 systemd[1]: duetcontrolserver.service: Failed with result 'exit-code'. Feb 17 21:21:39 duet3 systemd[1]: duetcontrolserver.service: Service RestartSec=100ms expired, scheduling restart. Feb 17 21:21:39 duet3 systemd[1]: duetcontrolserver.service: Scheduled restart job, restart counter is at 231. Feb 17 21:21:39 duet3 systemd[1]: Stopped Duet Control Server.
Here's my config.g: config.g
I'm not sure where to go from here. Any help is appreciated. -
I may have fixed this already. I noticed in the log the SPI buffer warning. I increased the SPI buffer in raspbian to 8192 and now it seems to be working. But, my config must be totally broken in this version as I can't seem to power on my PSU anymore due to no PS_ON port defined. Off I go down the rabbit hole.
edit: config fixed by changing M80 to M80 C"pson"