# How can I tell if a servo motor is capable of being controlled degree by degree?

I want to create a rotating control mechanism that can turn a surface to face any direction in a sphere. My dad (an electrical engineer) said I can probably do it by connecting two servo motors together.

I am looking for a servo motor that can do what I want to do, which is moving the sphere with decent precision (within ~1 degree) but I don't know which kinds of motors are able to handle such precision.

Another challenge is that one servo will have to hold the second servo on top. As I understand it, the torque rating determines the maximum amount of force the servo can exert on its load so I can figure out if the servo is strong enough through some math?

• Please explain in more detail what this surface is supposed to do. – Bending Unit 22 Aug 19 '15 at 17:29

The measurement you're looking for is called "resolution" -- it will tell you how many positions the motor can be in. One way to calculate this is based on the number of bits returned by the encoder (or resolver). This page has a great introduction to servo motors, including this bit on resolution:

Resolution – this is a measure of the smallest angular movement that the motor can be commanded to make. This is pretty crucial [...]. However, things get quite tricky here, because most hobbys servo motors do not provide their angular resolution ratings – this can be quite infuriating, as servos will be rated as “super accurate”, but nothing more. Resolution is also confusing because in reality there are two resolutions at play here – the Servo Controller Resolution and the Servo Motor Resolution.

The Servo Controller Resolution is the smallest change to pulse width that the servo controller can make. If the exact pulse width is specified to your servo controller, by a 16 bit number, you should be able to specify $2^{16}$ distinct pulse widths. If the servo motor that you have, has a rotation range of 180° the controller should be able to command it to move to one of $2^{16}$ positions, giving you an angular resolution of 0.003°.

However in reality, because of the physical design of hobby servos, the servo motor resolution is much coarser than that. Depending on the motor, you should be able to get between 0.5° to 0.3° (an exception is the MX-28 which has a resolution of 0.088°). I.e. it would take a few step changes in the pulse width, before the change in pulse width got large enough for the hobby servo motor to actually detect it and move. Like a bunch of other properties, it turns out that resolution depends on the load that you are trying to move – at larger loads, the resolution of the motor could drop off (though you may be able to counter this by operating the motor at higher voltages – provided you stay within the rated motor voltages).

Depending on the type of servo, the presence of a gear system might work in your favor. If it takes multiple turns of the motor to get one turn of the output shaft, you will have gained resolution and torque (at the expense of angular velocity).

I had a very similar problem. I searched several days in internet without success and then I took a wrong decision. I took a "normal" PWM (pulse width modulation) servo and it was extremely imprecise. The position results were not exactly reproducible. Additionally these cheap servos always rotate with the maximum speed which is mostly unuseful.

After my project was already finished with the wrong servos I knew that the servos which I need really DO exist. Why didn't I know of them before ?

I tell you the secret: Use Dynamixel. I use the AX-12A which runs at 12V and does precise positioning and allows also to control the speed. And if this would not be enough it also returns to you the current position from 0 to 300 degree! I don't know of any other servo which has this functionality.