Skip to content

Releases: Duet3D/DuetSoftwareFramework

Version 3.4-b7

17 Dec 11:35
Compare
Choose a tag to compare
Version 3.4-b7 Pre-release
Pre-release

Compatible versions:

  • DuetSoftwareFramework 3.4-b7
  • RepRapFirmware 3.4-b7

New features:

  • Added new bottom navigation menu for mobile devices and made margins smaller depending on the screen size
  • Added back "Install Updates" button for standalone mode users
  • Moved plugin tabs to a single page and added new "Install Plugin" button to "External Plugins" page
  • Selected nodes on the object model browser can be copied using a new button
  • Added new npm run build-plugin script allowing users to build external plugins easily (see also the new plugin guide)
  • Added Japanese translations (thanks nyarurato)

Changed behaviour:

  • Reduced height of navigation menu items in desktop mode

Bug fix:

  • Webcams could not have an indefinite update intervals (0ms) which could conflict with MJPG streams
  • Layer stats were not properly regenerated after reconnecting to a Duet in standalone mode

Version 3.4-b6

06 Nov 13:39
Compare
Choose a tag to compare
Version 3.4-b6 Pre-release
Pre-release

New features:

  • Number of glitches on the TransferReady pin are now recorded for diagnostics
  • DCS uses proper return codes and saves the error reason on startup to /run/dsf/dcs.err
  • DWS forwards the DCS start error to DWC if it is available

Changed behaviour:

  • Plugin service notifies systemd about start after plugin manifests are loaded
  • Default UNIX socket for DSF now points to /run/dsf/dcs.sock rather than to /var/run/dsf/dcs.sock (/var/run is usually symlinked to /run)
  • Removed special heightmap code from DSF so that RRF can now read and write heightmap files on its own

Bug fixes:

  • DCS could complain about plugin services if they terminated during shutdown
  • systemd services for DuetPluginService did not wait for processes to start
  • Some expression values like DateTime, ULong, and Null were not supported by DSF
  • Web server took a few seconds to stop if a WebSocket client was connected
  • Noise on the TfrRdy pin could make DCS get out of sync with RRF after updating the firmware (only in NoTerminateOnReset mode)
  • DCS could send invalid collection values in patch mode
  • DuetHttpClient did not reconnect under certain circumstances
  • G-code filenames starting with digits (but not paths like 0:/gcodes/) could cause exceptions
  • If the first or last G1 Z parameter were an expression, the file info may not be parsed

Version 3.4-b5

12 Oct 19:51
Compare
Choose a tag to compare
Version 3.4-b5 Pre-release
Pre-release

Changed behaviour:

  • config-override.g is now written by RepRapFirmware
  • Removed unused return command from API keywords
  • Removed deprecated CodeResult class from API
  • Added new -c parameter to ModelObserver to confirm receipt of data
  • Added new Keyword code type to DSF API

Bug fixes:

  • Automatic firmware update during unattended updates did not work
  • Automatic expansion board updates did not wait for completion
  • Fixed problem where subscribers received only cached model patches
  • Under certain circumstances macro files could be stopped too early (thanks Andy)
  • Pausing job files was not working if RRF reported no file position
  • boards[].mcuTemp, boards[].v12, and boards[].vIn were not nullable
  • Default firmware directory in the object model was wrong
  • JSON responses in subscriber patch mode were not necessarily live
  • M505 did not lock the movement before changing the sys directory
  • Local variables were not deleted when their scope was released
  • M105 did not output a NL at the end of Marlin-compatible replies

Version 3.4-b4

27 Sep 17:40
Compare
Choose a tag to compare
Version 3.4-b4 Pre-release
Pre-release

New features:

  • Added HTTP password protection (M551) using new /machine/connect and /machine/disconnect endpoints
  • Implemented new class library for remote management of Duets in standalone or SBC mode
  • Added new HTTP endpoint /machine/noop to keep HTTP sessions alive on demand
  • Added support for pausable macro files (see M98 R1)

Changed behaviour:

  • Filament management is now done exclusively by RRF
  • List of plugins to start on boot is only written when individual plugins are started or stopped

Bug fixes:

  • Pausing near the very end of a job file did not work
  • Single quotes in string parameters to convert letters to lower-case were not supported
  • Keyword results were not properly logged (like from echo or abort)
  • Under certain conditions messages in conditional blocks were not output instantly
  • M997 did not accept the P-parameter to override a firmware filename
  • Some log calls did not check for null messages

Version 3.4-b3

24 Aug 14:29
Compare
Choose a tag to compare
Version 3.4-b3 Pre-release
Pre-release

New features:

  • Implemented file redirections of the echo command (see here)
  • Added support for new InvalidateChannel command allowing plugins to cancel already queued codes and files

Bug fixes:

  • Resolved race condition for M0/M1 which could cause stop.g to be executed instead of cancel.g
  • Fixed an exception that could occur when codes were cancelled and their result was combined
  • Under certain conditions paused prints could not be cancelled properly

Version 3.4-b2

03 Aug 14:00
Compare
Choose a tag to compare
Version 3.4-b2 Pre-release
Pre-release

New features:

  • Plugin manager can now be used to reload specific plugin manifests
  • Plugin manager may be used to query the installation/runtime status of plugins
  • Added new cancelling item to state.status enum
  • Subscribers and code stream clients can define what messages they want to receive
  • Added support for array expressions
  • DuetPiManagementPlugin now supports (un-)mounting of devices via M21/M22

Changed behaviour:

  • Web server only sends messages with HTTP target to web clients

