Skip to content

Releases: Duet3D/DuetSoftwareFramework

Version 3.6.0

28 May 16:35
Compare
Choose a tag to compare

Compatible versions:

  • RepRapFirmware 3.6.0
  • DuetWebControl 3.6.0

Changed behaviour:

  • M38 computes the CRC32 checksum instead of the SHA1 hash following the new RRF implementation
  • 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

New features:

  • IP address of the SBC can be used on 12864 displays
  • Added M20 C and rr_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

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 via git
  • HTTP client library has a new optional RetryDelay setting (comparable to AJAX 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)
  • Change data type of minor command fraction (#209)

Bug fixes:

  • M586 P0 Rnnn did not change the HTTP(S) port
  • Fixed default first param value for rr_filelist and rr_files
  • 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 of M118 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 and echo commands didn't create the corresponding directory path if necessary
  • M470-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)
  • M36 when invoked without parameters did not return customInfo
  • position property was missing in pulsed filament sensors
  • abort always required an expression
  • Fixed DocGen project
  • Improved documentation of some object model properties
  • Axis re-racking with many axes could occur under certain situations
  • Handling of UTF8 BOMs when parsing footers of very small files was not working properly
  • Fixed output formatting of single-valued arrays

Version 3.6.0-rc.3

30 Apr 14:49
Compare
Choose a tag to compare
Version 3.6.0-rc.3 Pre-release
Pre-release

Compatible versions:

  • RepRapFirmware 3.6.0-rc.3
  • DuetWebControl 3.6.0-rc.3

Bug fixes:

  • Fixed DocGen project
  • Improved documentation of some object model properties
  • Axis re-racking with many axes could occur under certain situations
  • Handling of UTF8 BOMs when parsing footers of very small files was not working properly
  • Fixed output formatting of single-valued arrays

Version 3.6.0-rc.2

31 Mar 17:53
Compare
Choose a tag to compare
Version 3.6.0-rc.2 Pre-release
Pre-release

Compatible versions:

  • RepRapFirmware 3.6.0-rc.2
  • DuetWebControl 3.6.0-rc.2

Bug fixes:

  • M36 when invoked without parameters did not return customInfo
  • position property was missing in pulsed filament sensors
  • abort always required an expression

Version 3.6.0-rc.1

03 Mar 13:28
Compare
Choose a tag to compare
Version 3.6.0-rc.1 Pre-release
Pre-release

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 via git
  • HTTP client library has a new optional RetryDelay setting (comparable to AJAX 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 and rr_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 of M118 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 and echo commands didn't create the corresponding directory path if necessary
  • M470-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

11 Feb 12:43
Compare
Choose a tag to compare
Version 3.6.0-beta.4 Pre-release
Pre-release

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

17 Jan 14:13
Compare
Choose a tag to compare
Version 3.6.0-beta.3 Pre-release
Pre-release

API changes:

  • pip install script used for Python plugins can handle a more comprehensive range of packages including packages hosted via git
  • HTTP client library has a new optional RetryDelay setting (comparable to AJAX 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 and echo commands didn't create the corresponding directory path if necessary
  • M470-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

26 Nov 18:58
Compare
Choose a tag to compare

Compatible versions:

  • RepRapFirmware 3.5.4
  • DuetWebControl 3.5.4

API changes:

  • Minor command fraction type has been changed from sbyte (signed byte) to int (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 files
  • M32/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

14 Nov 11:08
Compare
Choose a tag to compare
Version 3.6.0-beta.2 Pre-release
Pre-release

New features:

  • Added M20 C and rr_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

24 Sep 17:58
Compare
Choose a tag to compare
Version 3.6.0-beta.1 Pre-release
Pre-release

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

19 Sep 12:38
Compare
Choose a tag to compare

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, run sudo rm /opt/dsf/conf/config.json after apt via SSH or using a Linux console. Without this step, you will get an error stating that the gpiochip device could not be opened. The underlying change came from a kernel change from Raspberry Pi, which brings the gpiochip 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 and PatchObjectModel

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 preceding M98
  • Fixed potential deadlock when deleting variables
  • Fixed DWC startup issue in SBC mode caused by Chromium singleton lock