Servo Motors

I chose to use servos instead of steppers for simplicity. Steppers would have made controlling the hands precisely easier but require more complex control logic from the arduino. I wanted to use off the shelf components as much as possible and the arduino motor shield can only handle two steppers.

Most commonly available hobby servos have a limited range of movement. Generally they can swing 30 degrees either side of the center position. It's pretty easy to modify these servos for continuous rotation but you sacrifice the ability to position them precisely. Since I wanted the hands to be able to turn a full 360 degrees, I came up with the following possibilities:

1) Modify the servos for continuous rotation and try to control the exact location by timing the movement. I thought this would be difficult or impossible and would make recovering from a power outage a manual affair since the control logic wouldn't know where the hands are starting from.

2) Attach the servo to the hand with a 1:6 ratio. This would let me use the 60 degree capability of the servo to move the hand 360 degrees. The downside is that the hand will also move 6 times faster than the servo. I wanted the hands to move more slowly like a real clock. I'll have to do a a lot more research to design a gear train that could slow the rotation of the hands and still be simple enough to manufacture in my shop.

3) Fortunately I found a third option. It's called a sail-winch servo. It's used to control sails on R/C boats and has a much wider range of rotation. Most are pretty expensive but GWS makes a sail-winch servo in my price range with a 720 degree rotation.