Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Duet3D/RepRapFirmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-04-10Again more RTOS workDavid Crocker
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
2018-04-04More RTOS work againDavid Crocker
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.
2018-04-03Network now a separate taskDavid Crocker
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
2018-04-02More RTOS workDavid Crocker
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,
2018-04-01More RTOS workDavid Crocker
Refactored mutex and task interface Output channels, tool list and message box data are now thread safe
2018-04-01More RTOS workDavid Crocker
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
2018-03-30Thread safe file systemDavid Crocker
Various changes to maske the filesystem thread safe
2018-03-26Finish merging changes from dev branchDavid Crocker
2018-03-24Merged changes from dev branch as at version 1.21David Crocker
2018-03-11Version 1.21RC4(11b1)David Crocker
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
2018-02-28Version 1.21RC3David Crocker
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
2018-02-04Towards 1.21RC2David Crocker
Refactored some string handling Fixes for Duet 2M
2018-01-22Towards version 1.21RC1David Crocker
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
2017-12-31Verison 1.20.1RC1David Crocker
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
2017-12-13Version 1.20RC1David Crocker
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)
2017-12-09Version 1.20RC1David Crocker
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
2017-12-02Version 1.20beta11+2David Crocker
Merged in changes from dev branch
2017-11-09Towards 1.20beta7David Crocker
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
2017-10-26Version 1.20beta2David Crocker
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
2017-10-02Version 1.20beta1David Crocker
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
2017-09-22Version 1.20alpha3David Crocker
Upgraded compiler Floading point constants now default to single-precision Changed to hardware floating point ABI on Cortex-M4 targets
2017-09-21Version 1.20 alpha 2David Crocker
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
2017-08-30Version 1.19+5David Crocker
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.
2017-08-01Towards 1.19beta12David Crocker
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
2017-08-01Support for binary write for M559 and M560 (#125)Can Geliş
* 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
2017-07-24Version 1.19beta10+4David Crocker
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
2017-07-19Version 1.19beta10+1David Crocker
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
2017-07-18Release 1.19beta10David Crocker
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.
2017-06-16Version 1.18.2David Crocker
Support new production DueX5 and DueX2 boards and Fan 8 Fix M21 Queue M42 commands Fix M106 incorrect P parameter check
2017-05-21Version 1.19beta1David Crocker
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
2017-05-09Version 1.19.2David Crocker
Major refactoring to make it easier to support additional kinematics. Added M669 command to select and configure Scara kinematics
2017-05-04Release 1.19alphaDavid Crocker
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
2017-03-28Version 1.18RC1David Crocker
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
2016-12-25Reduced header file couplingDavid Crocker
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
2016-12-21Version 1.17RC3David Crocker
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
2016-12-12Version 1.17rc1David Crocker
- 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
2016-12-07Version 1.17dev7David Crocker
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
2016-11-19Version 1.17dev4David Crocker
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
2016-11-05Version 1.16rc2David Crocker
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
2016-11-03Version 1.16rc1David Crocker
Merged in chrishamm's changes to support tmie stamping of uploaded files (thanks chrishamm) Added fan mapping in M563 command
2016-09-07Version 1.15cDavid Crocker
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
2016-08-20One the way to 1.15rc3David Crocker
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
2016-08-20Version 1.15rc2David Crocker
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