Topics

Characterizing NEMA17 stepper motor/driver micro-stepping accuracy

Howard Dutton
 
Edited

I would like to expand on the information presented in this useful article: "How Accurate Is Microstepping Really?" to include a wider range of stepper motors, stepper drivers, drive currents, decay modes, and torque loads.

The prior results were taken for a NEMA17 1.8°/step motor unloaded and loaded with 1000 gm-cm (13.9 oz-in) which I'm guessing (and this needs to be measured) is perhaps 2x or 4x what it takes to for example move my G11 around, depending on how out of balance it is and what angle the axes are at.  The mere fact that this (13.9 oz-in) load can cause an angular displacement of 1° implies that my G11 might see 0.25 to 0.5° of shaft angular displacement with a similar stepper motor.  My G11, however, has 0.9°/step motors so hopefully we can again cut that estimate in half for 0.125 to 0.25°.  Take the average of that 0.187° and /360 (360t wheel gears) to arrive at a displacement of 1.87 arc-seconds.  We already know these motors work fairly well so I suppose the RA axis movement is responsive enough for auto-guiding to get the job done even with that "soft" magnetic field pulling the rotor along.  The Dec axis behavior while guiding is more concerning to me since a change in direction will need 2x 1.87 arc-seconds to start pushing in the opposite direction and even then it has to overcome stiction (friction holding against the start of movement.)  This is why I suspect better performance is possible than that provided by simply using 400 step motors directly driving the worms.  Other drive designs using more overall reduction amplify torque and so lessen the stepper motor load and these concerns along with it, while potentially introducing other troubles.

I wonder...
1. How uniform is micro-stepping with the drivers we use?
2. Are 0.9°/step motors really twice as accurate as 1.8°/step motors?
3. Are 0.36°/step motors even more accurate?
4. How will a MKS Servo stepper motor perform?
5. How do stepper motor drive current and shaft angular displacement relate, is it a linear relationship?
6. Does TMC spreadCycle vs. stealthChop modes make any difference WRT accuracy?

Howard Dutton
 

Here's the CAD of my test fixture, this is already printed and working (including a slightly hacked OnStep software stack to gather data.)  My 200K count Gurley encoder goes on one side and the stepper motor under test on the other.  A nylon cord supports the weight to place a load on the stepper motor shaft.  The pulley has a 2" radius so the torque load (oz-in) = weight (oz) x 2. The encoder accuracy (+/- 6.5 arc-seconds) is easily sufficient to provide relevant results for this test.

Howard Dutton
 
Edited

Here's the form I plan to present the data in.

This example is just the "unloaded" data, I still need to get my weights measured/established before doing the other measurements for this motor.  Note the "unloaded" data was used for 8 and 16 oz-in also.

Howard Dutton
 
Edited

Here's another chart where i picked data to match the angular range, scale, and style of the Hackaday article.  It's easy to see this motor/driver is more accurate than any of the ones they tested:

John Scherer
 

Can’t wait to see these results Howard

Khalid Baheyeldin
 

Thanks for doing this Howard. Looking forward for the final results.

Maybe you can test TMC2130 (and the TMC5160 should be about the same),
as well as the LV8729 (for those who want to use microsteps slewing).

In order to make the info more widely available beyond OnStep users, please create
a Wiki page consolidating all of it (the various messages, data, charts, conclusions).

That way, Google will index it better, and it will be available to those who search from
the 3D printing community, ...etc. A final Youtube video may also help.

Also, add a link to that Wiki page from the comments on the Hack A Day article,
as well as a link to it from the Construction page.

Howard Dutton
 

On Mon, Dec 23, 2019 at 10:05 AM, Khalid Baheyeldin wrote:
Maybe you can test TMC2130 (and the TMC5160 should be about the same),
as well as the LV8729 (for those who want to use microsteps slewing).
It is my intention to test those and more.

Howard Dutton
 

I've updated the chart in the prior post with the data at 8 and 16 oz-in.

Next a test of the same motor in spreadCycle to see if it does as well.

Howard Dutton
 

Here's another chart.  Same motor/same test except spreadCycle instead of stealthChop.  The stealtChop mode came out slightly on top with better accuracy and less variance.

