Every clock in this project could work without others so I will describe how to make single clock. Which motor is the best, which microcontroller I have used, how to drive stepper motor, how to "home" clock hands. In the second part I will share information how to control each clock and how to make effects.
The most important for me was to make it the cheapest and the simplest one I can do, so I have used bka30d motor (360 degrees version). You can buy one on aliexpress. You can drive it directly from the microcontroller so you don't need any additional drivers. In my opinion motors x40 should be much better for it but there are much more expensive. The motor is the most expensive part in my solution.
When you drive bka30d with 4 or 8 steps you will get to know that those motors are very loudly. That's why I have decided to use the newest microcontroller from microchip - it is atmega328pb (pb - it is very important, not p like on the arduino board). There are 9 (or 10) PWM channels, bka30d has two motors with 2 solenoids - 8 connectors. So we can connect motors to microcontroller and we can have full voltage control on every PIN. Next week I will show my software how to drive the motors in my configuration. The movement is very smooth and much more quieter.
Atmega328pb is cheaper then standard atmega328p - we can "save" more money!
Another issue is how to home clock hands on power up. I realize it by small magnet on clocks hands and two analog hall sensors (ss495 connected to sens1 and sens2). On the power up microcontroller is looking for absolute maximum.
Communication between clock - I used i2c wire. On the schema there are two pull-up resistors - they are needed only in one clock - when one of then is master, when you use for example arduino as master you don't need to sold this in any.
Two buttons are not used in satellite clocks - only when clock is the master.