DCS won't start after 3.4.0 Update
-
Tried to update from 3.3 to 3.4 on my Duet 3+ SBC today.
Updated like described here: https://docs.duet3d.com/User_manual/Machine_configuration/SBC_setup
sudo apt update
sudo apt upgradeUpdate finished without errors but now DuetControlServer won't start.
Can't access via webcontrol, SSH works without a problem.
running Journalctl on duetcontrolserver indicates incompatible firmware even though reprapfirmware is now also 3.4.0.-1Is there a way to fix the problem on my system without going through the trouble of flashing a new image?
Mar 19 20:00:09 ToolChanger systemd[1]: duetcontrolserver.service: Scheduled restart job, restart counter is at 343. Mar 19 20:00:09 ToolChanger systemd[1]: Stopped Duet Control Server. Mar 19 20:00:09 ToolChanger systemd[1]: Starting Duet Control Server... Mar 19 20:00:09 ToolChanger DuetControlServer[8399]: Duet Control Server v3.4.0 Mar 19 20:00:09 ToolChanger DuetControlServer[8399]: Written by Christian Hammacher for Duet3D Mar 19 20:00:09 ToolChanger DuetControlServer[8399]: Licensed under the terms of the GNU Public License Version 3 Mar 19 20:00:10 ToolChanger DuetControlServer[8399]: [info] Settings loaded Mar 19 20:00:10 ToolChanger DuetControlServer[8399]: [info] Environment initialized Mar 19 20:00:10 ToolChanger DuetControlServer[8399]: [warn] Incompatible firmware, please upgrade as soon as possible Mar 19 20:00:10 ToolChanger DuetControlServer[8399]: [info] Connection to Duet established Mar 19 20:00:10 ToolChanger DuetControlServer[8399]: [info] IPC socket created at /run/dsf/dcs.sock Mar 19 20:00:10 ToolChanger systemd[1]: Started Duet Control Server. Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: [fatal] Abnormal program termination Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: [fatal] Update task faulted Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: System.ArgumentException: Requested value 'daa' was not found. Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at System.Enum.TryParseByName(RuntimeType enumType, ReadOnlySpan`1 value, Boolean ignoreCase, Boolean throwOnFailure, UInt64& result) Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at System.Enum.TryParseInt32Enum(RuntimeType enumType, ReadOnlySpan`1 value, Int32 minInclusive, Int32 maxInclusive, Boolean ignoreCase, Boolean throwOnFailure, TypeCode type, Int32& result) Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at System.Enum.TryParse(Type enumType, ReadOnlySpan`1 value, Boolean ignoreCase, Boolean throwOnFailure, Object& result) Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at System.Enum.Parse(Type enumType, String value, Boolean ignoreCase) Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at DuetAPI.Utility.JsonLowerCaseStringEnumConverter.JsonLowerCaseStringEnumConverterInner`1.Read(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options) in /home/christian/Duet3D/DuetSoftwareFramework/src/DuetAPI/Utility/JsonLowerCaseStringEnumConverter.cs:line 59 Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value) Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state) Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at System.Text.Json.Serialization.JsonConverter`1.ReadCoreAsObject(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state) Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 utf8Json, JsonTypeInfo jsonTypeInfo, Nullable`1 actualByteCount) Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 json, JsonTypeInfo jsonTypeInfo) Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at System.Text.Json.JsonSerializer.Deserialize(String json, Type returnType, JsonSerializerOptions options) Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at DuetAPI.ObjectModel.ModelObject.UpdateFromJson(JsonElement jsonElement, Boolean ignoreSbcProperties) in /home/christian/Duet3D/DuetSoftwareFramework/src/DuetAPI/ObjectModel/Base/ModelObject.cs:line 328 Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at DuetAPI.ObjectModel.ModelObject.UpdateFromJson(JsonElement jsonElement, Boolean ignoreSbcProperties) in /home/christian/Duet3D/DuetSoftwareFramework/src/DuetAPI/ObjectModel/Base/ModelObject.cs:line 309 Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at DuetAPI.ObjectModel.ObjectModel.InternalUpdateFromJson(String key, JsonElement jsonElement, Boolean ignoreSbcProperties, Int32 offset, Boolean last) in /home/christian/Duet3D/DuetSoftwareFramework/src/DuetAPI/ObjectModel/ObjectModel.cs:line 199 Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at DuetAPI.ObjectModel.ObjectModel.UpdateFromFirmwareJson(String key, JsonElement jsonElement, Int32 offset, Boolean last) in /home/christian/Duet3D/DuetSoftwareFramework/src/DuetAPI/ObjectModel/ObjectModel.cs:line 149 Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at DuetControlServer.Model.Updater.Run() in /home/christian/Duet3D/DuetSoftwareFramework/src/DuetControlServer/Model/Updater.cs:line 223 Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: [fatal] Update task faulted Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: System.ArgumentException: Requested value 'daa' was not found. Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at System.Enum.TryParseByName(RuntimeType enumType, ReadOnlySpan`1 value, Boolean ignoreCase, Boolean throwOnFailure, UInt64& result) Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at System.Enum.TryParseInt32Enum(RuntimeType enumType, ReadOnlySpan`1 value, Int32 minInclusive, Int32 maxInclusive, Boolean ignoreCase, Boolean throwOnFailure, TypeCode type, Int32& result) Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at System.Enum.TryParse(Type enumType, ReadOnlySpan`1 value, Boolean ignoreCase, Boolean throwOnFailure, Object& result) Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at System.Enum.Parse(Type enumType, String value, Boolean ignoreCase) Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at DuetAPI.Utility.JsonLowerCaseStringEnumConverter.JsonLowerCaseStringEnumConverterInner`1.Read(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options) in /home/christian/Duet3D/DuetSoftwareFramework/src/DuetAPI/Utility/JsonLowerCaseStringEnumConverter.cs:line 59 Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value) Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state) Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at System.Text.Json.Serialization.JsonConverter`1.ReadCoreAsObject(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state) Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 utf8Json, JsonTypeInfo jsonTypeInfo, Nullable`1 actualByteCount) Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 json, JsonTypeInfo jsonTypeInfo) Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at System.Text.Json.JsonSerializer.Deserialize(String json, Type returnType, JsonSerializerOptions options) Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at DuetAPI.ObjectModel.ModelObject.UpdateFromJson(JsonElement jsonElement, Boolean ignoreSbcProperties) in /home/christian/Duet3D/DuetSoftwareFramework/src/DuetAPI/ObjectModel/Base/ModelObject.cs:line 328 Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at DuetAPI.ObjectModel.ModelObject.UpdateFromJson(JsonElement jsonElement, Boolean ignoreSbcProperties) in /home/christian/Duet3D/DuetSoftwareFramework/src/DuetAPI/ObjectModel/Base/ModelObject.cs:line 309 Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at DuetAPI.ObjectModel.ObjectModel.InternalUpdateFromJson(String key, JsonElement jsonElement, Boolean ignoreSbcProperties, Int32 offset, Boolean last) in /home/christian/Duet3D/DuetSoftwareFramework/src/DuetAPI/ObjectModel/ObjectModel.cs:line 199 Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at DuetAPI.ObjectModel.ObjectModel.UpdateFromFirmwareJson(String key, JsonElement jsonElement, Int32 offset, Boolean last) in /home/christian/Duet3D/DuetSoftwareFramework/src/DuetAPI/ObjectModel/ObjectModel.cs:line 149 Mar 19 20:00:11 ToolChanger DuetControlServer[8399]: at DuetControlServer.Model.Updater.Run() in /home/christian/Duet3D/DuetSoftwareFramework/src/DuetControlServer/Model/Updater.cs:line 223 Mar 19 20:00:12 ToolChanger DuetControlServer[8399]: [info] Application has shut down Mar 19 20:00:12 ToolChanger systemd[1]: duetcontrolserver.service: Main process exited, code=exited, status=70/SOFTWARE Mar 19 20:00:12 ToolChanger systemd[1]: duetcontrolserver.service: Failed with result 'exit-code'. Mar 19 20:00:12 ToolChanger systemd[1]: duetcontrolserver.service: Service RestartSec=100ms expired, scheduling restart. Mar 19 20:00:12 ToolChanger systemd[1]: duetcontrolserver.service: Scheduled restart job, restart counter is at 344. Mar 19 20:00:12 ToolChanger systemd[1]: Stopped Duet Control Server. Mar 19 20:00:12 ToolChanger systemd[1]: Starting Duet Control Server... Mar 19 20:00:12 ToolChanger DuetControlServer[8422]: Duet Control Server v3.4.0 Mar 19 20:00:12 ToolChanger DuetControlServer[8422]: Written by Christian Hammacher for Duet3D Mar 19 20:00:12 ToolChanger DuetControlServer[8422]: Licensed under the terms of the GNU Public License Version 3 Mar 19 20:00:13 ToolChanger DuetControlServer[8422]: [info] Settings loaded
-
@kermit is it a 6HC?
Can you connect to it via USB with yat and check the firmware version?
Send M115 -
I don't have Windows at home so I used Minicom directly from the SBC instead.
Connecting with the 6HC kind of workedbut all I get is "Connection to Linux established!" and "Lost connection to Linux" every 2 seconds.EDIT:
stopped DCS service and was able to send the M115Result:
FIRMWARE_NAME: RepRapFirmware for Duet 3 MB6HC FIRMWARE_VERSION: 3,3 ELECTRONICS: Duet 3 MB6HC v1.01 or later FIRMWARE_DATE: 2021-06-15 21:45:56Apparently the board itself didn't get the update automatically like I anticipated. I'll try to update it manually now.
-
@kermit You don't have RRF 3.4 installed yet, please upgrade it either via the reprapfirmware package (by running
sudo apt install --reinstall reprapfirmware
from a Linux terminal and then confirm the prompt) or using the DCS upgrade command (/opt/dsf/bin/DuetControlServer -u
). DAA is no longer supported by software version 3.4, so it refuses to connect normally. That should not interfere with a firmware update, though. -
Put the files from /opt/dsf/sd on the SBC + new Firmware files onto a SD Card and did a manual firmware-update by sending M997 S0 with Minicom.
DCS is working again!
M115 readout:FIRMWARE_NAME: RepRapFirmware for Duet 3 MB6HC FIRMWARE_VERSION: 3.4.0 ELECTRONICS: Duet 3 MB6HC v1.01 or later FIRMWARE_DATE: 2022-03-15 18:57:26
Next time I'll make sure to update the Mainboard firmware before doing any SBC Updates
-
@chrishamm said in DCS won't start after 3.4.0 Update:
(by running sudo apt install --reinstall reprapfirmware from a Linux terminal and then confirm the prompt)
Already tried this before but it didn't change anything, the firmware on the mainboard stayed the same.
probably due to the connection errors triggered by the duetcontrolserver.service "bootloop"
I didn't manage to get any commands over the com-connection until i killed the service