Duet maximum achievable step rates
-
I've started a spreadysheet to record approximate acheivable step rates at https://docs.google.com/spreadsheets/d/1AWA1wLbOaYzxzdQa5LRZvn9rgEk2BuluHy6-_OnD6FY/edit?usp=sharing.
EDIT: In case you want to test yourself.
- Work out a long move that you can use on your machine to test the step rate. It needs to be long enough that most of the move will be at the requested speed, not doing acceleration or deceleration
- Select x256 microstepping
- Send M122 to clear the hiccup count
- Execute that move
- Send M122 to read the hiccup count
- Repeat the last 3 steps at different speeds, to find the speed at which the hiccup count increases dramatically. For a 300mm move at x256 microstepping, I reckon that 50 to 100 hiccups is acceptable, more is not.
- Use the steps/mm and the speed you measured to work out the step pulse rate.
-
Thank you for this!
Its a nice reference point.
-
Might be a bit presumptive to ask since I do not know the heart of DSF very well, but would these rates conceivably be different with an SBC at a future date?
I.e. is computational offload to SBC present/planned or will it remain as an alternative method of getting gcode to the board? Asking on behalf of my ~620step/mm extruder (duet 2).
Also, good information though maybe on the high side? my duet2 cannot run a btech bmg at 417.29 steps/mm at 128 microstepping with 30mm/s retracts without accruing ~600 hiccups over a 2 hour print.
Either way, this is some super good baseline information. Thanks.
-
@deadwood83 said in Duet maximum achievable step rates:
128 microstepping
Such high microstepping is rarely beneficial. x16 with interpolation to x256 is definitely the way to go, especially for a Duet 2.
-
@Phaedrux said in Duet maximum achievable step rates:
@deadwood83 said in Duet maximum achievable step rates:
128 microstepping
Such high microstepping is rarely beneficial. x16 with interpolation to x256 is definitely the way to go, especially for a Duet 2.
There is a usage case where higher micro stepping is desirable, as I have repeatedly pointed out. That is when using a mixing hot end whereby some of the filaments may be moving at single digit percentages of the total and therefore 16x does not give adequate resolution. There are other users who print highly detailed parts, using very small nozzles and layer heights. These users may need higher micro stepping and/or use highly geared extruders. Either way, a high step pulse frequency is required so it has been hugely disappointing to me that Duet3 has had a much lower step pulse frequency than Duet 2. I sincerely hope that the latest firmware will improve that situation but I'll wait until it moves out of the beta stage before I try it.
-
@deckingman yes I had your use case in mind when I said rarely.
-
@Phaedrux Understood. BTW, with firmware 3.1 and extruders connected to expansion boards, I get extremely high hiccup count using 32X micro stepping. That's with 1.8 degree motors (roughly 400 steps per mm) and in non mixing mode. If I used 0.9 degree motors (800 steps per mm) which is not uncommon, then I would be seeing that high hiccup count using 16X micro stepping. That's how bad the step pulse frequency is with firmware 3.1.
-
@deckingman
What board do you use?
Can you post more details e.g. the motor config section in config.g for others to better understand? -
@LB I'm away from home at the moment but the low step pulse frequency is related to expansion boards and firmware version 3.1.1. The extruders are Bondtech BMGs with steps per mm of about 400 with 1.8 degree stepper motors. I can run these at only 16x microstepping and 30mm/sec retraction speed. Hopefully this situation will be improved with the 3.2 firmware but I'll wait for the beta testing phase to be completed before I attempt to install it.
-
Resurecting this old thread because I've finally got around to testing the step pulse frequency on my 3HC expansion boards. Step pulse frequency is important to me because I use mixing hot ends and when one or more filaments are single digit percentages of the whole, the resultant extrusion amount can be less than one micro-step using 16X. Therefore it is necessary to use 128X micro-stepping but there is also a need to retract the filament at a reasonable fast speed.
Firmware is 3.2.2.
6 extruders in total, 3 connected to each of two expansion boards. Extruder setting - max speed 9000 mm/min, max instantaneous speed 3600mm/sec, acceleration, 6000 mm/sec^2. Other settings as per spread sheet.
Test method. No filament loaded. Retract/unretract distance set to 3mm. Run G10 - G11 - G10 - G11 then check hiccups using M122.
Results
RRF3.2.2 Expansion board step pulse frequency..ods
Please check my maths because my results are less than those shown on @dc42's spread sheet using 3.2 beta1 (the only value shown for 3 motors on a 3HC board). If they are correct, then it looks like the maximum "hiccup free" step pulse rate is around 131kHz or a tad higher (but no higher than 136kHz).
Conclusion. This is now on a par with Duet 2 - maybe a tad better. In any case, it allows me to run my extruders at 128x micro-stepping as is necessary with a mixing hot end, which is acceptable for me personally. So that's one gripe I can cross off my list
-
That's good to hear Ian.
-
@Phaedrux said in Duet maximum achievable step rates:
That's good to hear Ian.
I try to be balanced and give positive comments when something gets fixed, as well as hold your (as in the Duet team) feet to the fire when things are broken.
-
@deckingman I'd expect no less.
-
The SAME51 processor on the EXP3HC, SAME54 used on Duet 3 Mini and SAM4E used on Duet WiFi/Ethernet are all 120MHz ARM Cortex M4F processors. So it's expected that the maximum step rates should be similar. The SAME51 and SAME54 have more cache memory so they might be a little faster.
-
@deckingman said in Duet maximum achievable step rates:
the resultant extrusion amount can be less than one micro-step using 16X. Therefore it is necessary to use 128X micro-stepping but there is also a need to retract the filament at a reasonable fast speed.
I wonder why you used 128x, because with high microstepping of steppers you don't gain precision. I expect you need precision for mixing colors. I would expect to use a low microstepping with a high precision gear (1:16 or similar gear ratio). The low microstepping mode must have a high frequency then.
-
@JoergS5 because he needs high accuracy not high precision. With a mixing hot end you want to still move the unused filaments forward slowly (Ian has written a lot about it on his blog and YouTube!). With that he needs higher microstepping to actually achieve a very slow, constant movement.
Granted, in most 3d printing anything more than 16x (with interpolation) is useless, but this is one of the exceptions
-
@engikeneer thank you for explaining. I'll check Ian's blogs.
-
@JoergS5 said in Duet maximum achievable step rates:
@deckingman said in Duet maximum achievable step rates:
the resultant extrusion amount can be less than one micro-step using 16X. Therefore it is necessary to use 128X micro-stepping but there is also a need to retract the filament at a reasonable fast speed.
I wonder why you used 128x, because with high microstepping of steppers you don't gain precision. I expect you need precision for mixing colors. I would expect to use a low microstepping with a high precision gear (1:16 or similar gear ratio). The low microstepping mode must have a high frequency then.
I wondered that too, and I suspect that it isn't necessary now. However, it certainly was necessary a number of firmware versions ago, because RRF would throw away any commanded extrusion that was less than one microstep. Later firmware versions remember the amount of accumulated extrusion that has been commanded but not done, and do it when it reaches at least a whole microstep.
-
@dc42 I documented it in my blog years ago. When I get chance, I'll post a link which includes the maths and spread sheets.
In a nutshell, if one or more filaments are moving forward as single digit percentages of the whole, at 400 steps per mm (Bondtech or Titan 3:1) for short segments, that can result in an extruder move which is in the order of 1 tenth (IIRC) of a micro step.
So even with carry over of fractions, one would have a series of moves with no extrusion, followed by one move with around 5 times too much.
If you use a 5 input hot end and happened to be using single digit percentages of mixing on 4 if those inputs, the overall under/over extrusion amount can be a significant proportion of the whole.
I did a later blog post, accompanied by a video which clearly showed the improvement that 128x micro stepping gives under those conditions (and that was with carry over of the fractions due to rounding).
-
Thanks Ian, I'll accept your word that it does make a difference. I am surprised though, because my expectation was that stiction in the extruder mechanism, gearing and Bowden tube would cause the filament to move in small jerks rather than continuously.