Last edited · 38 revisions  


Stepper Motor Accuracy

We already know stepper motors can work well for telescope drives.  Properly implemented drives achieve high tracking accuracy while also providing reasonable slew speeds.  Still, I think there is value in this attempt to understand stepper motor performance and limitations so we might make better decisions with regard to design choices.

I like to think of the stepper motor as a moving magnetic spring that drags the telescope mount along in each axis.  Our imaginary spring would deflect a small consistent amount while moving a precisely built mount with a uniform low friction and perfect balance.  A mount where the axes take more force to keep in motion due to mechanical problems (a worm/wheel gear that's a little out of round and not well adjusted so it binds here and there for instance) or just being badly out of balance will not track as accurately unless our imaginary spring is much more taught (stiff.)  Mechanical systems also have a property where additional force is required when first setting them in motion.  For example the Declination axis of the telescope during guiding will be more resistant to changing position during autoguiding since it's normally sitting still and our imaginary spring will have a necessity to apply more force to start a movement than is required to keep that motion going.  The direction of motion can also change so the spring pulling in the wrong direction will have further to travel before applying force where it's needed in the opposite direction.  This can, I suspect, add latency and cause overshoot when autoguiding on the Declination axis.  Again, a more taught imaginary spring would suppress this tendency.

This useful Hackaday article "How Accurate Is Microstepping Really?" gives you an idea of just how far the stepper motor "spring" can deflect under load.  Their example is loading the motor with a torque of 13.8 oz-in and the best case shaft deflection was about 0.7°.

As an worked example of what this means to us, take a telescope drive at 360:1 overall reduction since that makes the math easy (and is relevant to my Losmandy G11 mount.)  One stepper motor shaft rotation is 1° of telescope movement on the sky and (0.7°/360)*60*60 gives the angular error in arc-seconds, in the case of the 200 step motor above, that's 7 arc-seconds.  Since we're normally shooting for some small fraction of an arc-second resolution this doesn't sound too good!  But we still need to examine just how much torque load is on that stepper motor shaft in our application so 13.8 oz-in through a 360:1 reduction becomes 26 lb-ft of torque.  That's 13 lbs at two feet from the axis to place the force nearer to where we tend to apply it moving the telescope around and adding cameras etc.  That's a sizeable amount and we would balance that out to something < 2 lbs (at 2 feet from the axis) typically.  So lets guess 4 lb-ft and the force varies by +/- 20% as the 'scope is moved around and re-orientated.  Run the calculation backwards and that comes to about 2 oz-in.  So if 13.8 oz-in gives 7 arc-seconds, and things scale linearly, 2 oz-in would give about 1 arc-second.  There are efficiency considerations and friction at work here too so I'd double that number when making an hopefully realistic estimate, say 4 oz-in* and 2 arc-seconds of displacement and a short term range of +/- 0.4 arc-seconds (20%) as the friction/wind/etc. apply forces.  This is assuming a high quality mount with smooth motions.

Now I wouldn't call a telescope drive tracking within +/- 0.4 arc-seconds "high performance" but it'd probably be ok for imaging with smaller short FL 'scopes and/or visual use.  But, that's assuming very smooth microstepping.  The DRV8825 took a couple of 1° jumps in those Hackaday article charts and that has nothing to do with torque load etc. so it would be immediately noticeable in the eyepiece or an image, at 10 arc-seconds!  Not surprising, that's just the "step stuck" zero crossing current measurement mess the DRV8825 does; it's not always that bad but we've seen it all too often.  The other drivers they tested still showed microstep positional errors that would become about 1 or 2 arc-second on the telescope axis, hopefully the mass/momentum of the telescope would smooth some of that out; not ideal.  One way to compensate for that is to increase the overall reduction well above 360:1 in my example but that has its own drawbacks since it often complicates the drive design and can cause tracking errors of its own (imperfect gears/timing belts/etc.)

Fortunately there are better stepper motor and stepper drivers out there.  Stepper motors with 400 steps per rotation have a 2x higher angular resolution and modern stepper drivers like the SSS TMC5160, SSS TMC2130, LV8729, S109 are readily available at low cost.  These are the drivers we typically recommend and use here.  So in order to get a better understanding of the performance of a wider range of step motors and stepper drivers I've done some measurements to characterize the angular shaft displacement and microstepping performance.

Below are the most relevant measurements currently available and an estimation of what their performance would be like in our worked example.  Note that while all measurements below were taken while running the stepper motors from 24VDC I went back and did spot checks at 12VDC and noted no significant changes in accuracy.


The TMC2130 stepper driver (Watterott v1.1) in stealthChop mode running the ORIENTAL Stepper Motor model PKP246MD15 (1.5A, 400 step, NEMA17) at 1.5A peak current (70.7% power.)



The TMC2130 stepper driver (Watterott v1.1) in stealthChop mode running the ORIENTAL Stepper Motor model PKP244MD08 (0.85A, 400 step, NEMA17) at 0.85A peak current (70.7% power.)


The TMC2130 stepper driver (Watterott v1.1) in stealthChop mode running the ORIENTAL Stepper Motor model PKP244MD08 (0.85A, 400 step, NEMA17) at 0.48A peak current (40% power.)