Releases: Duet3D/DuetSoftwareFramework
Releases · Duet3D/DuetSoftwareFramework
Version 3.6.0-rc.1
Compatible versions:
- RepRapFirmware 3.6.0-rc.1
- DuetWebControl 3.6.0-rc.1
Changed behaviour:
M38
computes the CRC32 checksum instead of the SHA1 hash following the new RRF implementation- Change data type of minor command fraction (#209)
- Allow user-defined macros to be parsed as well by
fileinfo
requests - Made CORS check for WebSockets stricter
- Priority codes are preferrably sent to idle channels with the same firmware emulation
API changes:
- Improved default AppArmor profile for plugins so that env can be used
pip
install script used for Python plugins can handle a more comprehensive range of packages including packages hosted viagit
- HTTP client library has a new optional
RetryDelay
setting (comparable toAJAX retry delay
in DWC) - Added new IPC command to rewrite codes being intercepted
- Python plugins are now installed installed in their own venv (thanks @stuartofmt)
New features:
- IP address of the SBC can be used on 12864 displays
- Added
M20 C
andrr_file{s/list}
max parameters - Added support for
<fileinfo>.customInfo
via";customInfo"
comments in G-code jobs - Volume label of external drives is reported in the object model where applicable
- Upgraded base from .NET 6 to .NET 8
- Implemented high-performance JSON (de-)serialization in all areas using (custom) source generators
- .NET applications using DSF 3.6 libraries can be trimmed and/or AOT-compiled
M111
can be used to change DCS logging parameters during runtime (see also M111 docs)- Added MQTT support
Bug fixes:
- If more than 9 axes were defined, re-racking of axes on move update could occur
- Fixed typo in
sensors.probes[].touchMode
- Fixed parsing of keywords followed by brace without a space in between
- DSF didn't keep track of vars created by
M260
/M261
- MQTT support required
M118 L6
instead ofM118 P6
(changed since 3.6.0-beta.1) - Fixed support for more than 9 axes
- Fixed issue handling modules with no version number and improved Python dependency install script (thanks @stuartofmt)
- Allow anonymous MQTT configurations and made M586.4 C, K, U parameters optional
- Fixed bug where observable collections (like
state.messageBox.choices
) did not fire update events M28
andecho
commands didn't create the corresponding directory path if necessaryM470
-M472
were not working as expected- BME pressure and humidity sensor types were incorrect
- Fixed
echo
output of plain driver ID values - Changed M20 S1 to behave like in RRF
- Prioritise
M292
to allow custom codes that create blocking message boxes - Fixed
M99
support within system macros - Added missing slashes to ends of default directories
M32
/M37
could override the file being printed (#206)- Fixed JSON handling of some OM types and of abstract int/float properties
- Fixed type of outgoing update codes (#204)
Version 3.6.0-beta.4
API changes:
- Improved default AppArmor profile for plugins so that
env
can be used
Bug fixes:
- Fixed support for more than 9 axes
- Fixed issue handling modules with no version number and improved Python dependency install script (thanks @stuartofmt)
- Allow anonymous MQTT configurations and made M586.4 C, K, U parameters optional
- Fixed bug where observable collections (like
state.messageBox.choices
) did not fire update events
Version 3.6.0-beta.3
API changes:
pip
install script used for Python plugins can handle a more comprehensive range of packages including packages hosted viagit
- HTTP client library has a new optional
RetryDelay
setting (comparable toAJAX retry delay
in DWC)
New features:
- IP address of the SBC can be used on 12864 displays
Changed behaviour:
M38
computes the CRC32 checksum instead of the SHA1 hash following the new RRF implementation
Bug fixes:
M28
andecho
commands didn't create the corresponding directory path if necessaryM470
-M472
were not working as expected- BME pressure and humidity sensor types were incorrect
- Fixed
echo
output of plain driver ID values
Version 3.5.4
Compatible versions:
- RepRapFirmware 3.5.4
- DuetWebControl 3.5.4
API changes:
- Minor command fraction type has been changed from
sbyte
(signed byte) toint
(signed integer)
Changed behaviour:
M292
is prioritised to allow custom codes that create blocking message boxes- Prioritised codes are preferrably sent to idle channels with the same firmware emulation type
Bug fixes:
M99
could cause internal stack level corruption in macro filesM32
/M37
could override the file being printed (fixes #206)- Fixed GetSerializedObjectModel in the API
- Don't lock job procesosr while waiting for SPI request and allow print cancellation requests to be aborted on SPI connection loss (fixes for potential rare deadlocks)
Version 3.6.0-beta.2
New features:
- Added
M20 C
andrr_file{s/list}
max parameters - Added support for
<fileinfo>.customInfo
via";customInfo"
comments in G-code jobs - Volume label of external drives is reported in the object model where applicable
Changed behaviour:
- Change data type of minor command fraction (#209)
- Allow user-defined macros to be parsed as well by
fileinfo
requests - Made CORS check for WebSockets stricter
- Priority codes are preferrably sent to idle channels with the same firmware emulation
Bug fixes:
- Changed M20 S1 to behave like in RRF
- Prioritise
M292
to allow custom codes that create blocking message boxes - Fixed
M99
support within system macros - Added missing slashes to ends of default directories
M32
/M37
could override the file being printed (#206)- Fixed JSON handling of some OM types and of abstract int/float properties
- Fixed type of outgoing update codes (#204)
Version 3.6.0-beta.1
New features:
- Upgraded base from .NET 6 to .NET 8
- Implemented high-performance JSON (de-)serialization in all areas using (custom) source generators
- .NET applications using DSF 3.6 libraries can be trimmed and/or AOT-compiled
M111
can be used to change DCS logging parameters during runtime (see also M111 docs)- Added MQTT support
API changes:
- Added new IPC command to rewrite codes being intercepted
- Python plugins are now installed installed in their own venv (thanks @stuartofmt)
Version 3.5.3
Compatible versions:
- RepRapFirmware 3.5.3
- DuetWebControl 3.5.3
Upgrade notes:
- If you are using a Raspberry Pi 5 and upgrade using
apt
, it may be necessary to restore the default config. To achieve this, runsudo rm /opt/dsf/conf/config.json
afterapt
via SSH or using a Linux console. Without this step, you will get an error stating that thegpiochip
device could not be opened. The underlying change came from a kernel change from Raspberry Pi, which brings thegpiochip
numbering in line again with previous Raspberry Pi editions
API changes:
- Deprecated several methods due to upcoming changes in v3.6
- Added new preferred overloads for
SetPluginData
andPatchObjectModel
New features:
M905 A
parameter may be used to specify if the date and time shall be set via NTP
Bug fixes:
- Results from cancelled evaluation requests could be output
- Only resumable macros were aborted by DSF when a pause event was processed
- Fixed type of sensors.filamentMonitors[].calibrated
- Invoke internal "increment" codes asynchronously to fix spurious deadlocks
M905
wasn't working any more due to missing permissions- Fixed support for SSIDs with spaces
- Type of
state.thisActive
wasn't nullable - Fixed support for
M226
/M600
precedingM98
- Fixed potential deadlock when deleting variables
- Fixed DWC startup issue in SBC mode caused by Chromium singleton lock
Version 3.5.3-rc.1
Compatible versions:
- RepRapFirmware 3.5.3-rc.1
- DuetWebControl 3.5.3-rc.1
API changes:
- Deprecated patch creation methods in the main object model class
- Deprecated current
PatchObjectModel
andSetPluginData
calls in favour of new overload
Bug fixes:
- Added workaround to address Chromium singleton lock in the launch script
- Fixed potential deadlock when deleting variables
- Cancelled codes could invalidate the last known file position (pausing via M226)
state.thisActive
was not nullable
Version 3.5.2
Compatible versions:
- RepRapFirmware 3.5.2
- DuetWebControl 3.5.2
Changed behaviour:
M409 K"network"
andM409 K"volumes"
are now handled by DSF and DCS increments the corresponding RRF sequence numbers when necessary- DCS service may no longer be moved to swap memory
New features:
- Added proxy support to custom HTTP endpoints
Bug fixes:
M21 Pnnn
could output an error when PanelDue requested an existing mount point to be mounted again- Some emulated
rr_
replies did not use the default DSF JSON serializer settings - Fixed code param conversion error with expressions
- Plugin config files could be deleted on upgrade
M554
was not working as intended
Version 3.5.2-rc.1
Compatible versions:
- RepRapFirmware 3.5.2-rc.1
- DuetWebControl 3.5.2-rc.1
Changed behaviour:
- DCS program memory cannot be moved to swap
New features:
- Added proxy support to custom HTTP endpoints
Bug fixes:
- Plugin config files were incorrectly deleted on upgrade
- Fixed M554 (set gateway/DNS server)
- Fixed code param conversion error with expressions (code.TryGet* methods)
- Some HTTP endpoints were using wrong JSON serializer options