My attempt to put together a digital clock made of analog clocks, as originally created by Humans since 1982 and David Cox
To make the experience fit your profile, pick a username and tell us what interests you.
We found and based on your interests.
Wow...I can't believe it's been 5 years since I started this project. I'm tempted to write that "life happened" after that, but that's just an excuse for not finishing what I had started. I'm not sure what got me thinking about the Clock Clock again, but here I am. I'm going to see if I can pick up where I left off. I still have all of the parts that I bought. The code must be lying around here somewhere.
A quick browse around Hackaday shows that others were able to get this thing made. I haven't looked into the details of their implementations, yet. I'll use as much information as I can from successful projects to make this one successful as well. I'm excited to see how their approaches differed from mine, as well as how they were similar. But, I'm mostly excited about the prospect of having this project hanging on my wall instead of in my regrets. This post is meant to serve as a public commitment device that will nudge me to follow through. I welcome any advice.
( Disclaimer: I'm no writer. I apologize in advance. )
I'm going to try and post a log around weekly, if for no other reason than to ensure I attempt to make some progress each week between posts. This first entry will (edit: begin to) summarize what I've done to date.
I am software developer with no prior electronics experience. Tooling around with these things is something I have wanted to get involved with for some time. When I saw the Clock Clock in action, I immediately thought "I have to make one of those". So, here I am. I understand that this project is ambitious for a neophyte, but I intend to take my time and see it through. Much of the time I have spent so far has been developing a basic level of understanding of the tools I intend to work with. (What is Ohm's law? How does this Arduino thing work? etc...)
Then, it was time to think about the specific technical details of the project. I browsed around the web for ideas and I ran across Hackaday for the first time through the page that I've linked to this project, which was (lucky for me) a discussion about how to do exactly the thing I wanted to do.
There are 24 clocks in the piece and two hands on each clock. My first concern was how to make the hands go around. I decided to use 48 small stepper motors ( the little 28BYJ-48 ) to drive them. My reasoning:
After some quick proof-of-concept sketches, I went ahead and ordered 50 of the little steppers from China for less that $2 each with the drivers, partly because of the long lead time on delivery, and partly as a commitment device to encourage myself to get cracking on the project.
I'll be controlling things with an Arduino Mega. I initially thought that I'd need the Mega to help handle all of the IO, but the extra pins may be moot.
I'm still green and unsure about best practices for communicating with a large number of devices (unsure of everything, really). With that said, my current plan is to use a bunch of chained SIPO shift registers (74HC595). Since each of the 48 motors requires 4 pins to drive and each shift register has 8 outputs, I'll need 24 of the registers to drive all of the motors. Somewhat conveniently, each register can drive the two hands of one clock, so I'll probably put the registers inside the clocks with the motors. The whole chain will only use 3 pins on the 'duino.
I have the software side of that sorted. I modified the AccelStepper library so that it would manage a collection of steppers and communicate with them through the shift registers. It will send the output values to all of the steppers at the same time, only once for each iteration of the arduino's loop() (or each time I want 1 or more of the steppers to take a step). The drawback to this shifting approach is that driving N steppers through the shift registers in this way requires ~3N digitalWrite() calls for each step. When I tested a sketch to tell the arduino to pretend that I had 48 steppers running it was initially very slow. However, including the DigitalIOPerformance library to improve the speed of each write has been a big improvement. I am confident that things are moving fast enough now, but I still have plans to integrate 48 inputs (which I will detail later). That may push the system over the edge back into tediously slow territory. In fact, my next bit of work is to test exactly that. If someone with more knowledge than I recognizes that shift registers are simply the wrong approach to take here, please let me know. I still have time to reverse course.
This is running long, so I'll bore you with the rest of the technical details of my tentative approach in the next post.
Create an account to leave a comment. Already have an account? Log In.
New proto, next month final version in Scale 1 ( 10 * 5 ) clocks on aluminum plate.
https://www.youtube.com/watch?v=bC73sz6NJ0I
Im finaly finish One :) https://www.youtube.com/watch?v=6xYojza_dPQ&lc=Ugwl-Drz0M5CT5lZbx54AaABAg
That looks amazing. I would love to hear some details, since I'm attempting to pick this project back up.
Hi Matt. I am about three years late to your very excellent project and am wondering if you ever finished it. I am a newbie to EE and programming but am always up for a challenge. Please let me know if you finished it and, if you would be so kind, post how you did it. Many thanks.
I have finished similar project. It looks quite perfect and works quite perfect too.
"Perfect" is the right word. Your project looks precisely how I want mine to look. Also, your finishes look so polished. Beautiful. Now that I'm picking this up again, any information you can provide about your approach would be appreciated.
Hi !
I'm looking for any updates. Did you finally succeed your project ?
Thanks!
I also just came across this project and wanted to see if it was feasible to construct. Having no experience with the mechanical/programming chops necessary, I would love to learn from anyone's prior attempts.
Thanks!
Hello, I saw the clock not long ago and I thought the same as you guys, I have to make one!
My first approach was to use 24 28BYJ-48 and 3D print some gears (1/60) to move both hands with just one motor and use shift registers. But after reading you, maybe it's better to use 48 motors. I am proficient with arduino but not with steppers and definitely not with managing 48 steppers and 48 hall sensors for initial positioning.
I was wondering if any of you have made some progress that you could share...
Thank you in advance
Hi Ray, I too have ordered some dual shaft steppers in march 2015 and did some testing with them. Why do you want to use the EasyDrivers? In my opinion, the 74HC595 Matt wrote about are good to drive the motors directly.
Have you put some thought into the cases, yet? At first I wanted to buy some cheap analog clocks and stuff my own electronics + motors in it, but couldn't find anything good... or cheap enough to buy 24 of it :(. I tried this one: http://www.ikea.com/de/de/catalog/products/80196593/ from IKEA, which is cheap enough, but I think the frame is too broad and the overall design is kind of unpleasing.
As much as I'd like to have seperate frames for each of the clocks, I'm thinking about making a metal plate and just laser engrave the little clocks onto it... What's your apporach?
The software part for driving all motors via chained shift registers is not too complicated. Alas, I'm not too concerned about the speed of movement because I'm not planning to use it for anything else than showing the time... so a few seconds for digit rotation is fine.
This is also why I won't 'upgrade' to 360* rotation and will stick with the mechanical stops for initial position calibration.
The only thing I have absolutely no clue about are the hands. Have you found a site where you can buy them?
Hi Markus,
I've experimented with 3 ways of driving the motors, and all seem to superficially work: EasyDrivers, 74HC595 shift registers, and some Darlington arrays. My short term plan is to set up 3 individual motors running each of these solutions non-stop to see what the reliability is like.
For the case, I was planning on building a wooden box and then putting a thin face of either wood or plastic on the front. Separation between faces could be purely decorative (paint or tape) or it could be some molding. Ideally I'd find a picture frame with the correct dimensions, but so far I have not found anything pre-built. I was not planning on building separate units - I will just mount them all in a single enclosure.
For the hands, I was just cutting them out of coffee can lids for now. I also have balsa wood that might look nicer.
I've been distracted learning "Processing" and trying to come up with algorithms to make the hands work. I'll update my project when I have something worth sharing.
I received the vid28 motors. They are two almost-identical motors mounted side-by-side, geared to the double shaft. They come apart completely with nothing more than 12 Phillips head screws - and one somewhat nerve-rattling friction fit. The good news is the side with the friction fit does not need to come apart at all to remove the hard stops. The first hard stop is on the outside shaft itself and is easily removed with a file. The second hard stop is inside of the more easily disassembled motor, and is molded onto one of the gears. This is also easily removed with a file. I can't imagine that it would take more than 5 minutes per motor once I've done a few. I'm now awaiting my Easy Drivers. I'm going to spend some time looking for good spots on the motor to mount some kind of an index sensor so that it can be zeroed - that would be better than having to index at the front.
Hey, Ray. I did make some more progress. I put together a really cheap quick-and-dirty single clock as a proof of concept. Then, I had a change of jobs, which made me put the project down for a while. I'm glad you pinged me about it, because that was just the reminder that I needed to get back on it. I'll post some more updates soon as progress is made.
Have you made any more progress? I have been researching the exact same project. I planned on ordering vid28 stepper motors - they are made for automobile instrument panels and have two motors along the same axis - so that eliminates me having to do any kind of gearing. They have a hard stop inside, but it looks like this is something that I could remove. Without the hard stop, I would need to come up with some other way to zero them, but that's very solvable. For control I was going to use EasyDriver stepper controllers. It can do up to 1/8 step (for smoother motion) and needs only 2 inputs (step pulse and direction). There is a design for wiring up 4 EasyDrivers together with some shift registers to control up to 64 motors (called Easy Driver Quad). I only need 48 for Clock Clock, so that satisfies. I'm confident that this hardware will work, so I've actually been spending more time on software. I'm currently learning some "Processing" in the hopes that this code will be easy to port over to an Arduino (since the Arduino software is based on Processing).
Become a member to follow this project and never miss any updates
By using our website and services, you expressly agree to the placement of our performance, functionality, and advertising cookies. Learn More
hi, it is awesome this work. Do you have a list of all components, so that I can buy them for a friend, who can build up this clock then for me? Kind regards Knut