A Million Times 288 clone

start to finish of making your own A Million Times 288

Similar projects worth following
I am going to make my own A Million Times clock with 24 x 12 small clocks.
The first time I saw this, I became a fan of it, however the price tag scares me, so I decided to make my own version. I did intense research online on how to make it, and I found the one on helps me a lot, so I decide to give something back, which is the design, programming and process of my version.

Needs 72 arduino nano as slaves to control 288 BKA30-R5 motors, 1 arduino mega (only because its I2C has build-in pull up resistor, any microcontroller that has I2C works) as master, master calculate the position and send command to slaves through I2C, then slaves will drive motors to desire position.

One thing quite important is determine the clock handles position since step motors only know how many steps it's driven but no position information, so I have to add 2 hall sensors for each motor, drill holes under hands and put a tiny magnets there, so each time the handle pass by a hall sensor, the arduino nano knows and I can record the position information.

At first I let clocks re-zero every 10 minutes to make every hand of clocks to be where they should be, then at 2.0 version, I put a trigger program in the loop that every time the hall sensors see magnets move out, the program will recalculate the position information, then recalibrate if the hands are off some certain amount.

codes for master and slaves are here:


PCB design schematic

Portable Network Graphics (PNG) - 1.44 MB - 05/11/2024 at 23:04



pcb design

AutoCAD DXF - 5.21 MB - 05/11/2024 at 23:03



PCB scheme, need 72 of them

Portable Network Graphics (PNG) - 168.02 kB - 02/02/2023 at 08:23


  • 4 × BKA30D-R5 360 Motor I chose this motor because it has 360 degree version
  • 2 × AX1201728 step motor drive chip each chip can control up to 4 individual motor which means 2 BKA30D
  • 1 × Arduino nano use 1 arduino nano to control 4 BKA30D as well as 8 hall sensor signal
  • 8 × MT8652AT hall sensor each clock needle needs 1 hall sensor to know the exact position

  • V2.0 animation patterns

    Lucas04/26/2023 at 23:52 0 comments

    some animation patterns between time displays

  • V2.0 updates

    Lucas04/17/2023 at 18:42 0 comments

    Made some updates recently, first of all I build a frame using 8020 aluminum, it's light and sturdy. I also redesigned the PCB boards, I put 36 motors (6X6) on one PCB, those white PCBs look great as background. 8 PCBs supported by 5 clear acrylic bars make the whole piece looks like floating. I really like this version.

  • this is my first prototype

    Lucas01/26/2023 at 08:43 0 comments

View all 3 project logs

Enjoy this project?



Kevin wrote 05/09/2024 at 14:39 point

Would you be willing to share your PCB design so I could get them fabricated?  Thank you.

  Are you sure? yes | no

Lucas wrote 05/11/2024 at 23:05 point

I have uploaded the pcb design, I designed them on EasyEDA, it's quite messy, so I think it's better to design it by yourself

  Are you sure? yes | no

Razor wrote 11/29/2023 at 15:41 point

Hi, would you be able to provide links to where you purchased the individual components please?

  Are you sure? yes | no

Lucas wrote 04/17/2024 at 02:13 point

most components are available on LCSC, and motors are from AliExpress

  Are you sure? yes | no

alain.haerri wrote 10/26/2023 at 09:59 point

Thank you a lot Lucas, i will work this night on your code. I can see you use currentMills - previousMills, in my code i was calculating the speed for each 8 motors to go to the target position and the delay (nbr of loop) to fix each digitalwrite, so each motors arrive at the same moment, but it is no working good when a motor need not to move while the others turn.

So i am very exciting to see how you manage that problem.

Thanks again

Alain Haerri

  Are you sure? yes | no

Lucas wrote 04/17/2024 at 02:12 point

Hi Alain,

Somehow hackaday stops sending me notifications, I just saw your question. My approach is simple, constant speed for 8 motors.

in detail: I have array of 8 numbers to store motors current position and another array for target positions. Then in main loop, for constant time interval, I check all 8 difference between current positions and target positions, if some are not 0 the move the corresponding hands for 1 step and add corresponding current position by 1 step.

So if you want to do some animation, just calculate position and time in your master then send them out at right time.

  Are you sure? yes | no

alain.haerri wrote 10/26/2023 at 07:06 point

Lucas , 

I am progressing in my 8x3 clock project, I ordered the PCBs from EasyEda according to your diagram, everything seems to be going quite well, I can operate 3 cards for the moment, but I am encountering some problems with some arduino nano, which ones did you buy nano BLE, nano 5volt, nano 3.3 volt.
Communication with the Arduino Mega goes quite well, everything is synchronized except when a motor should not move forward, everything slows down, it's quite strange.
It would be cool if you shared your nano slave code.
Thank you very much, I have been stuck with this problem for 2 months.
my email is

  Are you sure? yes | no

Lucas wrote 10/26/2023 at 09:21 point

Hi Alian,

you can check my codes here

there are codes for both master and slaves, I am still working on my LED project so no time to clean and improve codes, but the idea should work well.

From your description, it seems you put some 'slow' code in the loop, my recommendation is put only hands movement control codes in the loop, nothing more. I use master to send position information to slaves, that's it, slaves should figure everything else by themselves.



  Are you sure? yes | no

alain.haerri wrote 06/08/2023 at 07:26 point

Thank you Lucas
Do I ask you how many layer do you have made your PCB wich you have post the file. and what kind of 100nF capacitor ( ceramic rnd?, )Thanks a lot

  Are you sure? yes | no

Lucas wrote 06/10/2023 at 06:57 point

just regular 2 layer PCB and regular 100nF ceramic capacitor (probably size 0603)

  Are you sure? yes | no

alain.haerri wrote 06/05/2023 at 18:50 point

Thank you Lucas for your reply, it will be great when you will  share the code for the arduino.

One question more, where do you put the magnet for the homing and where are your hall detector ?

Thank you


  Are you sure? yes | no

Lucas wrote 06/07/2023 at 17:49 point

I put one magnet on back of each hand, around 25mm/30mm away from the shaft, then put 2 hall sensors for each motor on top of PCB layer for sensing those magnets, I put them on 12 clock position, but any where works if keep the same distance as magnets.

  Are you sure? yes | no

alain.haerri wrote 05/20/2023 at 19:11 point

Hi, your project is great , il love it, 
control 288 stepper motor is a real challenge , i have made something else with 100 stepper motors and tic t500 of pololu,(

I would like to know how your a managing your 72 arduino nano, 

Do you have some code to share 



  Are you sure? yes | no

Lucas wrote 06/04/2023 at 20:40 point

I use 1 Arduino nano to control 4 dual shaft stepper motor, in total 72 Arduino nano, then 1 Arduino mega to control all 72 nano through I2C, it's not that hard. I will share all my codes after I done some polish, I am still working on a LED version of this

  Are you sure? yes | no

asaf.el wrote 04/14/2023 at 16:40 point

Hi, very cool and interesting, how are you controlling each hand of the clock with one motor?

  Are you sure? yes | no

Lucas wrote 04/17/2023 at 18:45 point

BKA30-R5 motor is a dual axis motor, so each motor can control 2 hands

  Are you sure? yes | no

asaf.el wrote 04/17/2023 at 18:55 point

Thanks for the reply, that makes more sense now 🙂 

  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