Firmware wishlist and priorities for Duet WiFi and Duet Ethernet
-
@fotomas This already exists in the form of M0 and stop.g
; stop.g
; called when M0 (Stop) is run (e.g. when a print from SD card is cancelled)
; Also called by slicer end gcode by M0https://duet3d.dozuki.com/Wiki/Macros#Section_Pause_stop_and_power_fail
https://duet3d.dozuki.com/Wiki/GCode#Section_M0_Stop_or_Unconditional_stop
In my stop.g file I do all the end of print things like moving the head away from the print, maxing the part fan, turning off the heaters, etc. Then i the slicer end gcode I just have M0. That way whichever slicer I'm using stog.g gets used and I only have to make changes in one place. I do the same with start.g which gets run before a print starts.
-
No. 2 5 14. I would like to keep the G32 auto bed level as a fast check on anything moving when removing a stuck print. I have a CoreXY and it can slip the 2 motors out of position.
-
7, 10, 12, 14, 18,
would be my my wish list. However didn't put 4, 8, 19, 20 on my list as a think that is already working:
4 -> assigning 2 motors to one axis, separating them for homing and re-assembling them again with M584
8 -> M906 ..... I30 for current reduction
19 -> M80/M81 to turn ATX off
20 -> someting like M106 P2 T45:65 H100:101:102 .....Regarding better CNC support (12) my specific priorities would be:
- Safe tool-offsets and WCS so that they are still in place after restarting (similar to bed compensation)
- Modify M584 for tool measurement as I already proposed (implemented in my personal branch)
- Extend G30 with an S-3 option to allow for WCS probing (implemented in my personal branch)
- Allow macros to ask for input like position, tool-number, WCS-number....
- More frequent update of the position in the PanelDue / Webinterface (something like 10 HZ update frequency)
- Support for conditions, loops and parameters in Gcode
- Support canned cycles like G73-G89 in the form that they can be defined in e.g. G73.g ... files like for homing, cancel, resuming....
-
Ability to assign end stops to axes (especially useful for machines with "more than the norm" number of axes). Or more precisely the ability to assign end stops other than the default assignments.
Talking to Tony some time back when I was trying to get CoreXYUVnn (where nn could be AW) working, I'm fairly sure this is on the road map but it doesn't appear in this thread so I thought I'd mention it here so it doesn't get overlooked.
-
I don't know if it would be possible, but I would like to have Fanuc compatible gcode when in CNC mode. That would enable to use the vast majorities of CAM softwares available since all of them have a Fanuc post processor.
-
I thought Fanuc machines were rotary CNC machines - am I wrong?
-
@dc42 Fanuc is the standard in high quality CNC machine controllers, the are others, but Fanuc is the most used one.
They make controllers for mills and lathes, and also for all kinds of CNC machines (robots, press, EDM, wire EDM, etc...) -
@3doeste, can you list the most important Fanuc GCode commands that RRF doesn't yet support?
-
@dc42 I think the major difference is how G0 and G1 commands are used, since on industrial controllers you only used G0 and G1 once, and all the following blocks asume the last parameter until a G0 or G1 command is issue again. That allows for less data transfer (wich industrial controllers are the worst in this matter, specially older ones) and to separately tune rapid feed rates and cutting feed rates on the fly.
Canned cicles are useful but you can write all the cicle from the CAM itself, so no problem there.I attached a simple offset flat strategy, without arcs, so you can see how a Fanuc post looks like. In this case it has the block numbers, but they can be removed to decrease data transfer rates .
-
@3doeste said in Firmware wishlist and priorities for Duet WiFi and Duet Ethernet:
I think the major difference is how G0 and G1 commands are used, since on industrial controllers you only used G0 and G1 once, and all the following blocks asume the last parameter until a G0 or G1 command is issue again.
What you are saying is that you can just repeat the X and/or Y coordinates without repeating the G0 or G1 command. I'll add that to the firmware wishlist.
-
@dc42 That's right! After a G0 or G1, all the following coordinates use the last parameter, you can even change the feed without changing the G1 or G0 status (well, on industrial CNCs the G0 has no feed value, since it's given by the machine, and all you do is lower it by 50%, 25%, and to feed values).
-
@gavatron3000 said in Firmware wishlist and priorities for Duet WiFi and Duet Ethernet:
My wishlist:
Move axis till endstop or input reached. If not made by "X"mm then pause
Also be able to invert the endstop or input depending on desired conditionForgot to add this request is to help with making the MMU2 work as intended with respect to detecting loading and unloading issues. This way I run it with the duet electronics and not use the prusa Arduino.
Cheers
Gav -
@3doeste said in Firmware wishlist and priorities for Duet WiFi and Duet Ethernet:
@dc42 I think the major difference is how G0 and G1 commands are used, since on industrial controllers you only used G0 and G1 once, and all the following blocks asume the last parameter until a G0 or G1 command is issue again.
That is now supported in firmware 2.02RC7.
-
With the RTOS port I assume it's now easier to add additional background tasks to the firmware. When a print starts, could the firmware also start running a simulation in the background, and when complete that simulation time could be fed back to DWC/PanelDue for an additional (and presumably more accurate) print time estimate?
-
@daveidmx good idea, but the duet could run out of resources
-
@patakopecek said in Firmware wishlist and priorities for Duet WiFi and Duet Ethernet:
@daveidmx good idea, but the duet could run out of resources
That's the likely problem. The Duet 2 doesn't have enough RAM to run two instances of the Move subsystem. So we'd have to run the simulation while the Duet is sitting idle. Then we would have to either abandon the simulation if you send any commands to the Duet, or save enough state to be able to resume it later.
When a simulation completes, the simulated time is stored at the end of the file. PanelDue displays that time when you select the file.
-
-
My vote is:
- True bed levelling using 2, 3 or possibly 4 independently-driven Z motors and a Z probe.
- Automatic advance of changes in the colour mix when using a mixing hot end. See deckingman's blog.
- Support for PanelOne 20x4 text displays, or possibly 12864 mono graphics displays.
- Ability to update PanelDue firmware via the web interface.
- Ability to control an electronics cooling fan thermostatically based on CPU temperature and driver overheat warning.
Thanks for all you do for the community!
-
@snufkin said in Firmware wishlist and priorities for Duet WiFi and Duet Ethernet:
My vote is:
- True bed levelling using 2, 3 or possibly 4 independently-driven Z motors and a Z probe.
This one exists now. https://duet3d.dozuki.com/Wiki/Bed_levelling_using_multiple_independent_Z_motors
- Automatic advance of changes in the colour mix when using a mixing hot end. See deckingman's blog.
- Support for PanelOne 20x4 text displays, or possibly 12864 mono graphics displays.
The Duet Maestro supports 12864 displays. The other Duets lack the hardware needed. But there are other alternatives to the PanelDue now as well. Cheap tablets as a web interface or even a customized simplified interface. https://forum.duet3d.com/topic/9257/dueui-1-1-0-is-released
- Ability to update PanelDue firmware via the web interface.
Still on the wishlist.
- Ability to control an electronics cooling fan thermostatically based on CPU temperature and driver overheat warning.
This is now possible as well. https://duet3d.dozuki.com/Wiki/Mounting_and_cooling_the_board#Section_Cooling
Thanks for all you do for the community!
-
@dc42 I think this post needs deleting and updating