Duet WiFi firmware new feature priorities
-
Hi beta testers,
I have quite a long list of firmware improvements to make, listed below in no particular order. So that I can judge what you folks want the most, please can you select up to 5 improvements you care about the most, and put those in priority order, with 1 being the most important to you. Some of these are inter-dependent, but I won't go into details at this time.
A. Higher stepper motor current (above 2A). Requires implementation of at least standstill current reduction and driver temperature monitoring.
B. Multi-threaded web server, capable of supporting several concurrent connections even when one of them is uploading a file. May also increase the speed of file uploading a little.
C. Predictive temperature control. This will replace PID. Probably the main benefit is that it will have a simple and fast auto tune procedure.implemented in version 1.15D. Support for PanelOne and similar 20x4 text displays, not including the SD card socket - see next item.
E. Support for an external SD card socket, such as the one on PanelOne and the one usually present on displays used with PanelDue. The file upload speed to this card will be much lower than to the built-in SDHC card, so the main use will be if you want to write files to an SD card on a PC and then move it to the printer.implemented in version 1.14F. Support for multiple independent X carriages. The common case is two heads moving on the same rods or rails, which park themselves at opposite ends when not in use.
G. Support for three independently-controlled Z motors, normally moved in sync but moved independently when performing bed leveling (and I really do mean bed levelling, not bed compensation).
H. Grid-based bed compensation, for dealing with beds or printing planes that are not flat.
I. Faster microstepping, without going to dynamically-varying microstepping. Perhaps a 50% speed improvement will be possible.implemented in version 1.14J. Dynamically-varying microstepping, allowing true 256x microstepping at low speeds, with microstepping automatically reduced for faster moves.
K. Support for a config-override.g file on the SD card, which saves certain settings that you enter, to include delta radius and endstop corrections. This will replace the NVRAM settings, which don't work on the Duet WiFi because of a limitation of the SAM4E (they could be made to work but I think config-override.g is a better solution).
L. Faster file upload speed to the SDHC card, perhaps we can achieve 2 or 3 Mbytes/sec.
M. Babystepping, i.e. ability to change where the printer thinks Z=0 is in small steps during a print.
N. Support for driving RC servos and related devices. Some servos may need a 5V control signal and not accept a 3.3V one, so this isn't necessarily just a firmware issue.
O. Support for restore points. This would allow the print to be paused, a restore point created, and the printer shut down - either automatically because of power failure (although a UPS or SLA battery would be needed to power the printer for a few seconds), or manually. Then the printer could be re-started and the print continued from the same point. Only practical for 3D printers that can be re-homed when there is a print on the bed, or for which the motors can be relied upon to retain their positions if they are shut down at an appropriate full step position.
P. Control over which access point the Duet WiFi connects to, via the USB port, and perhaps from PanelDue as well.
Q. Better web interface security, including logon IDs and passwords that are not sent over WiFi in clear text even when using an unsecured WiFi network, and passwords that cannot be retrieved from the printer via the web interface. IMO this is essential if you want to expose your printer to the internet by opening a port on your router, or you want to use the Duet WiFi on an unsecured wireless network.
R. Support to compensate for axis hysteresis in the motion control.
S. Anything else?
-
I'll bite.
1. Grid-based bed compensation
2. Faster microstepping
3. Dynamically-varying microstepping
4. Support for a config-override.g file
5. Predictive temperature control -
1. Babystepping
2. Support for a config-override.g file
3. Better web interface security
4. Faster file uploadIs the grid based system good on deltas? Or does the calibration routine for deltas negate this?
If its good for deltas then the grid based system for #5, if not then predictive temperature control -
Hi David.
1. Support for restore points
2. Faster microstepping
3. Dynamically-varying microstepping
4. Predictive temperature control
5. Support for a config-override.g file -
I'm not a beta tester but my twopence worth would be:
1 = G
2 = A
3 = C
4 = I -
Thanks for the opportunity to provide input! Multiple x carriages I had on my mind to ask you about, I'm glad you are thinking of it.
- F. Support for multiple independent X carriages.
- M. Babystepping
- A. Higher stepper motor current
- I. Faster microstepping (not sure what the difference is between this and varied microstepping, but this sounds easier/more practical to implement perhaps.
- L. Faster file upload speed
-
Agreed, Many thanks for the chance to have input.
Top5 to assist in testing at least.B. Multi-threaded Web server, might seem trivial but in this multi device world multi connections are more likely than not.
C. Predictive Temperature Control - PID tuning manually is a pita
A. Higher Stepper Current - but more because it gets driver temperature monitoring.
J. Dynamically vary microstep - if it works it could solve a lot of speed versus precision arguments at least
S. anything else - support for dual (or more) simultaneous extrude outputs to enable two objects narrower than the nozzle spacing to be printed at the same time
or CNC supportI don't expect S to make it in anytime soon but would love it on the future list and would cause me to build a Cartesian/corexy.
-
Hi Aussiephil, you should already be able to print multiple identical objects at the same time. Configure a single tool using both nozzles, enable mixing, and set the mixing ratio to 1:1.
-
Hi Aussiephil, you should already be able to print multiple identical objects at the same time. Configure a single tool using both nozzles, enable mixing, and set the mixing ratio to 1:1.
Oh very cool, never thought of that, I guess the request then becomes "anyway to make it simplified from an end user viewpoint" ie, Mxxx 0 = single, Mxxx 1 = ditto.
That would allow you to even embed it in the sliced gcode.Thanks David.
Phil
-
David
My list would be
1 J
2 K
3 A
4 M
5 G (May get me started on the CoreXY Again)Almost got my Beta ready to go should be able to start testing this evening
Doug
-
Hi Aussiephil, you should already be able to print multiple identical objects at the same time. Configure a single tool using both nozzles, enable mixing, and set the mixing ratio to 1:1.
Oh very cool, never thought of that, I guess the request then becomes "anyway to make it simplified from an end user viewpoint" ie, Mxxx 0 = single, Mxxx 1 = ditto.
That would allow you to even embed it in the sliced gcode.You can already embed it in the sliced gcode, all you need there is a T command to select which print tool you want, e.g. T0 = first print head, T1 = second print head, T2 = both print heads.
-
sorry to pull the discussion off topic, thanks. That has finally sunk in.
-
For large printers, all the bed stuff.
- Three Z motors
- Grid leveling
- Babystepping (maybe some clever way to handle this better than other firmwares, like a simple option to remember the offset)
Other stuff
4) Predictive temp control (what kind of algorithm are you thinking about using?)
5) Restore points -
- Predictive temperature control
- Faster and varying Microstepping
- Bed grid levelling
- Multi X carriage control
- Config-override support
Plus the rest if they can be fitted in
-
I know my list is longer than 5, but wanted to share my thoughts. I tried to put in order of priority. As always, safety and performance need to happen first so IMO, the heater control is the top of the list. Next is interface security. I think in the industry this is far overlooked. To have this project come out with proper security suitable for corporate networks is key if you want me to promote web based and networking printer controllers to the larger community. Again, this is where you can trump the competition hands down. We already have decent performance and features. I'm all about improving them and love pushing the edge, but I want to see a product that is done right, and key is understanding corporate networks and school networks for wide adoption.
C. Predictive temperature control. This will replace PID. Probably the main benefit is that it will have a simple and fast auto tune procedure.
Q. Better web interface security, including logon IDs and passwords that are not sent over WiFi in clear text even when using an unsecured WiFi network, and passwords that cannot be retrieved from the printer via the web interface. IMO this is essential if you want to expose your printer to the internet by opening a port on your router, or you want to use the Duet WiFi on an unsecured wireless network.
H. Grid-based bed compensation, for dealing with beds or printing planes that are not flat.
O. Support for restore points. This would allow the print to be paused, a restore point created, and the printer shut down - either automatically because of power failure (although a UPS or SLA battery would be needed to power the printer for a few seconds), or manually. Then the printer could be re-started and the print continued from the same point. Only practical for 3D printers that can be re-homed when there is a print on the bed, or for which the motors can be relied upon to retain their positions if they are shut down at an appropriate full step position.
B. Multi-threaded web server, capable of supporting several concurrent connections even when one of them is uploading a file. May also increase the speed of file uploading a little.
D. Support for PanelOne and similar 20x4 text displays, not including the SD card socket - see next item.
E. Support for an external SD card socket, such as the one on PanelOne and the one usually present on displays used with PanelDue. The file upload speed to this card will be much lower than to the built-in SDHC card, so the main use will be if you want to write files to an SD card on a PC and then move it to the printer.
F. Support for multiple independent X carriages. The common case is two heads moving on the same rods or rails, which park themselves at opposite ends when not in use.
I. Faster microstepping, without going to dynamically-varying microstepping. Perhaps a 50% speed improvement will be possible.P. Control over which access point the Duet WiFi connects to, via the USB port, and perhaps from PanelDue as well.
Things I'd rather not see effort put into based on what limited benefit to problem ratio they provide.
J. Dynamically-varying microstepping, allowing true 256x microstepping at low speeds, with microstepping automatically reduced for faster moves.
I know what that means at the bare hardware level here and mode switching while not losing position seems a horrible idea based on everything I know. Even if possible, the list of how it can go wrong is just not worth it IMO.I also don't think higher than 2 amp stepper on board makes sense. The EMI, RFI, current surges, and heat on a control board just seems like a battle. If you want that much current, the drivers need heatsinking and separate power bus- AKA External drivers.
If you want to be slick, one feature I would support is breaking out step, direction, and enable solder pad throughhole pin locations. Yes, I know you have an expansion header, I want to avoid remapping and other issues. I hate to even say it, something Smoothieboard has that this doesn't.Another comment I saw was potentially telnet. Please, use SSH or secure protocol with ability to change the default password- going so far as to force the user to change it. We need to guide users into security. Don't allow any anonymous service (FTP,SCP, Telnet, or other) as a control or access method. HTTPS web with signed certificates. Enforce strong authentication. You can view in anonymous mode, but not control. But also give the user the option to change that.
-
I have split the discussion about the hotend temperature control out as requested:
https://www.duet3d.com/forum/thread.php?id=22 -
I know my list is longer than 5, but wanted to share my thoughts.
Thanks for your thoughts, I appreciate your explanations. However, when it come to totting up the votes, I'll have to take just your first 5 to be fair to others.
Regarding using SSH for Telnet and/or http communications, there are a couple of potential issues with doing this. The first is that I have read that SSH needs a fast PC-grade processor to implement it properly, and although the ESP8266 can do it, it takes a lot of CPU time and therefore slows down the data transfer substantially. Probably not a problem for sending the occasional gcode command over Telnet, but a serious problem when uploading files over http. The second is that the user would need to have an SSL certificate. These cost money and time to acquire and set up, which most users would not want to bother with. You could use a self-signed certificate, but then when you connect a browser to the Duet WiFi, you will get a message saying that the certificate cannot be trusted.
If you want to be slick, one feature I would support is breaking out step, direction, and enable solder pad throughhole pin locations. Yes, I know you have an expansion header, I want to avoid remapping and other issues. I hate to even say it, something Smoothieboard has that this doesn't.
No, it is the Duet that offers more than Smoothieboard. Smoothieboard can control up to a total of 5 internal + external drivers, with no documented facility to control more than 5 AFAIK. Duet WiFi can control up to 5 internal plus 5 external drivers. Telling the Duet to use external drivers for axis motors is trivial, there is a Gcode (M569) to do it. Furthermore, you can then re-purpose the on-board drivers for motors requiring less current, for example extruders - which you couldn't do if we provided breakout headers and required you to use the first 3 drivers to control the axes.
-
H. Grid-based bed compensation
B. Multi-threaded web server
E. Support for an external SD card socket
L. Faster file upload speed
J. Dynamically-varying microsteppingSomething not on your list that was previously discussed on the delta forum was adding better support for webcams. I'd add to that the ability to record timelapse photos/video.
Thanks!
Ian -
Are people who are voting for faster upload speeds aware of the progress that has already been made in the latest firmware? I can't say how fast mine is uploading (over wired LAN) because I haven't uploaded anything larger than 1.8Mb which happens so fast that I don't have time to register the speed. Maybe if I looked hard at the screen when I pressed the upload button, I might see it, but it has to be in the order of a couple of seconds or less.
-
As far as I am concerned I am seeing a reduction of 40-50% in file upload speed as compared with the (wired) duet 0.8.5.
Typically I would see upload speeds of circa 950 Kb/s compared with 500-540 Kb/s on DuetWiFi. Respectable but noticeably slower. Admittedly in my area there are often ten to a dozen wifi channels competing with my setup.
This is the main downside I see with DuetWiFi compared with 0.8.5 - pretty much everything else is a plus. I particularly like the reduction in noise from the steppers and I love the thermocouple interface board. Looking forward to the extra features David is planning to add to the firmware.