Current firmware wishlist
-
As the firmware wishlist is so long now, I now keep it in the github RepRapFirmware project, at https://github.com/dc42/RepRapFirmware/blob/dev/src/BugList.txt. Here is the current one.
Todo before 2.02 release:
- [done] Step clock on Duet Maestro going backwards, https://forum.duet3d.com/topic/8264/steptimer-getinterruptclocks-isn-t-incrementing
- Investigate Duet Maestro socket behaviour when cable disconnected, see email from chris
2.03:
- Object model
- Conditionals, loops and maths in GCode commands
- S-curve acceleration
- Endstop assignment, including option for 1 endstop per motor
- Faster file upload?
- Some features from the list below
Future:
- New DuetWiFiServer using RTOS and a later Expressiv SDK version
- Remove string allocation from ActOnMCode to save stack space
- Easier way to support multiple endstops on axes (combine with facility to reassign endstop inputs)
- Junction deviation instead of jerk? Probably combine with S-curve acceleration.
- Add I2C success count to I2C stats
- Run script if thermal error? https://forum.duet3d.com/topic/8038/suggestion-run-script-in-case-of-thermal-error
- Run script on filament error?
- Option for an endstop input to trigger an emergency pause
- Count steps until homing switch is triggered compared to original, https://forum.duet3d.com/topic/8017/request-check-for-lost-steps
- In CNC or laser mode, don't segment G0 moves for mesh bed compensation, https://forum.duet3d.com/topic/7728/go-vs-g1-movement/11
- Z homing switch offset in M208 or elsewhere, https://forum.duet3d.com/topic/7767/z-offset-is-negated-in-homing-g-macro
- After looking for G1 Z commands to find object height in gcode file analyser, check that there is extrusion after it
- M260 allow bytes to be specified in hex, more generally allow hex anywhere?
- Auto mount SD card when it is inserted
- Option to set an idle timer, https://forum.duet3d.com/topic/7758/configuring-idle-timeout
- Extruder motion until filament sensor senses motion stopped?
- Allow jerk between printing and non-printing moves, so that coast-to-end works? already made a change for coast-to-end.
- Error handling in [variable] parser in GCodeBuffer class
- WiFi auto reconnect should not log all unsuccessful connection attempts, just the first one
- Option to send M280 servo commands just a few times instead of continuously
- M3 R parameter so it can restore the spindle/laser after a pause (https://forum.duet3d.com/topic/5418/cnc-laser-m3-unpause-r-parameter)
- Adjust laser power during acceleration/deceleration
- First layer segmentation, to help with baby stepping? Or another way to implement live babystepping?
- Object model variables in 12864 display menus
- CNC shutdown when movement outside limits attempted not working well, https://forum.duet3d.com/topic/6186/stable-firmware-2-01-duet-2-and-1-22-duet-06-085-released/55
- Better dead time measurement during auto tuning. Measure both turn-on and turn-off?
- Feedforward heater control for fan and extrusion speed changes
- If wifi module gets stuck in starting or changing mode state, reset it again
- At the end of a simulation, restore the original workplace coordinate selection
- CNC: look at G17/18/19, see https://forum.duet3d.com/topic/4669/ooznest-workbee-screw-driven
- Option in M92 to specify what microstepping the values are specified at, https://forum.duet3d.com/topic/8225/m92-parameter-to-indicate-microstepping/4
- Trigger option to do emergency pause? https://forum.duet3d.com/topic/7846/pause-and-store-print-state-on-network-signal-ups/4
- Allow extruder movement in tpre? https://forum.duet3d.com/topic/7263/controlling-stepper-motors-via-drive-numbers-eg-g1-d4-700-f100/4
- M207 per-tool values, https://forum.duet3d.com/topic/6855/add-drive-extruder-parameter-to-m207/6
- Command to copy output from the following commands to the log file?
- Track which devices use which pins
- Hangprinter PRs
- PR to have any enabled driver report 50C
- Alternative G10 command to set offsets from known current tool position, see https://forum.duet3d.com/topic/6465/g92-g10-m585-for-setting-head-position-not-machine-position/4
- Keep sending M408 responses to PanelDue while waiting for movement to complete, or M400 or homing move or similar
- Extra logging? [did some extra in 2.02RC3] https://forum.duet3d.com/topic/7103/extend-m929-logging-capabilities/5
- Danny's modified SCARA kinematics (workpiece is on a plate, extruder is fixed)
- Look at pushover notification support, https://forum.duet3d.com/topic/169/notification-via-pushover-or-other-service/45
- M81: don't give low voltage warnings when main power has just been turned off
- M81: option to invert polarity?
- Add S4 option to G1 command, like S1 but no endstop checks (needed for CoreXY, CoreXZ)
- M569 command to allow selection of smart/dumb driver (including on Duet M), also allow all 12 drivers to be smart
- Apostrophe in quoted filename: can we make apostrophe special in SSIDs/passwords but not filenames?
- M140 command to set default bed heaters for M140 S commands (e.g. M140 P0:1:2)
- Consider: Heater faults to run M81 even when not doing a build (https://forum.duet3d.com/topic/6225/configure-action-on-heater-fault/7)
- Option to repeat G32 until deviation/leadscrew adjustment is below a threshold or a retry count reached (and allow for probing failures)
- Macro option when a motor stall is detected, https://forum.duet3d.com/topic/7026/more-options-for-stall-detection
- Update PanelDue firmware via Duet
- Use Heat task to read DHT sensors?
- Add option R4 to M915 command, to do an emergency stop (useful for Z motor)
- GCodes corresponding to rr_move and rr_mkdir, https://forum.duet3d.com/topic/5470/firmware-2-0rc6-and-1-21-1rc6-released/13
- support G12 clean tool?
- Add fan PWM limit, https://forum.duet3d.com/topic/5370/m106-feature-request-limit-max-pwm-parameter/4
- after homing, warn if outside M208 movement limits on SCARA, polar etc.
- Unexpected heaters off/tool selection behaviour, https://www.duet3d.com/forum/thread.php?pid=43059#p43059
- warn when using : where ; was probably meant
- Error message if you attempt movement with VIN < minimum
- When VIN power too low and stepper drivers turned off, flag axes as not homed?
- min/max RSSI display?
- report RSSI in M552?
- Auto mount main SD card when inserted
- Add warning message when print exceeds bounds
- When uploading while a file is being printed, don't allow the currently-printing file to be replaced
- Option to send stall warning messages when not printing from SD card, https://forum.duet3d.com/topic/6720/stall-protection-on-pyserial-print
- Custom macros to execute on stall detection, including extruder stall detection https://forum.duet3d.com/topic/6730/stall-detection-custom-actions
- When Z probe readings are out of tolerance, display the lowest difference seen between consecutive readings?
- dual extrusion layer counting, see https://www.duet3d.com/forum/thread.php?pid=34816#p34816
- M140/M190 with no P parameter sets all bed heater temperatures (same for M141/M191)
- M291 to lock movement and wait for it to finish?
- Bug: https://www.duet3d.com/forum/thread.php?pid=34772#p34772 (needs RRF fix too?)
- configurable minimum extrusion temperature (per extruder?)
- case-insensitive http headers
- Send reduce power command to PanelDue when main power turned off?
- Option to not broadcast SSID?
- Support faster homing by using interrupts to check homing switch states
- Allow manual bed probing to be aborted
- Don't do pressure advance during accel/decel of sequences of short segments
- Add T parameter to M207
- look at supporting SIZE in FTP
- Make mp.delta.hmz0sK, hmz0scK and dsk 64-bit in SAM4E versions, to increase movement limit - also increase K2?