The purpose of building this clock was to tell time. Oh yea and to try out different motion control and feedback systems.
The hours carriage moves horizontally to expose the appropriate hour. It is driven by a Stepper Motor connected to a timing pulley and belt. The position is detected by a photo-reflector sensor detecting light and dark areas on a rail.
The minute arm moves vertically to align the current minute with the dash mark next tho the hour numeral. The minute arm is driven by a stepper motor mounted on the carriage with a pinion which drives a rack on the minute arm. Position is detected by an encoder attached to the minute motor.
The seconds are indicated by a pointer that runs down the minute arm and points to the current second. At 58 seconds the pointer returns back to the top of the minute arm and starts moving down again.
The system is controlled from a python script running on a raspberry Pi.