My own "a million times clock-clock"

cheap rip off from the art installation of Humans Since 1982

Public Chat
Similar projects worth following
As many others, I have seen the very cool clock clock called "a million times" made by "Humans Since 1982". But I don't need it, so I will not spend more than 10kEUR :-)
However, to do one on my own... could be interesting. So let's start, let's resign, let's try again... You know it ;-) Anything else than straight forward.

I try to share some of my attempts to you. Any comment is warmly welcome!

How does it work?

I have one master controller (ESP32) which has all the moves and forms saved in the code. 

Every Motor (VID28-05) has one ATMEGA328P Microcontroler which is a slave on the I2C bus. Every Slave has his own address on the bus.

With an IR control I can start the movements. For this, the ESP32 (Master) sends out the target positions for each handle via I2C. As soon as this is done, he sets a pin to HIGH so that all slaves start to move. As soon as all slaves reached their position, the master sends out the next etc. 

The flaws of this approach is clearly the noise and the precission of the VID28-05 steppers. So now I try to build the same with the X40 steppers. 

The code ist very simple and offers a lot of freedom. However it has to be improved to be more "user friendly" :)

First run with the new library MotorVID28_05

Zip Archive - 19.81 kB - 09/15/2019 at 14:43


PCB and Arduino code for the Video dated 26-08-2019. Only a test of the slave. No communication with master

Zip Archive - 33.59 kB - 09/02/2019 at 21:05



Eagle schema of PCB of slave

Portable Network Graphics (PNG) - 67.26 kB - 12/08/2018 at 17:45



Wiring of Master

Portable Network Graphics (PNG) - 2.29 MB - 12/08/2018 at 17:43



Wiring: Power Supply of circuit

Portable Network Graphics (PNG) - 2.16 MB - 12/08/2018 at 17:43


View all 9 files

  • 1 × ESP32 as Master
  • 9 × VID28-05 stepper motors
  • 9 × ATMEGA328P MCU as slave

  • Next attempt with new library

    chaterrony09/15/2019 at 14:42 0 comments

    So, after the last attempt (without acceleration) worked, I realized that the accelerations are hard to compute for two handles in parallel for an ATMEGA328 with the accelstepper library. The square root calculation takes a lot of time. So I have two solutions:

      A) one MCU per handle (this will be expensive and a pure Overkill, but it has proven to work well)

      B) change the way to calculate the acceleration

    So obviously I have chosen B...

    The approach for the following discussion is always, to have a certain frequency at which the programm is run (at the moment at 0.6ms) and it checks every time if there is a move to be run. Means, a speed of "2" makes a step every seccond tick. A speed of "4" makes a step every 4th tick...

    As first, I calculated with a simple formula the acceleration and deceleration. Formula for deceleration:


    This Formula works very well for acceleration, but at deceleration it is highly risky that the computed values will not match exactly and it ends up in non-matching position vs. timing. 

    So I made it the "easy" - and for programmers horrible - way. I saved an array for the acceleration. After how many ticks, shall the next step be made. The array is 50 items long:

    accelArray[50] = { 12,11,10,10,9,9,8,7,7,6,6,6,5,5,4,4,4,3,3,3,3,3,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,1,1,0,0,0,1 }

    The first move is after 12 ticks. Tick timing is 0.6ms, so after 7.2ms the first move is done. The seccond step is after 11 ticks (6.6ms) etc. To decelerate I run the array backward. The main curve was calculated and then tested with different speed/acceleration combinations until it looked smooth. 

    So the acceleration phase with acceleration value of "1" ist always 50 steps. If you choose acceleration of "3", then it runs the array 3 times. Means, 3 times after 12 ticks, then 3 times after 11 ticks… 

    It's not nice, I know, but at least I was able to make it work smooth and reliable.

    Here is the video:

    The code and library is uploaded in the document section. 

    Any input/suggestion is highly welcome! :-)

  • New PCB arrived

    chaterrony08/26/2019 at 19:25 2 comments

    So, summer is ending and the new PCB arrived after the vacation. The Hall sensor works pretty well. However, the speed is an issue at the moment. Not that I want to run the handles very fast, but the max speed (if both are running at the same time) is roughly 9s/turn. And in addition, when one handle is running at constant speed, it changes speed when the other is accelerating. Seeing all the other attempts on the internet, I doubt that the ATMEGA328p is at his limits. But what is then the reason??? 

    Video can be seen here: 

    And yes, I did an error on the PCB, therefore I had to handsolder a little bit ;-) Looking for half a hour on the PCB prior to manufacturing is obviously not enough...

    Have a good start of the week!

  • Home function with hall sensor tested

    chaterrony04/27/2019 at 22:10 0 comments

    Finally, I managed to work again on the prototype. The zeroing of the handle seems to be a Problem. I did not find much Details on all the other Projects which attempted this. My Approach was now with a Hall sensor and a small magnet. I was surprised how precise it can work on a distance of 5mm. It works also quite good on a larger distance. 

    Now I have to make new PCB and replace all my handles with the new PCB. Let's see how this will work...

    You find the Video of the test here: 

  • First prototype working

    chaterrony11/30/2018 at 15:59 0 comments

    After many attempts, many PCB scraped... here is my first working prototype. However, there seems to be many issues with it.

    As motors I have used the cheap VID28-05, but trying now also the X40 motors.

View all 4 project logs

Enjoy this project?



Mike Szczys wrote 12/03/2018 at 16:42 point

Just watched the first proof of concept video. This is super promising! You mention there's many issues, but this is further than I've seen anyone else make it on building their over version of this clock. Keep going... this is awesome!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates