What's new
VORON Design

Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members!

What is microstepping and how do different values affect things?

EricZimmerman

Member
Trusted Advisor
Voron Owner
Initial question was "what are the effects of changing microsteps in printer.cfg?", directed at MallCop. MallCop then provided the following details:

A stepper motor is a brushless motor. Brushless motors are harder to drive because they require a "wave" of magnetism through them to spin the rotor, which requires external electronics. the simplest and earliest brushless motors were induction motors that run on AC (which by its "alternating" shape provides the wave). you probably know of brushless motors from power tools or drones -- those are DC brushless motors which have fixed magnets and still use the "wave" shape of magnetism to push the rotor around. a stepper is a form of a DC brushless motor, which is specially designed and constructed to move the rotor small amounts as the wave travels around the coils. Wikipedia has a good jiff of it:

1669836381967.png

Gif, as in 'gift'

StepperMotor.gif

A stepper internally actually has these 'teeth'. This is why they feel notchy when you spin the shaft by hand, and is also what causes the "whooop" sound when you push the toolhead around

you can see the yellow wedge growing as the numbers traverse 1 >> 4. the size of that wedge for our steppers is either 1.8 degrees, or 0.9 degrees

That's literally what that part means. there's either 200 or 400 teeth in the circumference of the rotor:


1669836501126.png

when the teeth of the rotor and the teeth of the coil are aligned, you get the strongest torque. the naive way to spin them is just 1 -> 2 -> 3 -> 4, one full notch at a time. this is the most powerful the stepper will ever be, but it's something else as well -- very notchy. when the next 'wave' comes in, the motor uses its full torque to move to the next notch. this causes a lot of forces internally, and a very strong "clunk"
since our machines are basically giant aluminum speakers with belted springs, this clunk is loud as hell. it also isn't super precise, since you only get 200 or 400 positions to choose from
so, people smarter than me figured out that if you turn on "1", like ... 80% of the way, and "2" the remaining 20%, you can gently tug the rotor sorta towards position 2, but still mostly in position 1
this is a microstep
using the gif[t] above, think of what happens to the rotor if you go:

1 >> 1 & 2 >> 2 >> 2 & 3 >> 3 >> 3 & 4 >> 4 >> 4 & 1 (and so on)

The rotor will move in half-steps but, remember that the rotor is happiest when the teeth are fully aligned, so the 1 & 2 position is a little less strong, since if you apply full torque against it, it really wants to lock into just 1 or just 2

If you remember back to the A4988 days, those were usually 1/16th microstepping. They could control the relative strength of each adjacent pair of coils by 16 different power levels (by rapidly turning the coil on and off, several thousand times a second). The move between each 1/16th step is still fairly clunky, and newer drivers like the TMC's allow even more microsteps to try and keep the motion smoother, but it continues to fall back to that thing of "the stepper is strongest when the teeth are fully aligned", so as you increase the microstepping, physics takes over and will really want to keep the teeth fairly aligned before the motor "jumps" over to the next set.

we work around that in a few ways on our machines:

1. We don't really put a huge load on the steppers, unless you're a speedboater
2. We overdrive the hell out of them for what we're asking for
3. The TMC drivers are really good
4. It doesn't really matter all that much if the microsteps aren't super accurate, since we're smearing molten plastic around

TL/DR

If you want a super quiet machine (without using stealthchop), you'd run the microsteps as high as your driver allows, and the amps as low as possible to still keep the speeds you want. but, as you've said and i've then mansplained, this will dramatically cut down on how fast you can go, because the stepper doesn't have enough power to force the rotor into the "in between" positions.

it helps to do some napkin-math to see what the effective resolution is by changing the steps, but you're probably still A-OK on 16 steps for XY:
If we have 20 tooth pulleys, at 2mm-per-tooth, that's 40mm per rotation. 200 steps per rotation is 0.2mm per step. 16 microsteps is (0.2/16)mm per step. Klipper can't go below a step, so your print resolution would be no better than 0.0125mm. Doesn't seem like something to really cry over given our 0.5mm+ extrusion widths

Source: https://discord.com/channels/460117602945990666/463171288853250048/1047585181457981532
 
Is this a something you can adjust as desired and see if it works or is it a property of the motor/driver itself?
 
Top