Age | Commit message (Collapse) | Author |
|
|
|
Improved performance of the Linux task once again
Added more debug info for spurious "failed to close macro file" messages
Added new timeout when waiting for SPI transfers on SAM5Ex series
Bug fix: Linux task spun longer than anticipated
Bug fix: New cancelling state was broken
Bug fix: File deletion from RRF on SBC wasn't working
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Slightly reduced memory usage for virtual file IDs
Requests to daemon.g no longer block the main task
Added new diagnostic test to provoke output buffer starvation
|
|
Missed a change from uint8_t to FileId in GCodeMachineState
Improved GCodeBuffer::SetFileFinished to deal with successive MacroClosed requests
|
|
Bug fix: File ID counter overflowed to zero causing issues after 255 macro requests
|
|
Refactored some SBC-related classes
Prepared some functions for dual operation of SD card with Linux interface
Bug fix: When macros were started, out-of-order replies and stack underruns were sometimes provoked
|
|
|
|
RRF tells SBC explicitly about closed messages and macro files
Removed one more mutex in the Linux subsystem
Bug fix: Fixed issue about multiple stack levels in the same file in SBC mode
Bug fix: Firmware filenames for Duet 3 Mini 5+ were wrong
|
|
RRF now keeps track of the binary GB states per stack level
Removed "FinishBinaryMode" work-arounds from a few places
Bug fix: When executing config.g the macro mutex is awaited forever in SBC mode
|
|
Bug fix: M291 S3/4 could block the whole Aux channel in SBC mode
Bug fix: When prompts were cancelled, no event was sent back to the SBC
|
|
In laser mode, M3 and M5 commands were applied too early if there was a
move waiting in the move buffer
Move counters were reset at an inappropriate point, causing them to get
out of sync
The execute move number for queued moves didn't take account of
segmented moves waiting to go
Error messages from G1 and G2/G3 commands were lost
|
|
Also added restore points and some additional limits to object model
|
|
Added line number support to binary GCodeBuffers
Implemented blocking message box support for DSF
Implemented expression evaluation for DSF
Improved output parts in the OM and tested with DWC
Status responses no longer modify data
Minor improvements in the Linux subsystem
|
|
Tightened up JSON path parsing
Used NamedEnum for GCodeChannel and Compatibility
Added a check for bad channel numbers received from SBC
Fixed bugs in M220
Increased max number of MDNS services form 1 to 4
Added noexcept specifiers to functions in DataTransfer class
|
|
Fixed Abort command so that it resets the state to not printing
Introduced null literal and allow objects to be compared to null
|
|
Changed all bitmaps to use the bitmap class from RRFLibraries
Fixed bugs in functoin evaluation
|
|
FreelistManager in RRFLibraries now has its own namespace
Class GCodeMachineState now uses FreelistManager to manage its storage
Leading tabs are treated as going to the next multiple of 4 spaces from
start of line or end of line number etc.
Generate warning if both tabs and spaces are used to indent blocks
|
|
Refactored how GCode blocks and indentation are tracked
Fixed lack of motor movement on Duet 3
Create path recursively if needed when creating a directory or renaming
a file
|
|
Loops are now working
Added noexcept specifiers to omst of the remaining C++ source files
|
|
Removed LWIP_GMAC_TASK definition. We now always use a separate task for
the GMAC.
Added loop counter constant 'iterations'
Fixed some expressoin evaluation bugs
|
|
|
|
Z probing bug fixes
|
|
The standard Duet3_V06 build now supports both the Linux interface and the SD card. The SD card is used if the card can be mounted and config,g or default.g can be run. Otherwise the Linux interface is used.
|
|
Fixed bugs with configuring heaters
Fixed bug with compatibility setting
|
|
Improved GCodeBuffer backend
Moved compatibility setting to machine state
Cleaned up some of the Linux buffering code
Bug fix: Output of M111 was reported in multiple chunks and could not be seen via DWS
Bug fix: Unsupported codes were not reported as such
|
|
Reverted some changes to Linux/MessageFormats.h and Linux/BinaryParser.cpp for compatibility with the existing SDF release
Added HAS_MASS_STORAGE definition
Removed lots of mass storage code when HAS_MASS_STORAGE is false
Removed non-RTOS code
Moved SPI channel usage definitions into CoreNG
Added some new CAN message formats (not used by this project yet)
|
|
|
|
Implemented the basic language constructs for conditional GCode. As part of this, improved the interface between the GCodeBuffer class and the various GCode input streams.
Created file GCodes4.cpp and moved the state machine implementation into it.
|
|
|
|
|
|
United GCodeBuffer types to allow binary and string content
Prepared GCode flow to deal with new SPI communication
Linux interface can now access every GCodeBuffer instance
Bug fix: When DoMacroFile could not push the stack, the file was not closed
|
|
Inches/mm setting is now per-channel and saved by push/pop
When an unsupported G- or M-command is encountered, look for a macro of that name
Removed special support for M650 and M651, use macros instead
M203 always reports accelerations in mm/sec^2
Bug fix: G30 Pnn S-1 could report standard deviation as nan
Fixed direction for motors supported over CAN
Allow movement slightly outside M208 limits to allow for round-trip errors when the M208 limits are converted to motor positions and back again
|
|
Added class DDARing to allow more than one DDA ring to be active
When a system macro is running, apply tool offsets again (but don't apply workplace coordinate offsets)
M591 no longer waits for movement to stop, unless axis jog buttons are requested
When switching a tool to standby, don't set its heaters to standby if they are active heaters for the current tool
|
|
Bug fixes:
DWC sometimes disconnected after uploading a GCode file
Reverted the behaviour of G0 commands to the pre-2.0 behaviour when the
machine mode is FFF (i.e. the F parameter is recognised and the feed
rate is shared with the G1 feed rate)
If a G1 command with extrusion was followed by a G0 command, the
extrusion was repeated in the G0 command
When high microstepping was used, certain sequences of movement commands
could lock up the movement system
|
|
New features and changed behaviour:
- Report spindle motor speed in rr_status and M408 reports
- M106 now also reports the current fan PWM for
thermostatically-controlled fans
- Machine coordinates are always used when running system macros
automatically
Bug fixes:
- Pulse-type filament monitors are now working
- WiFi sockets whose connections abort are now terminated to make them
available for re-use
- DWC Machine Properties page shows the correct state of active low
endstops
|
|
New features:
- New M569 T parameter options to specify step pulse width, step pulse
interval, direction setup and direction hold times
- M665 now sets the M208 limits (except Z min) to match the machine
limits, so that Duet Web Control reports the correct values
Bug fixes:
- M116 commands were sometimes executed out-of-order relative to
previous G10 commands if movement commands were in progress
- G10 L20 now computes the workplace coordinate origin correctly
- G53 is only active until the end of the current line of GCode
- The default coordinate system is the one selected by G54
- G54..G59 update the user coordinates immediately
- Fixed "Error: Pop(): stack underflow!" when a file or macro is
terminated due to an illegal move command
- A short delay is inserted when M558 is used to change the Z probe
type, to allow the averaging filters to accumulate the new data
- M291 messages which are non-blocking (i.e. mode < 2) are now
synchronised to queued moves, like M117 messages
Other changes:
- Duet Web Control and PanelDue now report the coordinates relative to
the origin of the current workplace
- Rewrote dhcp_rec function on Duet06/085 to avoid goto statements
(possible fix for startup problem when using DHCP)
|
|
New features:
- On CoreXZ machines we no longer require Z to be homed before bed
probing with G30
- M589 now checks that the password is either empty or 8 characters
minimum
- G10 L2 is supported as an alternative way to set tool offsets
- G10 L20 is supported as an alternative way to set workspace
coordinates
- Heater fault detection is suppressed when heaters are suspended during
bed probing
- DuetWiFiServer/bin uses a new SDK version, which seems to resolve some
issues
- On boards with a W5500 Ethernet interface, the Ethernet PHY is now
programmed to auto negotiate
- Added M564 H0 command to allow axis movement before homing on
Cartesian/CoreXY printers
- The filament length comment proposed to be generated by the next
version of Cura when using more than one filament is supported
Bug fixes:
- I parameter on M452, M453 and M573 didn't work
- If a homing file contained an illegal movement command then homing was
not cancelled
- Corrected Z probe input pin in RADDS build
- Possible fix to Duet 06/085 failure to start when using DHCP
|
|
Upgrade notes:
- On Cartesian and CoreXY printers, normal G0 and G1 moves are no longer
allowed before the corresponding axes have been homed. In particular, if
your homex.g, homey.g and homeall.g files raise Z a little at the start
and lower it at the end, you will need to add the S2 parameter to those
G1 Z moves. Otherwise the G1 Z move will be refused unless Z has already
been homed and the homing macro will be terminated.
New features:
- On Cartesian and CoreXY printers, normal movement commands are no
longer permitted until the corresponding axes have been homed
- Illegal movement commands in a print file or macro file cause the file
to be terminated and heaters/spindle motors/lasers to be turned off;
except that when the printer is in FDM mode, G0 and G1 moves outside the
movement limits are just truncated as before
- The M39 command reports the SD card cluster size
- If GCode attempts to set the temperature of a non-existent bed or
chamber heater to zero (to turn it off), the error message that would
normally be generated is suppressed
- G60 command to set a restore point is implemented
- M671 command now supports the F (fudge factor) parameter
- The standstill current fraction can now be set on the Duet Maestro
build
- M118 support added (thanks chrishamm)
- When using external stepper drivers the DIR signal is no longer
changed before the step pulse has ended
- The M452, M453 and M573 commands now support the I1 parameter to
invert the laser, spindle or extrusion signal polarity
Bug fixes
- Duet Ethernet only: fixed bugs in the DHCP client code that could
cause the printer to become very slow
- G2 and G3 arc moves are terminated if the attempt to exceed the axis
limits
- When multi-touch Z probe mode is enabled, the recovery time is applied
before all probing movements, not just the first one
- Z probe mode 9 (for BLTouch) ow works in multi-touch mode
- During simulation the status is set to "Simulating" instead of
"Printing"
- M556 with a zero S parameter no longer messes up the coordinate
calculations
- When large files were uploaded or copied to the SD card and the
cluster size was small, HTTP requests could time out while DWC attempted
to get the information for those files
- The Duet3D rotating magnet filament monitor is supported again
- FTP didn't work reliable in 1.21RC2
- Endstops 5 thru 9 on a DueX2/DueX5 board can now be used for simple
filament sensors
- When resuming a paused print the first move executed was sometimes
incorrect
|
|
New features:
On SCARA printera arm position limits are applied as well as XY size
limits
Heater 0 values are sent to to PanelDue even if there is no heated bed
When logging is enabled, log entries are now written for when the
date/time/date is set
When logging is enabled, "Maximum open file count exceeded" messages are
logged
Loss of power is now handled much faster. The print is paused in the
middle of a move if necessary. The M991 parameters are changed to
facilitate this.
When resuming a print after loss of power, the head is now moved,
sideways and finally down when restoring position
Following a power failure, M916 can now be used to resume the print
instead of using M98 Presurrect.g
The heater control now switches to fast PID parameters when the
temperature is within 3C of target, instead of within 1C
The TMC2660 Stallguard detection and Coolstep parameters may now be
configured using M915. Currently, no action os performed when a stall is
signalled.
If a heater fault occurs, the print is paused instead of cancelled
All error messages relating to incorrect use of a G- or M-code now
include the G- or M-number of the command that caused them
Increased ADC oversample bits to 2
Duet WiFi: M122 diagnostics now include the wifi module sleep mode and
additional network diagnostics
You can now disable monitorng of TMC2660 drivers rthat are not in use by
using parameter R-1 in the corresponding M569 command
The M585 (probe tool) command is now implemented (thanks chrrishamm)
If axis lengths are adjusted by probing, a subsequent M500 command saves
them in config-override.g
If tool offsets are adjusted by probing, a subsequent M500 command saves
them in config-override.g
The layer counting mechanism has been modified to better handle GCode
files that use a different layer height when printing support
Debug messages sent to the USB port are truncated or thrown away if a
software watchdog reset is imminent
XY speed limiting is now done separate for each kinematics, in
particular for CoreXY printers
Support for Polar kinematics has been added but not tested (see M669
command)
The TMC2660 drivers are configured to detect short-to-ground conditions
faster
The parameters in rr_ http commands are now all order-independent
Bug fixes
An error in computing the time taken to execute moves that were not yet
frozen caused the first movement on a SCARA printer following homing to
be jerky
An extra space in the output from the M114 command confused Printerface,
causing it to print exception messages
When tuning a heater, any previous maximum PWM that was set is now
ignored
|
|
Simplified the tracking of virtual extruder position
Fixed issue with volumetric extrusion
Fixes issues with resurrection when using absolute or volumetric
extrusion
Corrected date stamp on resurrect.g file
Bed levelling wizard now displays required levelling screw adjustments
|
|
New features:
- M291 command is provided to display a message box with options for
timeout, acknowledgement and Z jog buttons
- M292 command is provided to acknowledge M291 messages
- Manual delta calibration and bed compensation is supported (use P0 in
the M558 command to indicate that there is no Z probe)
- Minimum value for S parameter (maximum heater PWM) in M307 command is
reduced from 20% to 1%
- Core XYU kinematics are now supported (thanks Lars)
- RADDS build now supports 9 motors (thanks Tom)
- If a homing move uses parameter S3 instead of S1 then the axis minimum
or maximum value is set to the current position instead of vice versa
- M589 with no parameters now reports the Duet's own SSID
- M589 S"*" now deletes the Duet WiFi's own access point details
Bug fixes:
- Tool X offsets are now applied on the next move even if it has no Z
parameter
- The tool change restore point coordinates now take account of X axis
mapping
- M588 P"*" command (forget all access points) now works
- On the Duet WiFi, after using M589 to set up access point parameters,
when M552 S2 was sent to start the WiFi module in AP mode it reported
"WiFi reported error: invalid access point configuration". The fix also
needs DuetWiFiServer version 1.19beta7.
- On a delta printer the effector height is limited to reachable values
Areas of code refactored (so watch out for new bugs):
- G30 bed probing
- Baby stepping
- Tool offset implementation
Upgrade notes:
- SSIDs and passwords in M587, M588 and M589 commands must now be
enclosed in double quotes
- Height map filenames in G29, M374 and M375 commands must now be
enclosed in double quotes
- On a Duet WiFi you should also upgrade DuetWiFiServer.bin to version
1.19beta7. You do not need to perform a simultaneous upgrade, but M587
and M589 reporting functionality won't work correctly if your
DuetWiFiFirmware and DuetWiFiServer versions are out of step.
|
|
Implemented G2 and G3
Fixed bug: couldn't update WiFi server or DWC on Duet WiFi after sending
M997 S3
Disable the uart used to update the WiFi module during normal WiFi
operation
|
|
|