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
diff options
context:
space:
mode:
authorTony Lock <tony@duet3d.com>2022-01-27 20:37:15 +0300
committerGitHub <noreply@github.com>2022-01-27 20:37:15 +0300
commit869633baebac479833d6b096b2a25fab15f17fac (patch)
tree75e2bb29b3df1834541276212ee5484fd2afd137
parent2287bf172a0888512ee3b00c746bd70701a3b5a3 (diff)
Create 3.2.md
test for ReleaseNotes / Changelog access
-rw-r--r--ReleaseNotes/3.2.md184
1 files changed, 184 insertions, 0 deletions
diff --git a/ReleaseNotes/3.2.md b/ReleaseNotes/3.2.md
new file mode 100644
index 00000000..07bd529e
--- /dev/null
+++ b/ReleaseNotes/3.2.md
@@ -0,0 +1,184 @@
+Upgrading from a stable version earlier than 3.1.1? Please see the full changelog for previous stable versions of RRF here: https://github.com/Duet3D/RepRapFirmware/wiki/Changelog-RRF-3.x
+
+RepRapFirmware 3.2
+==================
+
+Upgrade notes (see also Object Model Changes if you use conditional GCode):
+- Default thermistor parameters for all builds of RRF3 are now: T100000 B4725 C7.06e-8. These match the thermistor used by E3D better than the old default, which had B4388 C0. In the unlikely event that your M308 line had a C parameter but no B parameter, you will need to add B4388 to get the previous behaviour.
+- If you are using object model field move.workspaceNumber in conditional GCode, you should preferably replace it by (move.workplaceNumber + 1). Note the different name, and that the new workplaceNumber is 0-based (so it can be used to index the workplaceOffsets arrays directly) whereas workspaceNumber was 1-based. We plan to remove workspaceNumber in a future release.
+- If you are using the M453 command to configure spindle motors and switch the firmware into CNC mode, you will need to change this command because the parameters have changed.
+- If you configure a Z probe using multiple M558 commands instead of a single one, you must make sure that only the first one has a P parameter. This is because M558 with a P parameter now sets default values before processing the other parameters of the M558 command.
+- In GCode commands, numeric parameters of the form "0xdddd" where dddd are hex digits are no longer supported. Use {0xdddd} instead.
+- It is no longer permitted to create a filament monitor using M591 and subsequently to use M584 to change the driver that the extruder is mapped to
+- The IAP files for this release have changed. After installing 3.2, the new IAP file will be needed next time you upgrade or downgrade the firmware. The new IAP files all have 'iap32' in the filename where it used to be 'iap', therefore they can coexist in /sys with the old IAP files.
+- The M303 heater tuning algorithm and parameters have changed. See https://duet3d.dozuki.com/Wiki/Gcode?revisionid=HEAD#Section_M303_Run_heater_tuning.
+- The M307 heater model parameters have changed, however existing M307 commands will continue to work. See https://duet3d.dozuki.com/Wiki/Gcode?
+- When new axes are created using M584, if no R parameter is specified then the default for axes ABCD is now rotational. Use the R0 parameter if you want them to be linear.
+- [DWC] If you are running DWC in a development environment (e.g. via 'npm run serve'), use M586 C"*" or similar to permit cross-origin HTTP access or similar to permit cross-origin HTTP access
+- [Duet + SBC] The SPI protocol has changed, therefore versions of DCS prior to 3.2RC1 will be unable to communicate with RRF 3.2
+- [Duet 3 + expansion/tool boards] You must update the expansion and/or tool board firmware to version 3.2 also
+- [Duet 3 MB6HC] if using an attached DotStar LED strip then you now need to use M150 with the X parameter to specify the LED strip type. This is because the default type is now Neopixel.
+
+Known issues:
+- [Duet + SBC + 12864 display] Menu files are slow to load
+- [Duet 3 + expansion/tool boards] A small number of EXP3HC expansion boards and even fewer TOOL1LC boards take a long time to start up after power up when running 3.2 firmware. The most common symptom is that some of the configuration commands for them in config.g fail. In rare cases, the status light may remain off for some time before it starts flashing to indicate CAN sync (slow flash) or lack of sync (fast flash). As a workaround until we produce a fix that works in all cases, we recommend (1) use a G4 S1 delay command in config.g before the first command that refers to a motor or port on any expansion board, and (2) if in any doubt, run M98 P"config.g" from the console after power up and check there are no error messages.
+- [Duet 3 + expansion/tool boards] If you use DAA (M593 command) and you have any extruders connected to expansion boards then steps may be lost on the motors connected to those expansion boards. This issue is also present in previous firmware revisions and is fixed in 3.3beta firmware.
+- [Duet 3 + expansion/tool boards] When high step rates are demanded from motors connected to expansion and tool boards, the motors may get out of sync with the main board. This issue is also present in previous firmware revisions and is fixed in 3.3beta firmware.
+- [Duet 3 + expansion/tool boards] If a laser, magnetic or pulsed filament monitor is connected to an expansion or tool board, then any E parameter in the M591 command to configure it is ignored. Fixed in 3.3beta firmware.
+
+New features:
+- A default filename is no longer provided in the M559 and M560 commands, so the P parameter must always be used
+- Added L (calibration factor) parameter to laser filament monitor configuration
+- Added M584 R parameter to indicate whether newly created axes are continuous rotation axes or not
+- Added aux port diagnostics (overrun and framing errors) to M122 report
+- Any attempt to use G28 within a homing file now results in a specific error message
+- CORS headers are only sent in HTTP responses if explicitly configured via M586. The M586 command now accepts a C parameter to specify the allowed cross-origin site.
+- Default thermistor parameters for all builds of RRF3 are now T100000 B4725 C7.06e-8. These match the thermistor used by E3D better than the old defaults.
+- Drivers number of the form 0.# where # represents one or more decimal digits are now supported even on board that don't support CAN
+- Duet 3 Mini 5+ WiFi and Ethernet boards are supported (PCB revisions 0.4 and later)
+- G29 with no S parameter now runs file sys/mesh.g if it exists; otherwise it behaves like G29 S0 as before
+- If a filament error occurs, RepRapFirmware now tries to run file sys/filament-error#.g where # is the extruder number in minimum-width format; or if that file is not found then file sys/filament-error.g. If neither file is found then it falls back to running sys/pause.g.
+- If a filament monitor is configured for an extruder, and subsequently M584 is used to assign that extruder to a different driver, then the filament monitor will be deleted automatically and a warning issued
+- If a tool change is requested but changing tool would cause the Z max limit to be exceeded because of the changed tool Z offset, the tool change is now aborted
+- If the system runs out of memory, it will now reset and the Last Software Reset Reason reported by M122 will be "OutOfMemory"
+- Improved the instructions displayed when M303 heater tuning finishes
+- Increased the number of stack words displayed in the software reset data. The number of wear-levelling slots stored is reduced from 4 to 3.
+- It is no longer necessary to separate multiple G- or M-commands on a single line with a space or tab character
+- M111 supports CAN module debug
+- M118 has a new Lnnn parameter to specify at which log level the message will be logged (default: DEBUG). Using L0 will prevent a message being copied to the log file.
+- M122 for expansion and tool boards now reports the bootloader version, if available
+- M150 commands are now queued to sync them with movement commands
+- M308 S# H999 and L999 are now supported on those Duet 3 expansion/tool boards that have the required hardware support
+- M453 and M452 no longer report the new machine mode. Use M450 after these commands if you want the machine mode to be reported.
+- M486 now confirms when an object is cancelled or resumed
+- M558 with a P parameter now always creates a new Z probe object, which means that all the other M558 values are set to default values before processing the other M558 parameters
+- M571 command accepts Q as an alternative to F for the PWM frequency
+- M581 trigger condition parameter now supports a new value R2 which means trigger only if not printing from SD card
+- M584 commands are now checked for out-of-range driver numbers
+- M584 has a new S parameter which specifies whether new axes created in the command are to be treated as linear (S0) or rotational (S1) for the purpose of feedrate calculation. This is separate from the R parameter, which specifies whether new axes are rotational or not. The default is to treat linear axes as linear and rotational axes as rotational. You only need to provide the S parameter if you want to change the way that the feed rate is applied.
+- M591 may now be used to delete a filament monitor using the syntax M591 D# P0 where # is the extruder number
+- M906, M913 and M918 commands now wait for movement to stop, except when they are used in the power fail script
+- M929 now uses the S parameter to specify a logging level: 0=off (as previously no logging), 1=warn (all previous logged messages are in this category), 2=info (M117, M291, M292 and G10 fall into this category), 3=debug (everything else that generates output)
+- New M595 command is provided to allow the movement queue to be lengthened and optionally to pre-allocate DriveMovement objects
+- Numeric literals in GCode meta commands and in expressions enclosed by { } can now be in hex (0x prefix) or binary (0b prefix)
+- Previously there was a minimum reading cutoff at -5C when measuring temperatures using any kind of thermistor. That cutoff is now relaxed when using a low-resistance thermistor, e.g. with resistance 1K or 10K @25C.
+- Support for connecting the Ethernet adapter socket of Duet Ethernet to SBC instead, using a separate firmware build
+- Support for ST7567-based 12864 displays on Duet Maestro and Duet WiFi (thanks to SchmartMaker for writing the ST7567 driver code)
+- Support for ST7920-based 12864 displays on Duet WiFi/Ethernet
+- Supports PanelDue 3.2 better, in particular updating of displayed data while waiting for heating etc.
+- The M122 P102 and M122 P103 timing functions are more accurate and give more consistent results than in previous firmware versions
+- The M203 command now supports an optional S1 parameter which changes the units to mm/sec. The default is still mm/min.
+- The amount of free RAM has been increased. This should be sufficient to allow 12864 displays to be supported on Duet WiFi/Ethernet.
+- The minimum value for the P parameter of M584 is reduced from 3 to 2 so that the Z axis can be hidden
+- The number of DriveMovement objects pre-allocated is reduced to save memory. If the system runs out of DriveMovement objects, it will try to allocate new ones dynamically.
+- The order in which you use M307, M140, M141 and M143 is now immaterial
+- The parameters for M453 have changed. The frequency parameter is now Q (to match M950) instead of F. You can configure up to 3 ports to control each spindle. See https://duet3d.dozuki.com/Wiki/Gcode#Section_M453_in_RepRapFirmware_3_2_and_later.
+- The resurrect.g file now records which objects on the build plate have been cancelled
+- The speed of processing of GCodes received from USB has been improved, to match the speed of processing GCodes read from the SD card
+- Version 3 PanelDue boards (including all PanelDue 5i/7i) can now be updated from the Duet using M997 S4
+- When an unexpected software reset occurs, a stack usage check is performed and the result added to the software reset data
+- When new axes are created using M584, if no R parameter is specified then the default for axes ABCD is now rotational. Use the R0 parameter if you want them to be linear.
+- WiFi diagnostics now include the WiFi connection mode (needs DuetWiFiServer 1.25beta0)
+- Z probe trigger height second order temperature compensation is now supported. To use it, specify a 2-element array as the temperature coefficient, e.g. "M558 ... C0.01:0.0005".
+- [Duet + SBC] 12864 displays are now supported. Note, the 'files' menu item type is not supported in SBC mode.
+- [Duet + SBC] RepRapFirmware no longer goes into SBC mode if a SD card is inserted but can't be mounted, or if config.g is not found. This is to make diagnosis of SD card interface faults easier.
+- [Duet 2 Ethernet/WiFi/Maestro] Duet 2 builds now permit port names to have a "0." prefix, e.g. "0.e0heat". The "0." prefix is ignored.
+- [Duet 3 + expansion/tool boards] Expansion and tool boards can now have their bootloaders updated via CAN using the command M997 B# S3 where # is the board address. The bootloader file is Duet3Bootloader-SAME5x.bin for the EXP3HC board, Duet3Bootloader-SAMC21.bin for the other expansion boards by Duet3D, and Duet3Bootloader-SAMMYC21.bin for the Sammy-C21 development board. These files are available at https://github.com/Duet3D/Duet3Bootloader/releases.
+- [Duet 3 + expansion/tool boards] Filament monitors are now supported on Duet 3 expansion and tool boards. A filament monitor must be connected to the board that drives the extruder that it monitors.
+- [Duet 3 expansion and tool boards] Added M122 P102, P1005 and P1006 functions
+- [Duet 3 expansion and tool boards] Increased performance, in particular the maximum step rate is higher than before
+- [Duet 3 expansion and tool boards] Software reset data is now stored in NVRAM and reported by M122
+- [Duet 3 tool boards] Stepper driver diagnostics now include the PWM_AUTO register (main board diagnostics did already)
+- [Duet 3] Added support for second UART (using the IO_1 pins) on Duet 3 MB6HC. New message type (P5) added to M118 command.
+- [Duet 3] CAN diagnostics on both main and tool/expansion boards provide more data
+- [Duet 3] Default LED strip type is now Neopixel not DotStar
+- [Duet 3] M915 with just P and/or axis parameters now reports the belt speed in mm/sec that corresponds to the coolStep threshold
+- [Duet 3] Z probing is now abandoned if the probe is remote and cannot be contacted
+- [Duet Maestro and Duet 3] Added M308 S# H999 for open-circuit thermistor input calibration, and M308 S# L999 for short-circuit calibration. The calibration values are stored in non-volatile memory. See https://duet3d.dozuki.com/Wiki/Calibrating_thermistor_and_PT1000_readings.
+- [Duet Maestro] M308 L and H parameters are now supported.
+- [Duet+PanelDue] Status messages are sent to an attached PanelDue running firmware 3.2 during homing, heating tools etc.
+
+Object model changes:
+- Added calibrationFactor to the laser filament monitor object model
+- Added lastStopHeight to the Z probe object model
+- Added minRpm to the spindle object model
+- Added move.workplaceNumber to the object model. This is intended to replace move.workspaceNumber, but is 0-based instead of 1-based.
+- Added random(nn) function
+- Added state.msUpTime. This is the milliseconds part of upTime. When using the HTTP rr_model call or the M409 command, if the response includes both state.upTime and state.msUpTime then these two values both relate to the same instant when the command started searching the object model.
+- Added temperatureCoefficients array to the Z probe object model. For backwards compatibility, temperatureCoefficient is still supported for the time being and is equivalent to temperatureCoefficients[0]. We plan to remove temperatureCoefficient in a future release.
+- All types of filament monitors have a new field "status". The value is one of "noMonitor", "ok", "noDataReceived", "noFilament", "tooLittleMovement", "tooMuchMovement", "sensorError".
+- Field "filamentPresent" is removed from those types of filament monitor that previously supported it. Use "status" instead.
+- Field "move.axes[].homed" is no longer flagged live, and it now remains the true homed status during a simulation
+- Field "supports12864" in boards[0] has been renamed to "supportsDirectDisplay"
+- Laser, rotating magnet and pulsed filament still support the "calibrated" fields, but only for filament monitors connected to the main board
+- Spindle current/configured/max RPM were being output to 7 decimal places in object model queries. Now they are reported as integers.
+- Support DateTime - DateTime, DateTime + int, DateTime - int
+- Support T{expression} commands
+- Support comparing a value of any type that has no literals (DateTime, IPAddress, MAC address, DriverID) with a string
+- Variable boards[n] for expansion boards now includes the maxMotors value
+
+Bug fixes:
+- A M591 command with the C parameter not followed by a port name string caused the firmware to reset
+- A layer change was detected incorrectly if a travel move at an unusual height included retraction
+- After updating PanelDue firmware with M997 S4 the PanelDue did not always reset automatically
+- At the very end of a print job, RRF sometimes briefly reported a bad file position, which caused DWC to report a very high % completed
+- Duet 3 Mini only: certain types of error accessing the SD card would cause the firmware to reset due to "Stuck in spin loop".
+- Feed rate calculations did not confirm to the NIST standard when the Z axis and one or more rotational axes were moving, but not X or Y. This affected CNC machines with rotational axes, and OpenPnP.
+- Fixed a buffer overflow when the number of filaments reported by PrusaSlic3r exceeds the maximum number of supported extruders
+- Fixed bug in GetProportionDone that might have caused an incorrect extrusion amount for the first move after restarting a print following a power failure
+- Fixed crash that occurred on some systems when M918 was used to configure a 12864 display but no SD card was present
+- Fixed issue with G29 S1 on Duet 3 with attached SBC causing the print to fail if any if the probe points had been unreachable when the height map was probed
+- G2 and G3 commands with R parameter always drew the longer of the two possible arcs. Now they draw the shorter one if the R parameter is positive, or the longer one if it is negative.
+- G92 Znn didn't clear zDatumSetByProbing
+- G92 commands incremented seqs.move when they didn't need to
+- If M918 was run multiple times, available RAM was lost because of a memory leak
+- If M997 S4 was used but no aux port was configured, the firmware could reset after 20 seconds
+- If a G31 command defined new values in terms of existing G31 values from the object model, then incorrect values could be set due to the new values being computed and stored multiple times
+- If a TMC22xx driver received two commands to enable/disable the drive or change microstepping twice in very quick succession, the second one was sometimes lost
+- If bed compensation taper (M376) was used, bed compensation was not applied correctly if the tool had a Z offset
+- In M122 reports, queued GCodes were printed with spurious characters after each command
+- In Marlin mode, "ok" was returned per-command instead of per line of GCode
+- In RepRapFirmware mode, empty responses to commands were not suppressed. They are now suppressed except when the command came from HTTP or SBC.
+- Incorrect M307 default parameters were used for bed and chamber heaters
+- Laser and magnetic filament monitors paused the print even when disabled if no data was received or the sensor reported an error
+- Loading IAP during a firmware upgrade might fail on Duet 2 if a filament monitor or fan tacho was active
+- M118 P0 didn't append newline when the message was sent to USB and Telnet
+- M669 K5 reported that the kinematics matrix was invalid
+- M918 P0 reported an error instead of just deleting any existing display
+- Object model variable seqs.spindles was not updated when the configuredRpm of a spindle was changed
+- PanelDue was not updated while the firmware was waiting for a heating or delay command to complete
+- Some types of underrun in the movement queue were not reported
+- The Error Status word was incorrectly prefixed by 0x02 in beta1 instead of just 0x
+- The M409 response didn't end in newline and was invalid JSON if RRF ran out of output buffers. Now RRF returns {"err":-1} if it runs out of buffers, and the response is always terminated by newline to help clients recover from errors.
+- The PWM frequency for heaters was supposed to be limited to 1KHz but this check was no longer being performed
+- The handling of out-of-buffer situations when generating HTP responses has been improved. Where a JSON response was expected, RRF will generally now return {"err":-1} if there was insufficient buffer space to satisfy the request.
+- The output from M207 without parameters was truncated when there were 4 or more tools
+- When a GCode file included very short moves, sometimes the print paused for a time (sometimes a very long time) at that point
+- When doing a simple G30 command the the probe type was BLTouch, the deploy and retract macro files were each run twice
+- When the machine was executing resume.g, the 'resuming' status was not reported in the object model
+- [Duet + SBC] Fixed several issues with communication between the Duet and the SBC
+- [Duet 2 or 3 with attached SBC only] The height map parameters passed by the SBC were not range-checked
+- [Duet 3 + SBC] When file daemon.g was requested, spurious warning messages could be displayed
+- [Duet 3 + expansion/tool boards] The idle timeout was not always applied to remote drives, in particular to extruder drives
+- [Duet 3 MB6HC + expansion/tool boards] Sometimes the main board would not receive status messages from expansion and tool boards after power up unless it was reset by M999 or emergency stop
+- [Duet 3 MB6HC] A watchdog timeout didn't save any software reset data
+- [Duet 3 MB6HC] Fixed an issue that very occasionally caused a MemoryProtectionFault from the Ethernet task
+- [Duet 3 MB6HC] The second aux port using the IO_1 connector did not work
+- [Duet 3 expansion and tool boards] Thermostatic fans connected to expansion/tool boards would occasionally blip spuriously
+- [Duet 3 with attached SBC] When an array parameter (e.g. M92 E value) had more than one element but less than the maximum number, the last element was replicated to fill the array. This was inconsistent with non-SBC behaviour, which only pads the array when a single element is provided.
+- [Duet 3] DHCP requests were being made made much too often when the DHCP lease time was long e.g. 1 hour or more
+- [Duet 3] Fixed a bug that caused strange behaviour during homing in some configurations when axis motors were connected to expansion boards
+- [Duet 3] M915 with just P and/or axis parameters did not report the coolStep threshold (T parameter) correctly
+- [Duet 3] When using a LinearAnalog sensor, the readings returned were too high above the minimum reading by a factor of 4
+- [Duet 3 Mini + CAN, also EXP3HC] Fixed missing cache invalidate after receiving a CAN message
+- [Duet 3 + SBC] When attached to a SBC, M29 commands received locally are now sent to the SBC for processing
+- [Duet + SBC] A buffer overflow might occur in the SBC interface code under conditions of heavy traffic
+- [Duet + SBC] When nested macros were used, commands were sometimes executed out-of-order
+- [LPC/STM port, might affect Duets in rare situations] If hiccups occurred frequently and there was other activity in the system causing frequent high-priority interrupts, a watchdog timeout could occur
+
+Other improvements and changes:
+- Calls to debugPrintf use less stack than before
+- Efficiency improvements to TMC2208/2209/2224 drivers for both main and tool boards
+- Substantial performance improvements and much higher maximum step rates on Duet 3 MB6HC, EXP3HC and TOOL1LC boards
+- In the M122 report, unused stack for each task is now reported in dwords, not bytes
+- [Duet 3] CAN diagnostics have been improved