max number of step/ seconds in case of dual Y stepper config
-
hi; i just saw another post indicating that the max frequency for steps is 360kHz and you have to divide it by the number of motors.
does this applies to mirrored motors, like dual Y or dual Z ?or do you just send the same pulse to 2 pins ?thanks
-
The same pulse is sent to 2 pins, so using dual Y or dual Z does not reduce the maximum step rate.
The 360kHz figure is probably over-optimistic now. When I measured that, RRF used double, quad or even octal stepping at high seeds. Since then we have users with step-servo drives, which need a steady pulse train. So now RRF always does single-stepping.
-
@dc42 With single-stepping, what's a realistic maximum frequency for steps?
-
yes i'm interested to know too as i have to check which ball scrtew lead i have to choose to have a correct speed .
-
Based on previous posts it would seem that 120khz is about right.
https://forum.duet3d.com/topic/8660/high-number-of-hiccups-during-basic-moves/10
-
@phaedrux said in max number of step/ seconds in case of dual Y stepper config:
Based on previous posts it would seem that 120khz is about right.
https://forum.duet3d.com/topic/8660/high-number-of-hiccups-during-basic-moves/10
Yes, 120kHz to each of 3 motors on separate axes/towers. That's down from 180kHz when RRF used double/quad/octal stepping.
-
@dc42 May I ask what the limit might be in the situation of multiple extruder motors doing a firmware retraction? And also if that is likely to be different with Duet3?
-
@deckingman said in max number of step/ seconds in case of dual Y stepper config:
@dc42 May I ask what the limit might be in the situation of multiple extruder motors doing a firmware retraction? And also if that is likely to be different with Duet3?
It's likely to be the same, i.e. 120kHz to 3 extruders simultaneously. Duet3 should be faster, my guess is by 50% to 80%.
-
@dc42 said in max number of step/ seconds in case of dual Y stepper config:
The same pulse is sent to 2 pins, so using dual Y or dual Z does not reduce the maximum step rate.
The 360kHz figure is probably over-optimistic now. When I measured that, RRF used double, quad or even octal stepping at high seeds. Since then we have users with step-servo drives, which need a steady pulse train. So now RRF always does single-stepping.
Why not make double/quad/octal stepping an option? Or maybe automatic scale it when reaching certain frequency like 100kHz - goes into double stepping, 200kHz - quad and so on.
-
@dragonn said in max number of step/ seconds in case of dual Y stepper config:
@dc42 said in max number of step/ seconds in case of dual Y stepper config:
The same pulse is sent to 2 pins, so using dual Y or dual Z does not reduce the maximum step rate.
The 360kHz figure is probably over-optimistic now. When I measured that, RRF used double, quad or even octal stepping at high seeds. Since then we have users with step-servo drives, which need a steady pulse train. So now RRF always does single-stepping.
Why not make double/quad/octal stepping an option? Or maybe automatic scale it when reaching certain frequency like 100kHz - goes into double stepping, 200kHz - quad and so on.
Because it would require additional code in multiple places to decide whether to do double etc. steppering or not, which would complicate the code and slow it down. I am not aware of any situations in which step rates or more than 100kHz are genuinely needed, so the ability to maintain more than 100kHz to three motors simultaneously is sufficient IMO. The maximum rate to a single motor should be around 200kHz.
-
@dc42 said in max number of step/ seconds in case of dual Y stepper config:
I am not aware of any situations in which step rates or more than 100kHz are genuinely needed, so the ability to maintain more than 100kHz to three motors simultaneously is sufficient IMO. The maximum rate to a single motor should be around 200kHz.
Here is one situation. 3 (or 5) extruders feeding a mixing hot end and using firmware retraction. In an ideal world, I'd like to use 256X micro stepping to get the resolution required when the mixing ratio for a single filament is in the low single digit range. According to my calcs, using Bondtech BMGs with micro stepping at 16x the steps per mm are in the region of 415. So at 256x, the steps per mm would be 6640 and 100kHz would therefore limit retraction speed to 15mm/sec. Ideally, I'd like this to be 60mm/sec which means dropping the micro-stepping to 64x. TBH, I've been using 128X micro stepping because I thought the limit was 200kHz and I don't see an hiccups at this setting (but it'd been a while since I checked).
I doubt the following is possible but I'll ask the question anyway. I need fine extruder resolution for printing with low single digit mixing ratios, but at low speed. For retraction I don't care too much about resolution but do need speed. So would it be possible to do G10/G11 retraction moves at 16x microstepping but use 256x micro-stepping for "normal" printing?
-
@deckingman said in max number of step/ seconds in case of dual Y stepper config:
Here is one situation. 3 (or 5) extruders feeding a mixing hot end and using firmware retraction. In an ideal world, I'd like to use 256X micro stepping to get the resolution required when the mixing ratio for a single filament is in the low single digit range.
IMO it's most unlikely that using x256 microstepping will give you any improvement over x16 or at most x32, because the incremental torque for a single x256 microstep is so small.
@deckingman said in max number of step/ seconds in case of dual Y stepper config:
I doubt the following is possible but I'll ask the question anyway. I need fine extruder resolution for printing with low single digit mixing ratios, but at low speed. For retraction I don't care too much about resolution but do need speed. So would it be possible to do G10/G11 retraction moves at 16x microstepping but use 256x micro-stepping for "normal" printing?
When we designed the Duet WiFi I originally planned to support dynamically-varying microstepping. But it's not easy, and interpolation proved to be effective at achieving the main benefit of higher microstepping, i.e. reducing stepper motor noise.
-
@dc42 We discussed this some time back and I did a post about it on my blog https://somei3deas.wordpress.com/2018/06/08/why-16x-micro-stepping-is-a-bad-idea-with-mixing-hot-end/
-
@deckingman said in max number of step/ seconds in case of dual Y stepper config:
@dc42 We discussed this some time back and I did a post about it on my blog https://somei3deas.wordpress.com/2018/06/08/why-16x-micro-stepping-is-a-bad-idea-with-mixing-hot-end/
Wasn't that before I fixed the bug whereby the residue after rounding the movement to a whole number of microsteps was thrown away instead of being added to the extrusion pending?
-
@dc42 said in max number of step/ seconds in case of dual Y stepper config:
@deckingman said in max number of step/ seconds in case of dual Y stepper config:
@dc42 We discussed this some time back and I did a post about it on my blog https://somei3deas.wordpress.com/2018/06/08/why-16x-micro-stepping-is-a-bad-idea-with-mixing-hot-end/
Wasn't that before I fixed the bug whereby the residue after rounding the movement to a whole number of microsteps was thrown away instead of being added to the extrusion pending?
I've no idea, but it wouldn't solve much in any case. The spread sheet linked in my post should still be active but to save you looking, I took an example segment size of 0.5mm as being not unreasonable. In that case, with a mixing ratio of 1% using 16x micro-stepping the extruder move would be 0.10375 of a micro-step. So there would effectively be no extruder movement. If you take the sum of the residues then you'd get one extruder micro-step every 10 segments but nothing for the other 9.
The biggest error in percentage terms for 16x micro-stepping is actually with a mixing ratio of 5%, because the micro step is close to 0.5. So you either get no micro-step or whole one. If it's no micro-step, then you effectively under extrude by 5%. If it gets rounded up to a whole micro-step then you get 5% over extrusion. And if you happen to be using a 5 colour hot end with mixing ratio of 80:05:05:05:05 then you would get 20% under or over extrusion.
In practice, it's not that bad because I don't believe that the filament coming out of the nozzle can follow what the extruder does with anything like that accuracy. So it will continue to "ooze" from one print segment to the next and get corrected during subsequent segments, but I hope you see what I'm getting at. To completely eliminate theoretical errors, I would need to use 256X micro-stepping.
But that leads to a question that I've asked many times but never received a definitive answer which is, "would 1/256 micro step actually translate to any physical movement of the filament?" I suspect not, in which case one could say that no mixing hot end could ever achieve accurate colour mixing where the ratio of any one filament is a single digit percentage of the whole.
-
I think that the discussion is going into a direction that is not good at all!
I have used both GRBL with its shield and 4 Pololu drivers before converting my CNC to Duet. These days I'm helping someone to upgrade a Chinese 6040 from this board to Duet - I will detail once we finish the conversion. In both cases the steppers run much smoother at 16x micro-stepping because of the interpolation implemented in the drivers.
In the end we are discussing of mechanical systems with not insignificant moving/rotating weights and the associated inertia. Combining that with the very few studies on the Internet on the precision of the steppers steps and micro-steps, I wouldn't expect any significant difference between the interpolated 16x and an actual 256x micro-stepping! All that inertia smooths the movements anyway, and with the Trinamic drivers running at 16x micro-stepping things are even better.
I still consider that the Duet board is a lot more than any other similar product in the same price range (if anyone can find such a product!). Also, it is a product that evolves. When trying to get as much functionality as possible in the firmware some things might get slower. From my experience that can happen also when trying to implement a certain functionality better or in a safer way. Long term I vote for reliability!
-
@catalin_ro said in max number of step/ seconds in case of dual Y stepper config:
I think that the discussion is going into a direction that is not good at all!
Hey, I'm not complaining. Mixing hot ends are rare, strange and fickle beasts at the best of times. David sad he "wasn't aware of any situations in which step rates of more than 100kHz are genuinely needed". I'm merely pointing out that such cases do indeed exist. But if i have to live with it, then so be it.
-
@dc David. How about if I wrote a little post processing script that whenever there is a G10 command (retract), insert M350 E16:16:16:16:16 immediately before it, and whenever there is a G11 command (un-retract) enter M350 E256:256:256:256:256 immediately after it ? So effectively use 256x for "normal" printing but switch to 16X for the retract moves. Any reason why that wouldn't work?
-
That should work, although there may be more of a definite stop before and after retraction. But I will be surprised if you will see any difference between x16 interpolated and x256 microstepping.
-
@dc42 In theory it should make a difference because as I keep saying, at 16x with single digit mixing ratios the extruder move could be in the region of 1/10th of a micro step or less. The only question remains is whether a single 1/256 micro step translates to any physical movement of the motor/filament. If not, what does. Is 128x, 64x or what? One of these days I'll run some more tests. I know exactly the colour combination to use. It's White and Red. The tiniest amount of red leads to pink. So a cylinder with 0.5mm segment sizes using single digit mixing of red with white would be the part to print. Five copies, at 16x, 32x, 64x, 128x and 256x. Maybe print them in vase mode. (Note to self, add this to the "todo" list).