Firmware wishlist and priorities for Duet WiFi and Duet Ethernet
-
E0 endstop is for U and E1 endstop is for V.
Brill!. I'm currently using E0 and E1 for emergency stops on axis maxima and a separate emergency stop switch but I can re-position these to use two of the estops on the Duex 5.
-
Would implementing Z axis backlash/hysteresis compensation be any easier than X/Y axes?
I am using a belt driven Z with a worm drive reduction. And as such, upon reversing travel direction, I have ~0.07mm of dead space… That's not really a problem for regular usage (one direction movement), but I would like to use mesh bed compensation eventually, and that would pose a bit of a problem... -
On a Cartesian printer, it's equally difficult on all the axes. On a delta printer, it may be harder. It partly depends on the amount of compensation needed. Less than 1 full motor step may be easy because we can probably get away with sending the extra steps all at once; but 2 or more full steps is likely to be hard because we will need to send them slowly enough for the motor to move with them, otherwise it is likely to skip steps.
What fraction of a full step (or how many full steps) does your 0.07mm correspond to?
-
I'm using CoreXY actually. With current reduction 0.07mm corresponds to 28 full steps, but it will be 7 when correct pulleys arrive…
That would really need to use jerk/accel values to not skip steps I suppose.
The way I understand it, we would need a way to determine if axis is changing direction, and then add an appropriate amount to Z move command? Or am I missing something important here? Either way, I'm not asking/hoping this will be implemented soon (or at all), just wondering, that's all. -
The problem is that when reversing direction, the extra steps ideally need to occur and be acted on instantaneously. If you just increase the distance moved, that will correct for under-scaling caused by backlash, but not for the other print quality problems it causes.
In belt-driven X and Y axez, I think the amount of correction needed will generally be much less than a full step; which means that the extra steps can be sent rapidly at the start of the move.
-
Two suggestions, one to improve Z probing accuracy, the other to improve mesh bed leveling (background is here: https://www.duet3d.com/forum/thread.php?pid=32725).
-
A new option for G30 single-point probe commands to probe multiple points and average them to generate the final height for (X,Y). Ideally you'd add NUMBER_OF_POINTS and RADIUS to the probe command, and G30 would then probe that number of points around the given (X,Y), as well as (X,Y) itself. (Since I'm wishing, let's consider an additional option to apply a median filter to this before averaging and/or throw out the lowest and highest measurements.) I think this would increase the accuracy and repeatability of Z probes regardless of what kind of probe you're using.
-
The ability to apply a median filter to heightmap.csv to eliminate outliers (incorrect probe heights). This could prevent one or more bad points from distorting the bed map.
-
-
MQTT is really something that would open the door to many interesting applications. In principle, the integration of MQTT should be fairly easy since many MQTT implementations for ESP8266 are publicly available.
12
14
15
7
10I have one of my Duets wired up to a CNC machine at the moment, though it requires a lot of messing about to from Fusion 360 to actually milling something with the Duet. I can help test stuff out though.
My other suggestion would be support for MQTT, to allow the duet to signal other things with it's status, e.g. current temperature, finished printing etc. With this it would be possible to do stuff like turn off plugs, turn on lights or send text messages when a print had finished.
-
Use StallGuard to tune motors for maximum speed and acceleration.
-
18, 20, 6, 2, 3
Thanks -
Use StallGuard to tune motors for maximum speed and acceleration.
StallGuard won't tell you the maximum speed you can achieve, but you can work it out using the spreadsheet linked to from https://duet3d.com/wiki/Choosing_stepper_motors#How_to_work_out_the_power_supply_voltage_you_need.
I am not sure that StallGuard can tell you the maximum accelerations available either, because what it actually detects is increasing slip angle between the ideal motor position and actual motor position. This slip angle increases with motor load. So it can warn you when the load increases to a value that is close to the maximum value before stalling, but only if you calibrate that value first.
If enough users participated, I guess we could build up a database of recommended stallgard settings for various stepper motor models.
-
Can I add a vote for 19 (Cool down power off wait) with the acknowledgement that a maintained supply to VFAN would achieve the same thing. (On that topic, any chance of proper supply terminals for the fan bus on the next generation of boards? Connecting via VFAN feels a bit hacky)
I’d also like to put in a word for auto-updates.
Whilst I accept the dangers of auto-updating (I’m currently resisting a similar request on my own software) can I suggest that you consider providing an update wizard that backs up the current configuration then walks the user through any configuration changes before installing the update.
If you need additional incentive, just think of all the support requests you’ll save if you get it right.A clear indication on the client that updates (including paneldue and the probe) are available would be useful too - I recently updated my main board to the latest 1.20 release but totally failed to spot a matching update for my panelDue.
-
Cool down power off wait is already implemented, see https://duet3d.com/wiki/G-code#M81:_ATX_Power_Off.
-
Use StallGuard to tune motors for maximum speed and acceleration.
StallGuard won't tell you the maximum speed you can achieve, but you can work it out using the spreadsheet linked to from https://duet3d.com/wiki/Choosing_stepper_motors#How_to_work_out_the_power_supply_voltage_you_need.
I am not sure that StallGuard can tell you the maximum accelerations available either, because what it actually detects is increasing slip angle between the ideal motor position and actual motor position. This slip angle increases with motor load. So it can warn you when the load increases to a value that is close to the maximum value before stalling, but only if you calibrate that value first.
If enough users participated, I guess we could build up a database of recommended stallgard settings for various stepper motor models.
I was thinking of a serpentine pattern that gradually increased speed and or acceleration until Stallguard indicated that the motor was slipping and then back off a little. In the past when I needed to tune steppers for dot matrix printers is was very much cut and try. I envision a process somewhat akin to tuning a PID loop where the intent is to converge as fast as possible without overshoot.
Admittedly, everything is easy if you don't have to do it yourself.
-
5
6
18
17 -
The problem is, Stallguard doesn't really tell you that the motor is slipping. What it tells you is that the load is higher than the threshold you have configured.
-
Oh. Clearly, I need to read the data sheet.
Maybe an accelerometer is what I should be thinking about.
Prusa claims some high print and move speeds. I had assumed they used StallGuard for their tuning but maybe they just raised the threshold until it stopped working, perhaps with an accelerometer to tell them it was skipping, and then backed it off. Or maybe it's just not a useful number that they claim.
-
Prusa will have done tests to establish how high the stallguard reading can safely get before the motor starts skipping steps, so they know what stallguard threshold to set to detect skipped steps in normal operation. It's unlikely that they used stallguard to do that testing.
-
5 , 6, 7, 10 ,17
-
Two suggestions, one to improve Z probing accuracy, the other to improve mesh bed leveling (background is here: https://www.duet3d.com/forum/thread.php?pid=32725).
-
A new option for G30 single-point probe commands to probe multiple points and average them to generate the final height for (X,Y). Ideally you'd add NUMBER_OF_POINTS and RADIUS to the probe command, and G30 would then probe that number of points around the given (X,Y), as well as (X,Y) itself. (Since I'm wishing, let's consider an additional option to apply a median filter to this before averaging and/or throw out the lowest and highest measurements.) I think this would increase the accuracy and repeatability of Z probes regardless of what kind of probe you're using.
-
The ability to apply a median filter to heightmap.csv to eliminate outliers (incorrect probe heights). This could prevent one or more bad points from distorting the bed map.
Yes for this … doing the averaging manually and spreadsheets for the BL Touch ... repeat-ability ? mehhhh ....
-
-
Veng1 Prusa have it easy in this regard they're using one carefully chosen motor and optimising it. But print a tower and just bump acceleration up every 5mm, then another for jerk. You'll soon see how far you can go.