Bug fixes:

  • When RRF reset, DCS could terminate when trying to clear the global variables
  • Expression parameters were incorrectly serialized
  • Certain UTF-8 strings could be truncated when sent to RRF
  • Fixed race condition when attempting to save updated filament mapping
  • GetFileInfo requests attempted to parse non-GCode files
  • M-codes could have G-parameters, now only T-parameters are permitted
  • Functions with more than one parameter were not working in echo commands

Version 3.4-b1

10 Jul 17:21
Compare
Choose a tag to compare
Version 3.4-b1 Pre-release
Pre-release

New features:

  • RRF v3.4-b1 and newer can now read and write files on the SBC

Changed behaviour:

  • Replies from macro files are output immediately as they are generated (like in standalone mode)
  • Codes starting macros do not collect the results from the sub-macro codes any more (like in standalone mode)
  • SPI link timing is not controlled by DCS any more, instead RRF does this (see also M576)

Bug fixes:

  • Variable names could not contain underscores

Version 3.3.0

16 Jun 08:43
Compare
Choose a tag to compare

Upgrade notes since version 3.2:

  • Plugin support is now enabled but requires some extra steps before they can be installed. Execute the following commands in a Linux terminal:
    1. Install AppArmor package: sudo apt install apparmor
    2. Enable AppArmor support on boot: echo " lsm=apparmor" >> /boot/cmdline.txt
    3. Enable new plugin services: sudo systemctl enable duetpluginservice && sudo systemctl enable duetpluginservice-root
    4. Reboot the SBC to apply the changes: sudo reboot
  • DuetPiManagementPlugin is now available for DuetPi to support various M-codes that werre previously supported only in standalone mode
    1. This plugin is available from the duetpimanagementplugin package which comes with the latest DuetPi version
    2. It can be manually installed via apt install duetpimanagementplugin
    3. Go to the Machine-Specific -> Third-Party Plugins page on DWC to enable it after a manual installation
  • There is now a new configuration file dsf-config.g which is executed when all previously started plugins have been started by the plugin service(s) after a reboot. Put custom G/M-codes into this file, ideally with a short delay at the start (G4 S2) to ensure the plugions are fully started at the time custom actions are executed.

Bug fixes:

  • When a new firmware build was installed, the final IAP delay was sometimes too short
  • directories key was not queried when DCS started in update-only mode
  • Remaining plugins were not correctly stopped when a plugin service was shut down

Known limitations:

  • Auto-resume on power loss cannot be configured (M916)
  • Accelerometer profiles cannot be recorded (M956)
  • Password protection has no effect yet (M551)

Please check out the full changelog for further improvements since v3.2.2.

Version 3.3-rc3

26 May 16:36
Compare
Choose a tag to compare
Version 3.3-rc3 Pre-release
Pre-release

Upgrade notes since version 3.2:

  • Plugin support is now enabled but requires some extra steps before they can be installed. Execute the following commands in a Linux terminal:
    1. Install AppArmor package: sudo apt install apparmor
    2. Enable AppArmor support on boot: echo " lsm=apparmor" >> /boot/cmdline.txt
    3. Enable new plugin services: sudo systemctl enable duetpluginservice && sudo systemctl enable duetpluginservice-root
    4. Reboot the SBC to apply the changes: sudo reboot
  • DuetPiManagementPlugin is now available for DuetPi to support various M-codes that werre previously supported only in standalone mode
    1. This plugin is available from the duetpimanagementplugin package which comes with the latest DuetPi version
    2. It can be manually installed via apt install duetpimanagementplugin
    3. Go to the Machine-Specific -> Third-Party Plugins page on DWC to enable it after a manual installation
  • There is now a new configuration file dsf-config.g which is executed when all previously started plugins have been started by the plugin service(s) after a reboot. Put custom G/M-codes into this file, ideally with a short delay at the start (G4 S2) to ensure the plugions are fully started at the time custom actions are executed.

Compatible versions:

  • RepRapFirmware 3.3-rc3
  • DuetWebControl 3.3-rc3

Bug fixes:

  • M0 called stop.g instead of cancel.g when a print was cancelled
  • DCS does no longer check SPI responses from IAP while upgrading the firmware to lower the risk of upgrade issues
  • Plugins were never started in non-SPI mode
  • DCS postinst script failed if the service was previously enabled but no Duet was attached at the time of the upgrade
  • When codes were intercepted, the SourceConnection property was not always populated
  • When DCS was configured to never terminate on reset, sometimes it failed to establish a connection again
  • Subscribe connection clients failed to clear global dictionary on reset
  • Fixed exists function in conditional G-code
  • When retrieving file info, DCS returned the simulated time instead of the slicer time
  • Fixed timing issue causing simulation times to be written incorrectly to G-code files

Known limitations:

  • Auto-resume on power loss cannot be configured (M916)
  • Accelerometer profiles cannot be recorded (M956)

Version 3.3-rc2

11 May 18:08
Compare
Choose a tag to compare
Version 3.3-rc2 Pre-release
Pre-release

Compatible versions:

  • RepRapFirmware 3.3-rc2
  • DuetWebControl 3.3-rc2

New features:

  • Added new Disconnected state to indicate when DSF/DWC is not connected to RRF
  • .deb packages can be installed over DWC if support for package management and root plugins is enabled (see plugins.json and config.json)

Changed behaviour:

  • Only G0 and G1 are repeated for Fanuc-style G-code to follow RRF implementation
  • M955 P-parameter is passed as a driver identifier like M569 P
  • Added extra fallbacks for main firmware files (directories.firmware -> 0:/firmware -> 0:/sys)