Howard Dutton
 
Edited

Note that in theory the TMC2130/TMC5160 microstep current table can be programmed to improve on this performance and I now have the data to do so for this motor.

Howard Dutton
 

And here's the same motor/test except stealthChop and 0.96A (40% power) instead of 1.7A (70.7% power), I expected a very different outcome here with less accuracy.

Howard Dutton
 
Edited

Now the LV8729 at 0.96A (40% power,) I will not test above this setting for this motor since the driver can't reach 1.7A  My plan is to test at 40%, 70.7%, and 100% power where possible.

Howard Dutton
 

And the last (for tonight) is the S109 running the motor at 2.32A:

Howard Dutton
 

There is now a Wiki page that covers this topic, I welcome comments and corrections, this is my best understanding of the subject:
https://onstep.groups.io/g/main/wiki/Stepper-Motor-Accuracy

I am not done testing motors but have finished with the 1.7A 0.9° NEMA17 for now I think.  Next will be the 0.85A 0.9° NEMA17 PKP244MD08 which is really more interesting to me since that's what my G11 uses.

Dan Sawyer
 

Thank you for this.

Please let me know if I am interpreting this correctly: I am planning on using this part. I interpret the two lower load 'steps' to be about. .035 degree.

I have a 360 tooth gear and worm assembly.

.035 deg * 60 min/deg * 60 sec/min / 360 = .35 sec per 'step'.

Is this a reasonable interpretation? In your experience are these steps strong enough to produce vibrations? Do you have any theory what is causing the steps?

My experience is steppers run more smoothly at lower voltages and currents. Given the gearing ratio if the scope / load were well balances is it practical to plan to operate at lowew voltages / currents?

Thanks for this work. Dan

On 12/23/19 4:53 PM, Howard Dutton wrote:
Now the LV8729 at 0.96A (40% power,) I will not test above this setting for this motor since the driver can't reach 1.7A  My plan is to test at 40%, 70.7%, and 100% power where possible.

Howard Dutton
 

I'd say that is zero crossing error, i.e. the "step stuck" problem that plagues the DRV8825 but here the LV8729 handles it relatively gracefully:

If you look at the Hackaday article you will notice that two of the three charts show an artifact at a similar location in the sequence... the DRV8825 is awful and the A4988 much better but it's still there.

My worked example in the Stepper Motor Accuracy Wiki page is for my Losmandy G11 360:1 so the figures quoted for each stepper driver apply to your case as well.

Howard Dutton
 

On Tue, Dec 24, 2019 at 08:23 PM, Dan Sawyer wrote:
In your experience are these steps strong enough to produce vibrations?
No.

Also, unless you are running the same motor (or at least a 1.7A NEMA17) at the same voltage and current setting... I wouldn't assume the zero-crossing error would be the same.

I will run tests on a 0.85A 400 step motor next.

Howard Dutton
 
Edited

The Stepper Motor Accuracy Wiki page now has data for the TMC5160 with the 1.7A NEMA17 motor.  It performed the overall best of all drivers tested (at 1.7A.)

Also, the results charts on the Wiki page were all changed so the statistical data was taken moving out only.  This is more technically correct since these figures attempt to be relevant to the RA axis that never changes direction during tracking.

Chris Vaughan
 

Interesting results Howard (although I'm still trying to figure it all out). The stealthChop looks better than I thought it would, even under load

Howard Dutton
 
Edited

The Wiki now has data for the 0.9° 0.85A NEMA17 Oriental Motor PKP244MD08.  This motor is similar in specifications to the frequently used STEPPERONLINE 17HM15-0904S.

I didn't take data for the S109 running this motor since that's not something any of us probably would ever do.  I only took a glimpse of it with the TMC5160 and that looked similar to the TMC2130.  I also spot checked at 12V (instead of 24V) here and there and in every case the results were basically identical.

The TMC2130 was best running the motor at 0.48A (looked similar at 0.85A except slightly worse oscillation... optimal is probably at about 0.6A or so, trading a little worse oscillation for more resistance against the torque load deflection.)


The LV8729 was best at 0.85A (looked similar at 0.48A with only slightly worse oscillation):