# How to achieve very accurate/fine rotation with motor

I am running an experiment where I need to rotate a lightweight dial (<5 grams, so very low torque requirement, and fairly slowly), but need to do very accurate, fine steps of 0.03 degrees.

Something like this (shown as direct-drive here, but I'm open to other options as described further below):

Which of the following motor setups/approaches would be most likely to succeed for my goal?

1. A typical stepper motor (say with 1.8 degree steps) and use 128-microstepping perhaps? However, this article states microstepping will achieve only resolution but not accuracy.

2. A stepper with planetary gearbox (51:1 ratio) like this example, or would this suffer from too much backlash?

3. A brushless DC motor along with a magnetic rotary encoder like AS5048 (14-bit resolution), and write my own PID loop to achieve the desired position?

4. A stepper combined with a magnetic rotary encoder to keep track of true orientation and consequently use this as feedback to correct against backlash in geared case (approach #2), or against missed steps in microstepping case (approach #1)?

5. Or some other approach?

Note: I have read there exist industrial-grade servos which can comfortably achieve the 0.03 degrees goal but these are way out of my budget, so I was hoping for a less expensive solution at the cost of tweaking and learning.

• Per question 2. Read the link you provided. That particular motor has backlash in the 1 degree range. Oct 7, 2015 at 5:09
• As you need very little torque, a simple spring loaded anti-backlash arrangement should allow you to use any worm or gearbox without worrying about backlash. Choose motor/gearbox arrangement for its other properties. Oct 7, 2015 at 10:51
• If you don't need full rotation of the dial, you can use a galvo system: en.wikipedia.org/wiki/Mirror_galvanometer Oct 7, 2015 at 10:55

I'll give you some advice, but the first thing you need to do is be aware that you're trying something that may well be beyond your abilities. .03 degrees (1/2 milliradian or 2 minutes of arc) requires a great deal of care, and probably access to a good machine shop.

In order:

1) You are correct to be leery of microstepping. It simply will not give you the accuracy you want. The article is quite correct.

2) A stepper with some sort of gearbox will work well. But you'll need a high-precision gearbox, and they don't come cheap. It will be difficult to find a gearbox which is made with your low-torque, low-speed, high-precision needs in mind. You have not specified your exact use, but keep in mind that if you do not require motion reversal during operation, your backlash requirements pretty much disappear. As wini_i has answered, a worm gear will work well, but be aware that mounting the gear requires considerable precision.

3) A motor with an encoder is possible, but there are a few problems. The biggest is that you need an encoder with at least twice the resolution of your system requirements. The difficulty with a digital encoder is that if the shaft starts to drift due to motor torque you won't know it until the encoder makes a step. It may then drift the other way until it makes a reverse step, etc. As a result, making a stable positioning system with such an encoder is extremely challenging, and a simple PID controller won't be adequate. Furthermore, trying to roll your own encoder from a device such as the AS5048 has a bunch of issues which the web site does not mention. Chief among these is the need to accurately position the center of the sensing area with respect to the center of the shaft. The higher the resolution, the greater the precision required.

4) A stepper with an encoder sounds good, but it cannot compensate for some mechanical errors. Specifically, it cannot help with backlash problems. The most likely result of such a system is that it constantly hunts between two mechanical shaft positions. Compensating for microstepping errors is (sort of, maybe) possible, but bearing friction and stiction may give results remarkably like gear backlash.

5) Other? Well, maybe. Perhaps your system does not need to actually step. How about if it turns very slowly and precisely? In this case you don't need a position loop, but rather a velocity loop with velocity derived from an incremental encoder (cheaper by far than a parallel encoder). In principle you could use a dial mounted directly to a motor shaft, but make a fairly massive dial whose inertia would compensate for disturbances such as bearing irregularities or motor glitches.

But let's stick with a geared stepper. I'm inclined to agree with Daniel that your best bet is a timing belt/timing gear setup. With a few cautions. You'll want as fine a timing belt gear pitch as possible, preferably an MXL series. Your .03 degree resolution gives 12,000 steps per revolution, which says you need a 60:1 reduction with a 1.8 degree stepper. This is a problem. If the motor pulley has 10 teeth, the dial needs a 600 tooth pulley, and you're not going to find one of those. You'll need to try one of two approaches. Either use a two-step reduction, or try something like a x8 microstep followed by a 7.5:1 reduction. A x8 microstep gives motor steps of (nominally) 12.5% of normal, and if the motor has 5% accuracy you should be all right. You'll also need to take pains to keep the belt tension constant to reduce play in the system. You'll need to make a good stiff mounting for the motor and dial, which is where a good machine shop comes in. Depending on what's attached to the dial, getting the dial perfectly centered on the shaft will be important too. The fact that your load torque is very low will help a great deal.

• What a fantastic analysis -- certainly one of the most useful answers I've happened upon within SE! Oct 7, 2015 at 7:23
• Regarding #2: Yes, assume my experiment is OK with the dial spinning only one way during its existence -- i.e., I'm OK with it reaching my target orientation by moving like a clock (for example, only clockwise direction). Can I completely ignore backlash concerns in that case, irrespective of whether I'm accelerating and decelerating during the unidirectional rotation? Oct 7, 2015 at 7:24
• @boardbite - If you run the dial in one direction you get rid of most backlash problems. However, unless you run at constant speed and load (including friction) you'll still have some effects. If you step, when the dial stops it may rebound slightly (like a car when it comes to a stop) and this will throw off your accuracy. Exactly how much effect you'll get is something you'd need to find by experiment. Adding an intentional frictional load will help, and with large reduction ratios you get lots of torque so that's not necessarily a problem. But high precision is hard. Oct 7, 2015 at 17:37
• you mentioned geared steppers in #2 and at the end... What is your opinion about using something like this gear-reduction-attached motor, which claims 0.0072 degrees/step -- is this realistic? Oct 8, 2015 at 3:58
• @boardbite I suspect that unit will do what you need. Of course, you'll have to get a 5-phase stepper driver. However, I can't quickly find the data sheet on the motor, so without actual performance specs I make no guarantees. Oct 8, 2015 at 15:06

A worm gear drive can take care of what you are looking for. By selecting the size of the gears you can control the resolution and by controlling the mesh of the gears the accuracy can be guaranteed. Direct drive the worm for best results and add an encoder that will provide the needed resolution.

• If I go with this configuration (i.e., my dial attached to the worm wheel) and accuracy can be guaranteed by choosing appropriate specs of the worm combo, then what will the role of the encoder be? Oct 7, 2015 at 4:24
• The motor would be attached to the worm-gear. You can't drive it the other way. If you used a stepper, the encoder would probably not be necessary. Oct 7, 2015 at 5:39
• @vini_i: Where can I get these kinds of wheel/worm/shaft combinations? Thingiverse has a bunch of 3d-printable designs of worm+wheel combinations of programmable size, which I guess might work? Oct 7, 2015 at 7:31
• For this sort of application you want a proper machined worm gear -- probably brass. There are plenty of machinery component suppliers, one that springs to mind (with an international presence) is Misumi. You may need to design in some adjustment on the engagement to avoid backlash. Oct 7, 2015 at 9:10
• Remember to lubricate really well! There's a lot of friction involved in worm gear.
– yo'
Oct 7, 2015 at 15:26

Harmonic drive is often said it has zero backlash.

https://en.wikipedia.org/wiki/Harmonic_drive

• This is an incredibly good solution for the OP's problem. The only issue might be budget, such reducers can be expensive. You can buy ones with integrated motors and encoders like harmonicdrive.net/products/actuators/sha which are awesome for high precision inspection applications and the like. Oct 7, 2015 at 16:25
• @DougMcClean: Ah, the old "so expensive that their site doesn't list the prices" ! Do you think a 3d-printed solution like this or else this might work reasonably, or is harmonic-drive performance severely dependent upon part quality? Oct 7, 2015 at 23:44
• @DougMcClean: Found something, I think! Would something like this motor this work well? It claims to have a harmonic gear reducer inbuilt and the image states 0.0072 degrees/step. Oct 8, 2015 at 2:59
• @boardbite It has a 5 phase stepper, hard to find a suitable driver. ebay.com/itm/… ebay.com/itm/… Oct 8, 2015 at 8:03
• @boardbite Yes, those are very nice motors and I have seen them used in similar applications. Marko is correct that it is tough to find a driver, but Oriental makes one that they sell with those motors. Oct 8, 2015 at 12:31

The simplest thing to do would be to use a stepper, geared down with a belt drive. The belt will have some spring, but very little (no?) backlash.

Edit, like this:

• Can you provide an image of what you mean? Do you mean use a timing belt along with a small pulley on the stepper shaft, and a larger pulley/disk elsewhere, holding the dial? Oct 7, 2015 at 4:23
• Put a small gear on the motor, a larger gear on the dial, and a toothed belt between them. Answer edited. Oct 7, 2015 at 5:40
• Got it; thank you -- this seems the least expensive way and fastest to implement. The 2nd motor here is irrelevant, right? Even outside of my application, I don't understand why two motors would need to be paired up via a belt system like that. Oct 7, 2015 at 7:07
• That is just a picture I found. It's a 'spindle conversion kit' for driving a spindle with a retrofitted stepper motor. I have no idea what its use is. Oct 7, 2015 at 7:25