Introduction: Mechanical-Digital Steel Ball Clock
So I decided to finally learn how to use an Arduino and worked my way up to my very first project, a digital clock that is completely mechanical.
Enjoy!
Supplies
Electronics
- (1) Arduino Nano
- (2) PCA9685, 16-Channel 12-bit PWM/Servo Driver
- (1) DS3231, Real-Time Clock (RTC)
- (1) TTP223B Capacitive Touch Switch Modul
- (33) SG90 Servo
- (2) 20KG Digital Servo High
- (1) Servo Signal Reverser
- (1) 12V 6A Power Supply
Materials
- Walnut Plywood, 0.125"
- Walnut Veneer
- Clear Acrylic, 0.120"
- Carbon Steel Wire
- Small Screws
- Small Permanent Magnets
- 0.25" Steel Balls
Equipment
- Glowforge Laser Cutter
- General Hand Tools
Step 1: Circuit and Code
Even though this is my first project, the circuitry was actually quite straight forward. Everything connected with each other through the SDA, SCL, ground, and V+ pins.
I wont go deep into the code either since a lot of it was learned from other sources, but it was pretty simple:
- Each servo was controlled through one of the two PCA9685 boards. 7 segments per digit means 14 servos for hours and 14 for minutes. There are also two heavier-duty servos for rotating the housing, 4 for the lift, and 1 for the colon.
- The time is kept and retrieved from the RTC.
- I also wanted to play with a touch sensor so I used one to switch between military and regular time.
Step 2: Prototyping
Digits & Numbers
- For each digital number, there are seven segments and each segment is controlled by a servo.
- One of the biggest challenges was to pattern the servos in the best possible way so I could minimize the size of the clock as a whole. CAD helped with this.
To start I only made a single digit. You can also see the grooves in the lift where I originally intended for the steel balls to rock back and forth to align the balls in the right place. The clock would also change time by dropping all the balls first, but that got a little complicated. Probably a good thing though because the clock is already pretty loud and 100+ steel balls dropping every minute would probably get annoying.
Step 3: Design
Housing (Top Part)
- Each servo is attached to the wire bent into a linkage. The wire holds onto the one segment for the number and there are 4 magnets for each segment. Now repeat about 28 more times.
- The first layer with the magnets, second holding the servos in place, the third holding the electronics, and the backing last. Admittedly, its tightly designed and has poorly located electronics, but oh well.... :)
- The sides hold the two 20Kg servos that rotate the entire housing to the load/unload position.
Note to self: dont use different materials to build. I wanted to have the clock to be mostly clear (acrylic), with wood showing. Working with various thickness materials that also have different kerf sizes when laser cut gave me a huge headache.
Lift (Bottom Part)
- The lifter has 4 servos connected to help raise and lower the lift plate which holds all the steel balls in the locations of all the segments.
- To raise the lift a simple rack and pinion design was used.
Legs
- The 12V power comes though the bottom of the base up to the housing.
- I was able to discreetly hide the wires in one side of the legs with a slot for the wires to move without getting pinched.
Step 4: Finishing Touches
Throughout the design I was very conscious of having two versions of this clock. One that looked like wood all around and when I removed the three covers you would be able to see all of the insides and the mechanism working. I realize now that I will always have it with the covers on, but I still think it looks pretty cool naked!
Thank you for taking a look at my first Arduino project and also my first project posted ever!

Participated in the
Make it Move Contest 2020
30 Comments
6 days ago
My only question is: Where’s the instructions? It would be great to have a go at making this project, and while I’m very handy with tools and even some electronics, I’ve never programmed an Arduino before.
I believe this ‘Instructable’ is lacking a key ingredient that would qualify it as an ‘Instructable’.
4 months ago
So this is your first project huh? You don't think much of the maxim, start simple and build up to something complex?
Question 10 months ago on Introduction
Very great project!!! Amazing!!! Awesome!!! I'd like to make it myself. Is it possible to see a comprehensive manual so that I can try to make it myself?
Never seen such a prodigious project. You can be very proud of your self!!!
1 year ago on Step 2
This is a great project - congratulations! Have you considered providing the code and any of the cut files for laser/cnc? Well done again.
1 year ago on Step 4
Fantastic, beautiful all credit and praise for the hard labour, mechanical and by mind !
i could never have the patience to finish the job. Thanks for sharing 🙏
I have had a wonderful dag, today !! Magnificent ✨
2 years ago
Beautiful and very clever. Some code and SVG files would seal my vote.
Reply 1 year ago
Agreed. Something for someone to try since it is and instructions site.
2 years ago
Wow I've never seen anything like it! Amazing and looks very clean and sleek.
P.s. 4:20 was a nice touch :)
2 years ago
Very nice :)
You got an entry on maker-forum (german):
https://www.maker-forum.net/blog/index.php?entry/3...
Some "real instruction" would be great. Looks like a very nice father&son project.
Reply 2 years ago
On one hand I agree on the other I want to try and make it without knowing how. Love figuring out stuff and maybe it will turn out differently.
2 years ago
Simple, beautiful, and genius.
2 years ago
So subtle and beautiful! You really should consider turning this into a product, it's so mesmerizing!
2 years ago
That's an amazing project, the end result is as beautiful as it is technically brilliant.
Question 2 years ago
Very impressive as a 1st project. My only thought is that it would sell well if you had it in kit form. It would be bags of fun assembling but to build from scratch is a daunting task.
Answer 2 years ago
Eu mesmo compraria,o projeto e muito muito legal!!!
2 years ago
Great, especially for a first project.
In spite of your description i still have no idea what the principle of this clock is. What do the servos actually move? Magnets??
2 years ago
FANTASTIC - Beautiful on many levels!
2 years ago
Vraiment superbe.
Je l'ai vus sur arduino blog https://blog.arduino.cc/2020/10/11/this-mechanical-clock-tells-time-using-steel-balls/
2 years ago
Such a cool idea! Well done!
FYI, your project has been posted on Hackernews: https://news.ycombinator.com/item?id=24743716
Reply 2 years ago
how cool thank you!