Firmware wishlist and priorities for Duet WiFi and Duet Ethernet
-
Using StallGuard to detect possible print collisions and layer shifts is probably the coolest feature in Prusa's new i3. I realize it's much easier for them since Prusa Research controls which motors they have, but an option to configure that would be really nice.
-
David,
I'd kind of hold fire on "13 - advancing tool change commands" due to my recent discoveries about PLA hydrolysing which means it still needs to be purged. Granted, advancing the tool change command would reduce the amount of purge required, but that purge would still need to happen at the original tool position - not the new (advanced) one. So it all gets a bit complicated. You'd need to do something like move the tool command forward but keep the original in place, then do the (small) purge on the second (the original) instance of that tool command. Having said all that, filaments which don't hydrolyse may benefit but I need to do more testing.
Ian -
5
7
9
12
14Not the most popular options, but that would really be a next big step forward in this board and allow us to build more complex machines using it.
-
How about
-
an iPhone/Android APP to control the board remotely? I think that would be awesome. Seems like an obvious choice, but I believe there is no app available yet.
-
Make UI more eye pleasing/tap friendly.
I know aesthetics is definitely less important than functional part, but shouldn't be overlooked too in my opinion Just purchased your board, haven't received yet. Very excited to start my new build with it. Would loved to have purchased two boards, one for my CNC router, but I am unsure if it can deliver solid CNC functionality at this point. SO stayed with MACH4 controlled breakout board from "PoKeys" company. Would really prefer to switch to your board at some point in future though.
-
-
How about
- an iPhone/Android APP to control the board remotely? I think that would be awesome. Seems like an obvious choice, but I believe there is no app available yet.
The web interface works really nicely as a full screen web app on Android ("Add to Home Screen" on Chrome menu). It's responsive and full-featured, including access to the web-cam display. I use it to keep an eye on the printer from a different room in the house.
I don't think there is anything technically stopping the web interface from being accessed over the Internet using port-forwarding or reverse-proxying. I'd personally be very nervous about doing that though for, hopefully obvious, safety and security reasons.
-
I'm using DWC over the Internet via a reverse proxy + TLS + HTTP-Basic-Auth - and it works just fine!
Got my webcam, a wifi-enabled power socket, and DWC: all controlled & managed from my phone.Just make sure your proxy doesn't add weird HTTP headers, as the Duet RRF limits headers to 16 at most (memory reasons?)
-
We can support more HTTP headers if it helps.
-
@dc42: great! I'm still not sure how I ended up hitting this limit, but my typical nginx config adds at least 4 additional headers. Chrome (or probably any other browser) adds 9 (when POST-upload). HTTP-Basic-Auth is one more header.
So we are pretty close to the current limit.If there is enough RAM / resources available, I would recommend bumping [c]MaxHeaders[/c] to maybe at least 24 or 32.
(not sure what happens if somebody sends a really large cookie…?) -
I've increased it to 30 for the Duet WiFi/Ethernet in the next beta. The other limit is that a complete HTTP request (excluding any postdata) must fit in 1460 bytes. A really large cookie could cause this limit to be exceeded, however DWC hasn't used cookies for a long time.
-
Using StallGuard to detect possible print collisions and layer shifts is probably the coolest feature in Prusa's new i3. I realize it's much easier for them since Prusa Research controls which motors they have, but an option to configure that would be really nice.
Seconded. I have read the other thread, and realize that there may be limitations, but the concept is sure interesting.
-
MQTT - so the printer can send out it’s status to MQTT compatible services, not so it can be controlled. Basically the printer reports as an mqtt sensor.
Personally I would use it to send me a text message via IFTTT , or flash my living room lights when a print has stopped/finished. Though other things like show hot end temperature via the colour of. A Philips hue lightbulb would also be possible.
Reference designs based on LWIP stack are available. I reckon %complete, finished state and temperatures would be the info to broadcast.
-
10. Axis hysteresis compensation. Backlash compensation
Please please please do this… without it 3d printing will never be that good without every expensive hardware..I have a number of printers of different kinematics but ALL suffer from backlash ... Seeming the only way to get rid of 99% of it is to go with ball screws on the X/Y access but that will massively increase cost, weight and inertia leading to a slow print..
Also it seems like Marlin is finally implementing this... so..
Thanks in advance
-
10. Axis hysteresis compensation. Backlash compensation
Please please please do this… without it 3d printing will never be that good without every expensive hardware..I have a number of printers of different kinematics but ALL suffer from backlash ... Seeming the only way to get rid of 99% of it is to go with ball screws on the X/Y access but that will massively increase cost, weight and inertia leading to a slow print..
Also it seems like Marlin is finally implementing this... so..
Thanks in advance
That's an unusual observation and request. Have you got any pictures or other evidence of how this backlash \ axis hysteresis manifests itself on all your printers? From a basic engineering point of view, backlash is a known phenomenon with screw driven systems and gear trains but not with belted systems, so I'm curious as to why you think that going from a (presumably) belt driven system to a screw driven system would eliminate 99% of the backlash.
-
My votes in order of priority, though may be too late:
4. Independent homing switches for multiple Z motors.
18. Ability to update PanelDue firmware via the web interface.
7. Dynamically-varying microstepping. This will allow you to configure 256x microstepping most cases, because the microstepping will be reduced automatically during high-speed moves.
10. Axis hysteresis compensation.
8. Standstill current reduction, which will allow higher motor currents to be used when the motors are moving.
-
My Vote, though probably too late:
10. Axis hysteresis compensation.
7. Dynamically-varying microstepping.
I am sure Ian knows this but … in order to make the firmware more CNC friendly i would suggest 3 additional things.
G2/G3 circular movement support
Pitch error comp on the axis (for lead screw/ball screw support)
Change M0/M1 to follow CNC convention with stop and option stop that doesn't necessarily cancel the job or turn the heaters off. Just performs a "feed hold"My 2 cents
-
G2 and G3 are already supported.
Please explain what exactly you mean by "Pitch error comp".
What exactly is the behaviour you would like to see for M0 and M1?
-
My vote for:
7. Dynamically-varying microstepping
Probe the bed multiple times at each point and take an average -
G2 and G3 are already supported.
Please explain what exactly you mean by "Pitch error comp".
What exactly is the behaviour you would like to see for M0 and M1?
My bad on the G2/G3. I guess I never gave it a shot…
Pitch error comp is built into almost every CNC machine tool. It allows a user to deal with manufacturing defects in the lead screw and ball screws on a machine. Most machines allow a user to "adjust" where a specific point is in the axis. So a table by default might have points every 10MM. If you tell the machine to move to X10.0 but because of the lead screw it moves to 10.02, you can then provide that difference so the motion planner can get to the proper point. This is on top of what we would call steps/mm for the axis. This allows changes over the length of the axis. Not necessary for belts, can be very necessary for screws.
For the M0/M1 commands:
These are typically "pause commands" in traditional G-code. M0 will provide a feed hold command until a cycle start has been pressed. The spindle continues to turn.
M1 does the same thing but is hooked to a switch on the controller called "optional stop". When the optional stop button is on(it is latched on, not momentary) the machine will stop just like an M0 and wait for the operator to press cycle start. If the optional stop button is off the machine ignores the command and keeps running. This is very useful when proving out new CNC programs and tooling.I admit I have not used the pause and resume commands that are in the firmware now. This would just help to bring Reprap firmware to industry standard on the subtractive manufacturing side.
Hope all that makes sense!
-
Auto squaring/calibrating by homing dual x and dual y steppers individually.
I also have an mpcnc machine that at some point I am going to swap over to a duet ethernet so I can also use it for 1 meter x 1meter x 15cm prints. It has dual x, and dual y steppers. One feature that the branch of marlin has that would be great on the duet would be to automatically be able to square off the x and y axis by moving all 4 motors independently to their own endstops
-
Auto squaring/calibrating by homing dual x and dual y steppers individually.
I also have an mpcnc machine that at some point I am going to swap over to a duet ethernet so I can also use it for 1 meter x 1meter x 15cm prints. It has dual x, and dual y steppers. One feature that the branch of marlin has that would be great on the duet would be to automatically be able to square off the x and y axis by moving all 4 motors independently to their own endstops
Hmm, curious. Does it have stops at each end of the axis? Presumably for that to work, the machine would need to have a fair amount of "slop" in the linear guides so that it can twist? Or is some other mechanism employed?