Skip to content

Releases: Duet3D/DuetSoftwareFramework

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

Version 3.5.3-rc.1

28 Aug 19:43
Compare
Choose a tag to compare
Version 3.5.3-rc.1 Pre-release
Pre-release

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 and SetPluginData 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

12 Jun 07:24
Compare
Choose a tag to compare

Compatible versions:

  • RepRapFirmware 3.5.2
  • DuetWebControl 3.5.2

Changed behaviour:

  • M409 K"network" and M409 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

31 May 08:05
Compare
Choose a tag to compare
Version 3.5.2-rc.1 Pre-release
Pre-release

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