Skip to content

Releases: Duet3D/DuetSoftwareFramework

Version 3.4-rc2

23 Feb 12:34
Compare
Choose a tag to compare
Version 3.4-rc2 Pre-release
Pre-release

Compatible versions:

  • RepRapFirmware 3.4-rc2
  • DuetWebControl 3.4-rc2

Upgrade notes:

  • DSF uses pip for management of third-party Python libraries. It is recommended to install it using sudo apt install python3-pip
  • The default group of I2C device nodes is now gpio. If you are using I2C, make sure that applications accessing it are part of the gpio group (e.g. via gpasswd -a <user> gpio)

New features:

  • Implemented new GPIO permission (includes I2C and SPI devices) for third-party plugins
  • Added new array to plugin manifest allowing custom installation of Python libraries via pip (requires pip to be installed first)
  • Thumbnail data is now checked for valid base64 content before it is assigned

Bug fixes:

  • DWC launch script was not included in the source files
  • Even object heights were not correctly processed
  • duettools package was not fully updated before the update of duetpimanagementplugin started resulting in possible (yet harmless) error messages
  • M997 and M999 could show "Operation has been cancelled" rather than completing normally
  • When plugins were uninstalled and they were auto-started, they were not removed from the auto-start list
  • Update prompt did not display expansion board names
  • Absolute file paths without leading slash (e.g. M98 P"0:macros/foo.g" instead of M98 P"0:/macros/foo.g") were not correctly processed by DSF

Version 3.4-rc1

09 Feb 18:30
Compare
Choose a tag to compare
Version 3.4-rc1 Pre-release
Pre-release

Compatible versions:

  • RepRapFirmware 3.4-rc1
  • DuetWebControl 3.4-rc1

New features:

  • Added thumbnail support

Changed behaviour:

  • DuetPiManagementPlugin uses relative file paths to support more Linux distros

Bug fixes:

  • Tool for custom HTTP endpoints did not replace query values when starting other programs
  • Packaged plugins (like duetpimanagementplugin) could be uninstalled using DWC
  • Removed redundant info message during upgrade from removal script

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.