CS60 2BB Technical Data
This page covers some technical data which has been found or measured for the servo used in this project.
The most basic data is taken from the back of the servo package:
Size is: 1.60 x 1.50 x 0.79 inches
Weight is: 1.56 oz.
Speed is: 60 degrees in 0.17 seconds at 4.8 vdc and in 0.14 seconds at 6.0 vdc.
Torque is: 46.25 oz-in at 4.8 vdc and 56.38 oz-in at 6.0 vdc
A concern about any hacked servo is whether the microcontroller running it will have good control over its rotation rate. RC servos are designed to rotate to a position over a +/- 90 degree range proportional to the width of a pulse sent to it from a RC transmitter or a microcontroller. Normally, a 1 millisecond long pulse rotates the servo to about 90 degrees left, a 2 millisecond pulse rotates to 90 degrees right, and a 1.5 millisecond pulse rotates to the center position.
In order to rotate to the new commanded position rapidly, the servo usually has a very high gain relative to the difference between the commanded position and the actual position. When a servo is hacked to provide continuous rotation, the actual position is fixed to always represent zero. Many servos will provide a maximum command to the motor for very small commands from the 1.5 msec center point. This characteristic makes it difficult to control the speed of the servo proportionately.
I measured the relationship of command pulse size to pulse width modulation (PWM) to the motor for the CS-60 BB servo and got the results in the following graph. It appears that this servo provides proportional control of the motor over the full range of the 1.0 to 2.0 msec command. Note that there is a deadzone of about .017 milliseconds at the center point. This zone provides no motor motion (i.e. the PWM command signal is zero).
The other interesting tidbit is a small reversal in PWM between 1.2 and 1.3 milliseconds of command. This is clearly not optimal. If you are commanding motor speed directly from the command pulse width, you will get a bit of a flat spot in speed between 1.2 and 1.3 milliseconds. It appears that this effect could be alleviated by subtracting 0.1 msec from the pulse command when the command is less than 1.3 msec. This would effectively skip past the reversal. When we install the encoder hack and go to PID type control, I suspect the reversal wouldn't be a problem as it would average out over time.
Anyway, we were interested in a servo meeting 3 criteria before selecting it for use in Ebot. The paper handed out at Saturday's meeting by Richard Vannoy showed how to hack it for continuous rotation and to add an encoder. This data shows that no hack is required to provide a wide range of proportionality. Unless, someone finds a servo with all these characteristics and not having the reversal in PWM control, I'd propose we select this one.
This servo can be bought at Hobby People (Hobby Shack) for $16.99. This is a bit more than many "standard" servos can be bought for, but the CS 60 has about 50% more torque than the standard servo which will give the robot more power; and hence more ability to deal with obstacles like rugs etc. It also has a clear case which makes it easy to inspect the gears and to drill a hole in the right location for the subsequent encoder modification. It's also available with metal gears which will also make it more durable for $21.99.
I just completed doing the continuous rotation hack and did a measurement of speed vs command. The result follows. It's not very linear, but that's why we add encoders and PID control later.