Age | Commit message (Collapse) | Author |
|
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
|
|
|
|
Recognise Ideamaker filament usage comments
Unified network interface for all generation 2+ Duets
|
|
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
|
|
Fix stepper driver warning/error messages
Reduce SPI speed on Duet Ethernet
M350 Enn with just one E value given is now applied to all extruders
Corrected nonlinear extrusion steps calculation
Refactored the filament monitor support
Added laser filament monitor support
Added pulse-type filament monitor support
Corrected display of M574 endstop type when the type is active low
Added support for extruder "endstops" using motor load detection
M305 Pn with no other parameters no longer allocates a thermistor to the
heater
|
|
Changed ot C++'14 compilation mode
Re-enabled pullups on endstop inputs for Duet085 and Duet NG
Fixed M200 reporting
Fixed extruder position reporting when some axes are hidden
|
|
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
|
|
Refactored to make network configuration less depedent on board ID
Added DuetM configuration
|
|
New features:
- Added Hangprinter kinematics. Auto calibration is not
expected to work yet.
- Added M122 P1 command for use in the Duet test
procedure
- Changed a path to a file in the linker command line to work
around an intermittent Eclipse bug
- DuetWiFi/Duet Ethernet: the
secondary hardware watchdog is now enabled and generates an interrupt,
so that if interrupts are enabled at the time then a crash dump can be
saved. If this fails then the primary watchdog will reset the processor
as before.
Bug fixes:
- Fixed issues caused by insufficient RAM (stack
running into heap) by freeing up additional RAM in the movement
structures
- Fixed occasional hang in USB ISR
- M201/203/208/566
commands now allow parameters for invisible axes to be set
- If a M584
command does not include the P parameter, the number of visible axes is
only set to the number of total axes if new axes are created in the
command
- Reverted to rounding down in step time calculations, because
the change to round to nearest may have contributed to issues seen by
some users of 1.20beta10
- Set correct priority for interrupt from the
UART used to receive debug info from the WiFi module
- When a filament
error occurred, the message displayed was one of the lines written to
resurrect.g instead of the type of filament error. Similarly if the
print was paused due to a motor stall.
|
|
New features:
T R1 activates the tool that was active at the last pause
M915 R2 and R3 actions are now implemented
Extruder heater PWM values are now compensated for supply voltage
Duet WiFi only: M587 and M589 without parameters now report the IP
addresses etc. as well as the SSID (needs DuetWiFiServer 1.20beta9)
When sensorless homing is used on a CoreXY printer, both X and Y motors
are monitored for stalling when homing X or Y. Similarly for CoreXYU
(both X and Y or U and V are monitored).
When using a segmented kinematics such as SCARA, or when long moves are
segmented due to mesh bed compensation, segmented moves can be paused
between segments
M562 with no parameters now clears all heater faults
New debugging module 14 added to report debugging message from the WiFi
module to USB. Use M111 S1 P14 to activate it.
Under voltage and over voltage events are now logged
Overheating drivers are now logged
M81 power off commands are now logged
Bug fixes:
Workaround for SX1509B chip problem: if an analog write was performed to
a pin on an SX1509B device, subsequent digital writes and pinMode calls
didn't work
When a print was resumed after power failure, the amount of extrusion
during the initial partial move was incorrect
|
|
Use PDC to send SPI data to TMC2660 drivers, in preparation for
continuous polling using interrupts
Tidied up new MAX31865 support
Increased number of allowed HTTP headers to 30
FTP server now allowes arguments in LIST command
FTP server now allows TYPE command when passive port is open
|
|
We now create a resurrect.g file any time the print is paused
Introduced new feature #defines and a DUET_06_085 define to simplify
conditoinals that depend on the target board
|
|
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
|
|
More work on IDEX tool changing
|
|
Changed the way we handel tool offsets to (I hope) meet the needs of
both IDEX and conventional dual-nozzle printers
Fixed spurious error message when G92 E0 is processed
Fixed Duet3D filament sensor data receive code
Device driver now supports Alligator board VID/PID
|
|
|
|
New and changed features:
- Experimental resume-after-power-failure support on Duet WiFi/Ethernet.
See
https://duet3d.com/wiki/Setting_up_to_resume_a_print_after_a_power_failure.
- Partly implemented bed levelling using multiple independent Z motors
(M671). See
https://duet3d.com/wiki/Bed_levelling_using_multiple_independent_Z_motors.
- If the G10 command is used to set the standby temperature of a tool
that is on standby, the live temperature is adjusted accordingly
- SCARA parameters configured using M669 now include X and Y bed origin
offsets
- Baby stepping is no longer cleared when you home the printer or probe
the bed
- The Y axis can now be mapped in a similar way to the X axis
- When the WiFi module is in access point mode, M122 displays the number
of connected clients (needs DuetWiFiServer 1.19beta9)
- The M305 command now uses the S parameter to set the heater name
instead of the H parameter
- The meaning of the first M669 crosstalk parameter for a SCARA printer
has changed. A zero value now means that the proximal motor does not
affect the proximal-to-distal arm angle.
- The CoreXY kinematics calculations have been changed to conform to the
way they are defined in other firmwares and at CoreXY.com. See the
important upgrade notes. The CoreXZ and CoreXYU kinematics have been
changed similarly.
- The maximum allowed target temperature for auto tuning now depends on
the configured maximum temperature for that heater
- The heater gain that provokes a warning when setting heater model
parameters with M307 or after auto tuning now depends on the configured
maximum temperature for that heater
Bug fixes:
- G2 and G3 arc movement commands didn't work when the X axis was mapped
- On an IDEX machine there was unwanted movement of the new tool after a
tool change occurred
- Duet WiFiServer 1.19-beta9: fixed a bug that sometimes caused WiFi
connection failures
- On the Duet WiFi, if the own access point parameters were configurds
but the list of remembered host access points was empty, the own access
point name appeared in the remembered list displayed by M587
- On a SCARA mnachine, sending G92 X0 Y0 caused the Duet to return
position data containing NaNs to Duet Web Control, which caused it to
disconnect
Upgrade notes:
- **Important!** On a CoreXY machine, you need to either swap the X and
Y motor connections, or set the Y axis factor to -1 in the M667 command.
Similarly for CoreXZ and CoreXYU machines.
|
|
Moved NetworkResponder and other common networking files from
DuetNG/DuetEthernet to DuetNG folder
Socket::ReadBuffer no longer marks the daya as taken, that has to be
done separately
More work on DuetWiFi new network interface
Started refactoring to more easily support SCARA and other new
kinematics
|
|
NOTE: only the DuetEthernet configuration will builds and run.
Refactored Webserver, Protocol Interpreter and NetworkTransaction
classes for Duet Ethernet to prepare for RTOS and interface more easilty
to the network socket interface used by the DuetEthernet network adapter
and the forthcoming new DuetWiFiServer firmware. FTP support not
implemented yet.
Increased default hot end temperature limit to 288C, to allow for E3D's
recommendatoin to heat to 285C when tightening nozzles
Added M42 to the list of gcodes that can be queued
|
|
Initial implementation of babysteppnig
Fixed some issues with file upload and FTP networking on Duet Ethernet
(but FTP notr working yet)
Pass the name of the firmware file to IAP
Duet Ethernet and Duet 085 now each have their own Webserver modules
|
|
Fixed divide by zero bug in LWIP (affected Duet 085 build only)
G29 S1 now clears bed transform before loading height map
M122 software reset data now includes a stack dump if the reason was a
hard fault
M122 now reports the type of bed compensation in use
|
|
Save several words of stsck after a hard fault and print them in the
M122 software reset report
Increased the maximum step frequency before the firmware switches to
double stepping
Added diagnostic test for timing the square root calculation
Minor firmware optimisations
|
|
Also corrected compiler settings for Duet 085 and RADDS builds
|
|
Removed O3 optimisation pragmas because they inhibited function
inlining, making performance worse
Implemented G2 and G3 commands, inclusing corkscrew moves
Firmware retraction/unretraction now defaults to 2.0/2.0 instead of
1.0/2.0
Bug fix: absolute extrusion didn't work when using a mixing tool
|
|
|
|
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
|
|
|
|
Changes for Duet Ethernet
Changes RADDS Pins.h to support 2 SD cards
|
|
Restructured directories and dded build configuration for Duet Ethernet
|
|
- 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
|
|
Merged in chrishamm's changes to support tmie stamping of uploaded files
(thanks chrishamm)
Added fan mapping in M563 command
|
|
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
|
|
Further optimisation of step generation ISR
Don't allow more than half the capacity of the DDA queue to be frozen
Duet WiFi: print additional info from WiFi module
|
|
Temporary fix for RTD temperature spikes causing failed prints
Added 'only if printing a file' condition in M581 command
Fixed M117 for PanelDue
Don't print extruder positions in M114 because they are always zero
Process M0 and M1 when in simulation mode
Allow setting of fan PWM from 50% upwards when a fan is in thermostatic
mode
Reduced default extruder heater PWM frequency
Axes are no longer homes when microstepping is changed
SD card interface speed is included in M122 output
|
|
Added support for M581 and M582 commands
M25 pause command can now be used inside a macro file to pause a file
being printed from SD card
Firmware update messages are now sent to USB and PanelDue (but the
existing PanelDue firmware doesn't display them)
Added gcode queue underrun counter, displayed in M122 Move diagnostic
info
M122 responses are now sent only to the comms channel that requested
them
Added support for additional firmware modules to be updated for Duet NG
Corrected a possible problem with multiple incompatible gcodes being
executed concurrently
Support H parameter on M0 and M1 commands
When executing M0/M1 commands and no print is paused, execute
stop.g/sleep.g if they exist
Treat M25 within the file being printed the same as M226
Added additional simulation modes to help identify bottlenecks
Don't disable all interrupts when starting a new move, to reduce
interrupt latency so that we can still receive data from PanelDue
Moved some utility maths functions to CoreNG
|
|
Enhancements
=========
Added support for RTD temperature sensors
When cancelling a print, if cancel.g exists then run it instead of
turning heaters off
Improved file upload speed over the web interface
Chamber heater is now exempted from timeout
Pressure advance now reduces maximum extruder jerk setting by a smaller
amount when the extruder steps/mm is high
The Duet no longer reports itself as an Arduino Due and has its own
Windows driver
Added experimental "maximum average printing acceleration" feature
Try to improve speed of getting file information in Print Monitor
Bug fixes
======
Simulation mode was not working properly
External driver support code sometimes failed to enable the associated
drives
Fixed potential overflow if a user attempted to use non-existent driver
9 on a Duet 0.6
M408 status requests were not handled when in simulation mode
Removed hard coded PATH in project
|
|
Fixed thermocouple support (needs latest CoreNG)
|
|
|
|
Changed to CoreNG
Implemented chrishamm's latest Network and Webserver changes, including
Telnet streaming
Added S parameter to M997 command for DuetNG
Increased file read block size to 2K when getting file info
|
|
Changed to use new core
Added build options for next generation Duet
When changing microstepping, update steps/mm automatically
|
|
|
|
Fixed incorrect parameters for un-retraction moves when z-hop,
orthogonal axis compensation and pressure advance are all enabled
Further refactoring of SD_HSMCI library in preparation for moving hsmci,
dmac and rtc modules into CoreDuet
|
|
Merged in chrishamm's latest changes
Implemented firmware retraction
|
|
Eliminated module SamNonDuePin because its functions are now provided in
CoreDuet
Use updated emac module in CoreDuet
|
|
Merged in chrishamm's changes to Network, PrintMonitor, and his support
for firmware updates from SD card
Fixed print monitor issue that threw out the layer count and time
estimates when there was an initial extruder priming move in the start
gcode
|
|
Switched to the new build system that doesn't need the Eclipse Arduino
plugin and uses the CoreDuet project instead of Arduino to provide
hardware support
|