Carving bamboo at 100mm/sec! Another dinner plate on the portable MPCNC

That chart is completely misleading or misunderstood.

A whole step sends 100% of the max current through loop A, and 0% to loop B.

A half step does that same thing when it is on a full step. But at the half steps, it sends 70% of the max current through loop A and 70% through loop B (actually using more than the max current total).

A quarter step does that same thing at full and half steps. But it sends 38% to one loop and 92% to the other.

At 1/16th stepping, the first microstep away from whole is: 9.8% and 99.5% to the other.

The math is pretty simple:

Coil A Current = sin(90/microstep)
Coil B Current = cos(90/microstep)

This chart only shows coil A current. It doesn’t show you coil B current.

The actual chart should look like this:

microsteps % max current in Loop A % max current in Loop B
1 100.00% 0.00%
2 70.71% 70.71%
4 38.27% 92.39%
8 19.51% 98.08%
16 9.80% 99.52%
32 4.91% 99.88%
64 2.45% 99.97%
128 1.23% 99.992%
256 0.61% 99.998%

That still doesn’t tell the whole story though. Because as you are cycling through the microsteps, you are slowly moving between those values. So the 16 microsteps you would take between two whole steps look like this:

microstep coil A coil B
0 100.00% 0.00%
1 99.52% 9.80%
2 98.08% 19.51%
3 95.69% 29.03%
4 92.39% 38.27%
5 88.19% 47.14%
6 83.15% 55.56%
7 77.30% 63.44%
8 70.71% 70.71%
9 63.44% 77.30%
10 55.56% 83.15%
11 47.14% 88.19%
12 38.27% 92.39%
13 29.03% 95.69%
14 19.51% 98.08%
15 9.80% 99.52%
16 0.00% 100.00%

Half of those values are exactly the same as the 1/8th microsteps sequence. It is just trying to smoothly transition from being aligned with one magnet face to being aligned with the other. Newer drivers, like the TMC 2209s we use on the skr pro actually move at 1/256 microstep resolution, but only take 1/16 microsteps input. They are cycling fast enough to interpolate between the input steps, and generate even smoother transitions between the 1/16 microsteps without having to bog down the microcontroller.

You could argue that you won’t see the difference between 1/16th and 1/32nd microsteps. You could argue that the flex of the motor shaft (and the bit and everything else in between) cause errors much larger than 1/16th of a whole step. But arguing that you lose torque with higher resolution microstepping is a myth.

Edit:
:palm_down_hand:
:microphone:

5 Likes