I have in mind a project for which I'd need very high resolution, say 0.125 degrees or less. I'm wondering if this can be obtained with servo directly connected to my mechanism or if I need additional gears to improve resolution. The former will add complexity...
Moreover, which is the limiting factor for resolution: the servo itself (in case, any suggestion for the choice?) or the way to control it?
I thought it was the servo, but apparently no RC servo manufacturer mentions the resolution in the specifications of his servos...
Many thanks.
It is a mixture of both. With the arduino there is only 8 bits of resolution in the control pulse so that will limit you. Precise control servos are very expensive and are not the normal cheap hobby type.
Grumpy_Mike:
It is a mixture of both. With the arduino there is only 8 bits of resolution in the control pulse so that will limit you. Precise control servos are very expensive and are not the normal cheap hobby type.
There really is no '8 bit limit' as the servo library does offer the writeMicrosecond commands with a nominal range of 1000 to 2000 milliseconds (but most servos allow some over and under that range) for a resolution of 1000+ "steps" over it's total movement range. Some better servos do publish their resolution value but don't recall what nominal value might be expected but I think it is some number of microseconds value.
Your requirement of .125 degrees over 180 degree total range is 1,440 steps is close to the writeMicrosecond capability assuming normal over and under pulse range of most servos, so the servo library comes close to meeting your requirement. The servo might be the limiting factor but specific servos do vary a lot in quality (and cost), kind of "you get what you pay for" proposition.
I think standard hobby servos have a ~5us dead band to reduce hunting. The best resolution I've gotten with a standard hobby servo is ~.4 deg.
Grumpy_Mike:
It is a mixture of both. With the arduino there is only 8 bits of resolution in the control pulse so that will limit you. Precise control servos are very expensive and are not the normal cheap hobby type.
The Servo library resolution is 1us if using writeMicroseconds(), about 10 bits.
The main issue is mechanical quality, unless you have a proper shaft, ball-bearings and a
high resolution encoder on the output shaft of the servo you won't get 0.125 deg. Industrial
high resolution optical encoders are not cheap.
I'm sure someone does a precision servo in an RC-style format, but it will have digital
control and cost $100's I suspect...