Releases: Duet3D/DuetSoftwareFramework
Releases · Duet3D/DuetSoftwareFramework
Version 3.3-rc1
Compatible versions:
- RepRapFirmware 3.3-rc1
- DuetWebControl 3.3-rc1
New features:
- Added support for abbreviated G-codes in CNC and Laser mode (Fanuc and LaserWeb G-code style)
- Added new code streaming mode to the API for easier Repetier and Octoprint integration
- Implemented new command line utility to test and demonstrate the new code stream mode
Bug fixes:
- Global variables in the OM were not cleared when DSF lost connection to RRF
- When prints were paused during macros, under special cirumstances the macro was run again on resume
Version 3.3-b3
Compatible versions:
- RepRapFirmware 3.3-b3
- DuetWebControl 3.3-b3
New features:
- Added support for variables in G-code files (
global
,var
,set
)
Changed behaviour:
- Added fallback to
directories.system
if firmware files cannot be found indirectories.firmware
Bug fixes:
- Tilt factors for delta kinematics were off in config-override.g
- M0/M1 didn't cancel already queued file codes
- Truncated tool lists are now fetched using multiple queries
Version 3.3-b2
Compatible versions:
- RepRapFirmware 3.3-b2
- DuetWebControl 3.3-b2
Changed behaviour:
- Plugin support in DSF is fully implemented
- Changed file format of the new plugin manifest
- Layers code is no longer compatible with previous versions
- Emulation is always applied to results from code interceptors
- The DSF-only keyword
return
is now obsolete and will be removed from a future version (unless support for it is added to RRF) - DuetWebServer notifies systemd when it has started like DuetControlServer does
M999
is only prioritized from text inputs if it is intended for the main board- New configuration file
dsf-config.g
is automatically executed when DCS and third-party plugins have been started - CodeConsole application uses Telnet G-code channel instead of SBC
Bug fixes:
- Updated regular expressions for various slicer formats
- SBC permissions for third-party plugins were not properly enforced
- When DCS failed to start too many times in a row, it remained disabled
- DPS didn't (de-)serialize string dictionaries properly
Known issues:
- Variable support isn't implemented yet, this is TBD in 3.3-b3
network.interfaces[].speed
does not work for WiFi adapters on the Pi (see dotnet/runtime#47777)
Version 3.2.2
Compatible versions:
- RepRapFirmware 3.2.2
- DuetWebControl 3.2.2
Bug fixes:
- Tabs at the beginning of G-code lines were not interpreted as up to 4 spaces
- Payloads for conditional keywords had to be encapsulated in curly braces to allow usage of round braces
- Parameters for codes that expected unprecedented parameters always had to be encapsulated in double quotes
- When DWS was configured for a different port, no WebSocket sessions were permitted without extra CORS exception
- DCS could be killed by systemd if runonce.g didn't finish quickly enough
break
andcontinue
didn't wait for pending codes to finish which could lead to problems withiterations
- When empty comments were parsed, the
Comment
field of DSF codes remainednull
instead ofstring.Empty
- Unlike in RRF
G29 S0
accepted custom filenames (better solution is to useG29
followed byG29 S3
)
Note that this version is 3.2.2 instead of 3.2.1 to avoid confusion for users who have an internal RRF 3.2.1 build installed for testing.
Version 3.2.0
Compatible versions:
- RepRapFirmware 3.2.0
- DuetWebControl 3.2.0
Bug fixes:
- M929 didn't set the correct log level
abort
tried to evaluate following expression even if it was not specifiedabort
did not always cancel all the internal codes in time- Under rare conditions suspended codes could be re-suspended in the wrong order
- G0/G1 with dynamic feedrate expressions caused an internal exception
Please check out the WHATS_NEW file for further changes since v3.1.1.
Version 3.2.0-rc2
Compatible files:
- RepRapFirmware 3.2.0-rc2
- DuetWebControl 3.2.0-rc2
Changed behaviour:
- Increased SPI connection timeout from 2.5s to 4s (same value as in RRF)
- Partial SPI transmissions may not take longer than 500ms (same value as in RRF)
Bug fixes:
- M997 and M999 could generate "Operation has been cancelled" errors
- When DCS terminated sockets of command connections were not correctly shut down
- Object model write locks were not correctly disposed of when DCS terminated
- Calling abort in macro files could cause an exception
- M501 could freeze if no config-override.g was found
- "Macro not found" warning messages were not output as part of code results
Version 3.2.0-rc1
Compatible versions:
- RepRapFirmware 3.2.0-rc1
- DuetWebControl 3.2.0-rc1
Changed behaviour:
- RRF downgrades from later protocol versions are now possible
- CORS headers are only sent if explictly configured by
M586 C
-parameter - SPI transfers use CRC32 instead of CRC16 with new protocol version
- DCS service notifies systemd when it is up and running
- DCS terminates when a firmware update of the main board is complete (unless
NoTerminateOnReset
is set) runonce.g
is no longer processed if DCS starts in update-only mode (i.e. with-u
parameter)- Third-party DSF plugins cannot be installed any more (TBD for v3.3)
Bug fixes:
- Fixed incompatibilities when updating RRF from older firmware versions
- LockMovementAndWaitForStandstill retransmissions were logged
- Expressions were not automatically evaluated in the code processors
- Internally processed codes were only logged if they resulted in a warning or error
- DWS didn't send correct
Cache-Control
header which could result in DuetPi using outdated DWC versions - Sometimes the filament mapping was not fully restored if the
NoTerminateOnReset
option was enabled - M929 was not fully implemented for new log levels
Version 3.2.0-b4
Compatible files:
- RepRapFirmware 3.2.0-b4
- DuetWebControl 3.2.0-b4
Changed behaviour:
- DCS service is now started via sysinit.target instead of basic.target so that config.g is processed faster on boot
- Thumbnails from PrusaSlicer are now parsed (thanks Sindarius)
- M500 writes new heater tuning parameters to config-override.g
- In Marlin emulation "ok" responses are only sent when the line is complete
Bug fixes:
- Codes could be sent to code interceptors in the wrong order
- M21 (P0) returned an error message breaking Octoprint support
- Under certain circumstances some object model keys were not updated on initialisation
- DCS service didn't have permission to change the datetime
- Print times with decimal places were incorrectly parsed
- When the controller was reset or updated, an extra data transfer was performed
Version 3.2.0-b3
Compatible files:
- RepRapFirmware 3.2.0-b3
- DuetWebControl 3.2.0-b3
Changed behaviour:
- DCS is now explicitly notified about closed messages and files (hence no longer compatible with 3.2-b2)
- CodeConsole utility allows evaluation of expressions using
eval <expression>
Bug fixes:
- When certain G-code inputs were disabled, the DSF API threw NullReferenceExceptions
- When the heaters contained null items, no config-override.g could be writen
- When the move compensation type was set to none, the heightmap file was not reset
- Starting macro files could cause out-of-order execution and stack underruns
- Sometimes the object model wasn't fully updated after a disconnect
Version 3.2.0-b2
Compatible files:
- RepRapFirmware 3.2.0-b2
- DuetWebControl 3.2.0-b2
Changed behaviour:
- runonce.g is no longer processed before config.g to match RRF's behaviour
- Increased SPI protocol version due to slight changes for the new Linux task in RRF
Bug fixes:
- Added missing "Starting" item to the MachineStatus enumeration
- M112/M999 were executed out-of-order when read from files
- Sometimes in print files codes invoking macro files could crash DCS
- Aborted macro files did not cancel codes properly
- Comments following codes directly without a whitespace could cause parsing errors