Digital Geneva Clock

by shiura in Circuits > Clocks

8609 Views, 162 Favorites, 0 Comments

Digital Geneva Clock

thumb.jpg
Geneva Clock - simple digital clock with sequential Geneva drives

A simple digital clock with sequential Geneva drives.

  • Easy time adjustment using sliding mechanism to release the engagement of Geneva drives
  • Easy to make with only 9 printed parts
  • Driven by a single motor
  • Easy to print without support structure
  • Ready for small printers : All parts can be arranged within 160 x 160mm build table

Supplies

スライド1.jpeg
  • 28BYJ-48 geared stepper motor and driver board comes with
  • Any microcontroller (Arduino, ESP32, Raspberry Pi, etc.)
  • Assortment of 2mm tapping screws

Print

スライド2.jpeg
  • Print all parts with supplied posture.
  • Support structure is not needed.
  • Remove debris and blobs well, especially around the axes and sliding surfaces.
  • Use the material in different color for "10min-slider" and "10min-axis" for better digit visibility.


Assemble

スライド3.jpeg
スライド4.jpeg
  • Assemble hour unit with "hour-weel", "hour-slider" and "hour-axis-cap" with a 2mm tapping screw.
  • Assemble 10min unit with "10min-weel", "10min-slider" and "10min-axis" with a 2mm tapping screw. The direction of the 10min-axis is regulated by the trapezoid-shaped hole.
  • Attach the motor to the frame. Then insert the 1min-wheel to the motor axis. Please make sure that the 1min-wheel is not tilted. 1min-wheel should be at very close to the top surface of the frame.
  • Insert two units to the frame then attach a rubber band to the screws on the back of the slider.

Circuitry

スライド5.jpeg
  • Use your favorite microcontroller to drive the stepper motor.
  • The program ("clock.ino") below is a sample for Arduino. If you use other microcontrollers, drive the motor 2048 steps per 10 minutes.
  • Housing of the arduino nano and driver board can be found at https://www.thingiverse.com/thing:5145523
  • There is some space in the frame. You could hide circuitry in the frame if you use small micro controller.

If the motor rotates to the opposite direction, change the source code,

from

int port[4] = {7, 6, 5, 4};

to

int port[4] = {4, 5, 6, 7};


1sec.ino below is the code for test and demonstrations (the motor runs every second).

Please download the program for Arduino ("clock.ino" and/or "1sec.ino") below.

Downloads

Time Adjustment

スクリーンショット 2024-03-02 17.55.06.jpg
  • Hour and 10min wheels can be rotated by your hand.
  • The program for Arduino drives the motor immediately after reset. Therefore, You can proceed 1 minute by reset button .
  • Alignment of the 1min rotor can be also possible by the reset button. Press the reset button when the digit comes to the correct position.
  • Manual rotation of the 1 min rotor is also possible because the current to the motor is shut down when it does not run.

Tuning of the Clock Speed

スクリーンショット 2023-11-18 18.44.44.jpg

The clock of Arduino is not as accurate as common clocks. Please tune the value to improve the accuracy of your clock.

  1. Measure the error of your clock. Adjust your clock correctly and wait for 24 hours, then Measure the error of your clock in seconds.
  2. Input the error value (in second) for the value named COMPENSATION_SECONDS at line #3 in the source code. If your clock gains (too fast), enter positive value, and vise versa.
  3. Compile and flash your program to your microcontroller.