Duet WiFi firmware new feature priorities
-
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.
-
J. Dynamically-varying microstepping
I. Faster microstepping
C. Predictive temperature control
M. Babystepping
S. Support for DS18B20 temperature sensors -
- Support for PanelOne
- Support for restore points
- Support for a config-override.g file
-
- . J Dynamically-varying microstepping
2). D Support for PanelOne and similar 20x4 text displays, not including the SD card socket - see next item. - O. Support for restore points.
- C. Predictive temperature control
- S. MQTT client - so that actions could be performed by other things, e.g lights, alarms, home automation, during or on completion of the print. So as to make things a bit more secure, the duet wifi would only want to publish data, not subscribe to anything (with the possible exception of emergency stop) Shouldn't be too hard todo as there simple mqtt implementations based on LWIP floating around already.
- . J Dynamically-varying microstepping
-
Just ordered mine right now…..so:
E. Support for an external SD card socket
A. Higher stepper motor current
C. Predictive temperature control
H. Grid-based bed compensation
J. Dynamically-varying microstepping -
Wow, that's a long and great list!
1 C Predictive temperature control
2 O Support for restore points
3 L Faster file upload speed
4 M Babystepping - if implanted with a usable UI
5 B Multi-threaded web server,and some comments:
re: config_override.g - smoothieware uses this and it did nothing but drive me crazy! I frequently had unexpected results that turned out to be override settings. If you do go down this path, making it editable in DWC like the config.g is would go a long way to help.
SSH would be ideal over telnet but telnet is fine for me. I only run on my internal network so security is not a huge concern. But I can see it being important in an educational and industrial situation.
ROBUST DWC connections - I know huge progress has been made on this this year but it can still improve.
-
Here's a new request: an option to perform both the auto calibration (G30 Sx) AND return the results the way S-1 does.
-
1 - predictive temp control
2 - grid based bed comp
3 - restore points
4 - dynamically varying microstepping
5 - Support for three independently-controlled Z motors -
My vote is:
- C. Predictive temperature control
- J. Dynamically-varying microstepping
- I. Faster microstepping
- M. Babystepping
- E. Support for an external SD card socket
-
Just thought of a "anything else".
Some sort of running total of print time to date. A sort of "hour meter", or "mileometer". It would be useful for setting up maintenance schedules\reminders. Like "lubricate guides" every x number of hours or "change belts" every y hundred hours". I guess this is more a web interface thing, as it would need to be running total of when the printer is actually printing rather than power on time. Just a thought…....
-
Oh yes, the hourmeter would be a very very nice feature. It could be nice to know individual axes' travel distances, as well as print hours, total powered up hours (for motors) etc.
-
Very nice list, choices, choices…
My vote would be -
-
- F. Support for multiple independent X carriages.
-
- A. Higher stepper motor current (above 2A)
-
- P. Control over which access point
-
- N. Support for driving RC servos - But do the HW on the expansion header (shield) with a +5V reg + I/O etc.
-
- R. Support to compensate for axis hysteresis
In my first week of using DuetWifi I would have voted for E. Support for an external SD card socket, but now it's almost not even something I would think about, and it's annoying that other 3D printers are still using a slow external card…
Best Regards,
Rich.
-
-
I think this is my preference of order.
C. Predictive temperature control.
H. Grid-based bed compensation,
J. Dynamically-varying microstepping
O. Support for restore points.
G. Support for three independently-controlled Z motorsI read DC42 start post that way, the other topics will
not be dropped, just come later.One suggestion from my side ( I believe the topic
was already discussed in some thread(s) on the RepRap forum)What about having a dedicated button (pin) for pausing
the print (similar the pause Web Button) ?Sometimes I have see someting strange during the print
and would like to pause. The Webbutton is to slow to reach
and a power off (like an emergency stop button)
ruins the print. -
The PanelDue offers exactly this pause button. I personally would never run a duet printer without a paneldue. It's a much more reliable and fast means of controlling the printer than the web interface. Keep in mind, the pause command does wait for the last gcode command to finish executing (or maybe even the whole queue).
-
I just pre-ordered a board. One feature I want to request (if it doesn't exist already) is an extruder advance (aka JKN, Linear Advance, etc) to help compensate for hysteresis in bowden systems. My machine has some very long bowden tubes and enabling this (unfinished) feature in Marlin's RC Bug fix branch made a noticeable difference on corners and top infill quality.