Age | Commit message (Collapse) | Author |
|
Use our own version of vsnprintf to save stack and avoid needing to stop
scheduler during calls to it
G0 now moves at maximum travel speed and ignores F parameters
Fixed problem with doing G20 after loading or probing a height map with
a significant Z offset
Added chrishamm's spindle and fan map changes
Added type 10 Z probe which uses Z motor stall detection
Don't need to home any more before simulating a file
Update user coordinates after G10 is used to change tool offsets
Don't require both X and Y or both I and J parameters to be specified in
G2/G3 commands
|
|
Increased main task stack size to handle delta auto calibration
Replaced strtod by our own version. The one in newlib isn't threadsafe
unless we enable reetrant newlib in FreeRTOS, but the _reent struct
define in new lib contains lots of stuff we don't need that makes tasks
much bigger, using up many kb of memory
Use newlib nano instead of regular newlib
Note: in this release the network still disconnects at intervals, but it
can be reconnected.
|
|
The Network module is now a separate task
Reduced network buffers from 8 to 6 to free up RAM
FileInfoParser has its own buffer to save allocating them on multiple
stacks
Got rid of longWait and ClassReport
|
|
Got rid of the global scratchString
Rationalised some String and StringRef functions
Bug fix: if a motor stall triggered a pause, the driver numbers were not
listed in the message
Fixed possible race conditions in TMC2660 driver,
|
|
Refactored mutex and task interface
Output channels, tool list and message box data are now thread safe
|
|
Movd the file info parser out of PrintManager into a separate class
within Storage and made it thread safe
Added "Off" status for DWC and PanelDue
Fixed bug with using G1 S1 Ennn on a delta printer
|
|
Various changes to maske the filesystem thread safe
|
|
|
|
|
|
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
|
|
Refactored some string handling
Fixes for Duet 2M
|
|
Added multi-tap probing
Added M260/M281 I2C send and receive
Added absolute babystepping mode
Fix for pressure advance with non-uniform extrusoin rate
Disabled cache oin SAM4E
Fixed FTP "listen failed" bug
Fixed crash when trying to confoigure a filament monitor on a DueX
endstop input
Change endstops 5-9 pin allocation when no DueX board present
Show board revision as 1.02 if VSSA sense present
Ported DHCP fixes form lwip 2 to Duet 06/085 build
M304 bug fix
Bug fix to recent PrintMonitor change when getting "Generated by" string
|
|
Fixed step number calculation bug that caused benign extuder step errors
in some configurations
Fixed a lookahead bug that caused step errors
Filament monitor is now disabled when simulating a print
Added M39 command to get SD card free space and other info
|
|
New features:
- Heater PWM frequencies are limited to 1kHz to protect
the heater mosfets
- Tool offsets and fan mapping are now passed to
DWC
- More free memory is available, especially in the Duet 0.6/0.8.5
build
- Maximum bed heaters increased to 4 for the Duet WiFi/Ethernet
-
The software reset data now records the date/time of the reset if known
and a longer stack trace
- The maximum length of GCode commands has been
increased, in particular to allow long passwords in M587 commands
Bug
fixes:
- Fixed M28/M29 file upload
- Fixed some USB/Telnet response
formats when in Marlin emulation mode
- Fixed move timing when a long
slow printing move follows a faster printing move
- Heater tuning was
not possible in 1.20RC1
- If a file being printed executed a macro right
at the start, DWC could assume that the print had already finished
(thanks chrishamm)
|
|
New features:
M109 and M104 commands now set both the active and the standby
temperatures of the tool.
M109 now only selects a tool if no tool was selected
Filament errors are now logged
M587 now checks that the password is either empty or is at least 8
characters long
M122 now includes the minimum and maximum StallGuard registers for each
driver seen since the last M122 command
M307 now accepts an F parameter to allow the PWM frequency to be set.
Caution: do not use excessively high PWM frequencies, especially with
the bed heater, because you may overheat the mosfets.
The calculation of PID parameters from the heater model has been changed
to provide faster heating and less risk of undershoot
The M81 command now accepts an optional S1 parameter, which defers the
power down until al thermostatic fans have stopped
SD card detection is now working properly (Duet WiFi/Ethernet only)
A file that is open on the SD card can no longer be deleted
Bug fixes:
M109 commands could cause unwanted head movement when no tool change was
required
If a filament error occurred more than one, the print would be paused
each time but a message box would only be displayed the first time
If a new request arrived but no responder was available, there was no
timeout waiting for a responder (thanks chrishamm)
Z probe types 5 and 8 didn't work on Duet 085
M500 didn't save axis lengths found by G1 S3
|
|
Merged in changes from dev branch
|
|
String parameters can now be quoted in all G- and M-commands
Added partial support for standstill current reduction (M917)
M0 and M1 no longe turns anything off or run any macros when in
simulation mode
|
|
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
|
|
Added support for M3, M4, M5 and M450-M453
Added support for DHT11, DHT21 and DHT22 temperature/humidity sensors
(thanks chrishamm)
Some additional events are now logged
The grid defined by M557 is now stored separately from the grid loaded
by G29 S1 so that they don't overwrite each other
The resurrect.g file is no longer created or deleted during a simulated
print
SCARA prints are simulated without segmentation so that the simulation
runs much faster. In tests, the difference in the simulation time
with/without segmentation was negligible.
The change to fast PID parameters is now made when the temperature is
within 3C of the target instead of when within 1C
M408 S1/2/3 responses now include dummy values for the bed heater if
there is no bed heater
The commands to resume printing that are written to resurrect.g now move
the head to 2mm above the printing height, then sideways, then down
Bug fixes:
If a Duet3D filament sensor was connected and congfigured but flashing
an error code instead of sending filament data, the error recovery code
running on the Duet caused short pauses in the print
On a delta printer if you created additonal axes, when you tried to home
them it ran homedelta.g instead of e.g. homeu.g
On a delta printer with additional axes, you can now do XYZ moves as
soon as the towers have been homed
Fixed a possible race condition if the time and date were set at
midnight
The 4-leadscrew auto/4-screw manual bed levelling code didn't work
properly
The P parameter was missing from G10 commands written to resurrect.g
Arm angle limits are now applied when converting Cartesian to SCARA
coordinates
The correction limit is no longer applied when computing manual bed
levelling screw corrections
SCARA arm mode changes are now only permitted in uncoordinated (G0)
moves
|
|
Upgraded compiler
Floading point constants now default to single-precision
Changed to hardware floating point ABI on Cortex-M4 targets
|
|
Removed define of printf=iprintf in build settings
Removed Platform::Time() function, use millis() or millis64() instead
Added event logging to SD card. MessageType is now a bitmap. Implemented
M929.
Enable pullup resistors on endstops 10 and 11
SCARA printers can now use the manual bed levelling assistant
When using the manual bed levelling assitant, don't give an error if the
bed screw corrections were out of range, and always leave the first
screw alone
M552 now supports connection to a specified SSID
M572 now allows multiple D values
Thermocouple type letter in M305 command may now be in lower case
Bug fix: G29 bed probing on a SCARA printer gave spurious "not
reachable" warnings and skipped probe points
Protect against a dud command line containing the letter M being
interpreted as a M0 command
Fix reference to towers in the error message when trying to move a SCARA
printer before homing it
When updating firmware, warn that USB will disconnect
Fix duplicate error messatge when opening a gcode file fails
|
|
Jerk is no longer applied to the boundaries between travel moves and
printing moves
On the Duet WiFi, the M122 report includes the network reconnect count
The progress bar on PanelDue and the estimated end time based on
filament usage were getting slightly ahead of the true values,
especially for small gcode files
Fixed a bug whereby if a move had a tiny amount of XY movement and a
much larger amount of extrusion, an extrusion speed in excess of the
extruder speed limit set in M203 might be used. This could also be
triggered if a move that was too short to need any steps was followed by
a pure extrusion move.
|
|
Homing functionality is now handled by the Kinematic classes. SCARA
homing is supported.
Added support for binary file upload in M559 and M560
Added support for an additional SX1509B port expander
Pause commands issued while a macro is being executed are deferred until
the macro has completed and they can be resumed
Bug fix: XYZ coordinates could be reported as NaN in DWC status
responses, causing AJAX errors
Axis compensation now takes account of X and Y axis mapping
Messages rejected by webserver now generate a generic message only if
debug is enabled
More work on filament sensor support
|
|
* Support for binary write
M560 and M559 now supports binary uploads.
Size in bytes of the file can be supplied to the GCode with S parameter to indicate end of file otherwise upload will continue until the EOF is encountered.
M560 writes www folder by default
M559 writes sys folder by default
Default folders can be changed by supplying the absolute path of the file. For example: M560 P/sys/firmware.bin
* code refactoring
* CRC32 checksum verification for binary uploads
In this implementation CRC32 checksum should be supplied with "C" parameter with 0x prefix. Example: M559 C0xabcdef Ptest.bin S123
* code refactoring
|
|
Leadscrew corrections were incorrect. The 3-leadscrew case is now know
to work. The 2- and 4-leadscrew cases need to be tested on suitable
printers.
Fixed "Can't delete 0:/sys/resurrect.g" messages
Added support for M591 command to configure filament sensors (but
filament sensor support still incomplete)
Added support for M672 command to program the Duet3D delta effector
(tested and fully working)
Changes to support new CoreNG that supports a parameter in
attachInterrupt callbacks
|
|
Fixed issue that sometimes caused M997 firmware upgrades to hang on Duet
Ethernet
Heater 0 can now be used for direct port output if its heater model is
disabled
|
|
New features:
Refactored and completed 4-leadscrew bed levelling code
Probe deployment and retraction for G30 and G29 commands is now handled
automatically. You should still include a M401 command before the first
G30 command in bed.g and a M402 command after the last one, so that the
probe deploys and retracts once for the entire sequence instead of once
per G30 command.
M577 now allows separate X and Y spacings, use Sxxx:yyy
Volumetric extrusion is now supported (M200)
Additional tool/heater data is provided to DWC (thanks chrishamm). Using
Heater 0 as a tool heater should now work.
The '(' character in a gcode file now introduces a comment, just as the
';' character does. The comment is terminated at end-of-line. This is
not the same as in some CNC gcodes, where a comment introduced by '(' is
terminated by ')'.
Heater tuning peak detection algorithm changed (but still needs more
work). This may fix some "no peak detected" reports during auto tuning.
The heater dead time is how taken as 60% of the peak delay time intead
of 100%, which results in more aggressive PID parameters.
Bug fixes:
M669 with no parameters now reports the bed offset on a SCARA machine as
well as the other parameters
M671 with no parameters now reports the maximum correction as well as
the leadscrew positions
Heater model max PWM is now set to tuning PWM after auto tuning (thanks
cangelis)
If an HTML file uploaded over USB contained an embedded leading
substring of the EOF string, incorrect data was written to file (thanks
cangelis)
Fixed incorrect movement following a tool change on an IDEX machine
(thanks lars)
RADDS build would not start up
Other changes:
TEMPERATURE_CLOSE_ENOUGH reduced from 2.5C to 1.0C
Reduced the maximum number of random probe points on Duet WiFi/Ethernet
to 32 to avoid running out of memory during delta auto calibration
Simplified the axis orthogonality correction code
Added new bitmap types along with function templates to work on them
Clear HSMCI callback when exiting RepRap module e.g. to flash new
firmware
Use lrintf() instead of round()
DriveMovement structures are now allocated dynamically from a freelist,
to allow more moves to be queued in typical cases. The number free and
minimum ever free is included in the M122 report.
|
|
Support new production DueX5 and DueX2 boards and Fan 8
Fix M21
Queue M42 commands
Fix M106 incorrect P parameter check
|
|
Changes to WiFi server and interface code for better network
reliability. FTP and MDNS now working on Duet WiFi.
Changed heater tuning to allow more time for the temperature to rise
when tuning a bed or chamber heater
Toned down the temperaure warning message
|
|
Major refactoring to make it easier to support additional kinematics.
Added M669 command to select and configure Scara kinematics
|
|
First working release of new WiFi code
Axes moving other than X (possibly mapped), Y and Z are not taken to be
part of the feed rate
Introduced SafeStrncpy and SafeStrncat
|
|
Merged in chrishamm's code queue and input buffer code
Increased heater tuning timeout for finding peak temperatire from 60 to
120 seconds
Implemented M204
Increased precision of reported coordinates to 3 decimal places
PanelDue status responses continue to be sent while executing
M109/116/190/191 commands
|
|
Restructured the header file inclusion so that the .cpp files are
dependent on fewer header files, resulting in less recompilation when
most header files are changed
|
|
Bed compensation taper is now applied to 3/4/5-point compensation
methods too
Recognise generated-with comment in new Cura gcode files
Recognise filament-used info min new kisslicer files
When uploading files, create the full path if necessary
Duet 0.8.5 webserver looks for gzipped files first
A second controlled fan on the Duet 0.6 is no longer inverted
|
|
- Added support for M374 (save height map) and M375 (load height map)
- Added M376 (set bed compensation taper height)
- Added T parameter to G31 command
- M500, M501 and M502 now use config_override.g instead of flash memory.
The parameters saved and restored are:
-- M307 auto tune results
-- PID parameters, if you used M301 to override the auto tune PID
settings
-- Delta printer M665 and M666 settings
-- G31 trigger height, trigger value and X and Y offsets
- The M501 auto save option has been removed
- Removed S and T parameters from M301 command. Use M307 command
instead.
- M301 with negative P parameter no longer sets bang-bang mode. Use M307
instead.
- Added P parameter to the G31 command to specify Z probe type. This
allows you to view the parameters for the Z probe(s) and to set
parameters for a particular Z probe type without selecting that type.
G31 P or G31 P0 prints the parameters of the currently-selected Z probe.
- Z probe offsets are now applied during G30 probing with specified XY
coordinates, including during delta auto calibration
- Z probe recovery time is now applied from the end of the travel move
just before probing
- Fixed bad dive height when using G29 with a large trigger height
- Fixed bad JSON message during printing when there were no active
extruders
- Added exception handlers and store a software reset code when an
exception occurs
- Fixed reset reason text because on the Duet WiFi a watchdog reset can
look like an external reset
- G30 S-1 how printes the stopped height
- Implemented M401 and M402
|
|
Implemented loading height map from file (G29 S1)
Implemented move segmentation when grid levelling is used
M571 now accepts a P parameter to define the output pin
M558 R parameter is now Z probe recovery time
Keep track of time locally instead of using the inaccurate RTC
M109 and M104 default to first tool if no tool selected or specified
M109 activates the tool if no tool or a different tool was activated
Default max temperature excursion increased to 15C
Removed PROTO1 confivguration, added RADDS configuration
Fixed deadlock in some earlier 1.17dev builds when a macro that does
movement is run during a print
|
|
Added support for M557 grid definition and G29 grid probing (not
complete yet)
Workaround for DWC sending volume ID in new name when renaming a file
across directories
G1 moves with S2 modifier no longer ad the tool offset
|
|
Fixed several bugs in file time stamping
Fixed M280 and M42 commands using unused heaster channels on Duet 0.6
and 0.8.5
Reduced the amount of I2C traffic, by using DueX5 interrupt line to tell
if new data is available and by only sending fan PWM values when they
change
Display TMC2660 driver status and DueX2/X5 stall status in M122 response
Removed E parameter from M574 command (use M558 I parameter instead)
Fixed response to M307 with H parameter only
|
|
Merged in chrishamm's changes to support tmie stamping of uploaded files
(thanks chrishamm)
Added fan mapping in M563 command
|
|
Increased max number of probe points to 64 on Duet WiFi and 32 on Duet
0.6/0.8.5
Corrected M37 reporting of simulation time
Added move debug facility
Added recording of more types of move underrun
Use fabsf instead of fabs
M21 doesn't re-mounjt a drive that is aloready mounted and has open
files on it
Added "volumes" variable in extended status report
Report card details after M21 is called
Bug fix: M220 speed changes were nott being implemented as soon as they
should be
Bug fix: lookahead was sometimes failing to join sequences of short
decelerating moves together
Bug fix: at startup the thermistor readings were sometimes very high,
which triggered a bug in strtod() called in PanelDue firmware 1.14 and
earlier
|
|
Fixedbug with PrintMonitor code to find object height
Qualify some omre #include filenames with paths, to reduce the number of
include file paths needed in the compiler options
|
|
Fixed doubling of M301 I parameter and halving of M301 P parameter
Implemented M303 auto tune and M307 heater process model
Improved temperature monitoring to detect heater cartridges or
thermistor falling out
Implemented M38 (thanks chrishamm)
Retructured course code tree
|