A Solari Mechanical Digital Clock Hack With A Little Extra

[Alfredo Cortellini] was perusing an antique shop in Bologna, and came across a nice example of a late 1950s timepiece, in the shape of a Solari Cifra 5 slave clock, but as the shop owner warned, it could never tell the time by itself. That sounded like a challenge, and the resulting hack is a nice, respectful tweak of the internals to bring it into the modern era. Since the clock requires a single pulse-per-minute in order to track time, the simplest track often followed is to open the back, set the correct time manually by poking the appropriate levers, and then let an external circuit take over clocking it. [Alfredo] wanted autonomy, and came up with a solution to make the thing fully adjust itself automatically.

Electronics-wise, initial prototyping was performed with a Nucleo 32 dev board and a pile of modules, before moving to a custom PCB designed in Altium Designer. An STM32G031 runs the show, with a few push buttons and a SSD1306 OLED display forming the UI.

Using some strategically-placed magnets and hall effect sensors, the status of the internal mechanism could be determined. Minute advancements were effected by driving the clock’s 24V electromagnet with a DRV8871 motor driver IC, the power supply for which was generated from the USB supply via a TPS61041 boost converter. In order to synchronise the mechanism with the electronics, the unit could have been driven to advance a minute at a time, but since every hour would need sixty pulses, this could take a while given the limited speed at which that could be done reliably. The solution was to sneak in a crafty MG996R high-torque servo motor, which pushes on the hour-advancement lever, allowing the unit to be zeroed much faster. Sensing of the zero-hour position was done by monitoring the date-advance mechanism, that is not used in this model of clock. Once zeroed, the clock could then be advanced to the correct time and kept current. Firmware source, utililising FreeRTOS can be found on the project GItHub, with schematics and Fusion360 files on the Hackaday.IO project linked above.

If you were thinking you’ve seen these Solari soft-flap displays here before, you’d be quite correct, but if you’re not so much interested in marking the passage of time, but bending such devices to your other indication whims, we’ve got you covered also.

7 thoughts on “A Solari Mechanical Digital Clock Hack With A Little Extra

  1. Very nice idea. I especially like the manual flipper. Personally, I would have worked on that base a bit more and remove the ugly 2 tone OLED. A couple of status LEDs that only turn on few a minute after a manual change, and a white curvy stand for the base would improve the look substantially. Or just cram it all into the clock and control it with bluetooth.

      1. I was thinking ESP32 as well. In the top right corner of the image for the video, we can see plenty of space for the ESP to be mounted. If you really cram things in, you wouldn’t need a base at all. I also was thinking that you could find newer solenoids that might be smaller and work at lower voltages. Then you can manually change the time with the internet clock and have everything within the clock’s case. Then again, that’s a lot of extra work when you already have a working project. =) Maybe something to play with on a rainy day.

      2. Ciao Alfredo, bel progetto! Ho da poco terminato un progetto simile per un orologio Linea120 della Solari. Ho usato Arduino, un ponte h per il motore da 24v e , un RealTime clock ds3231 per tenere il tempo e un display OLED con tre pulsanti per le impostazioni. Dopo svariati mesi di test e modifiche al codice l’ho finalmente completato e funziona abbastanza bene, tenendo il tempo per parecchi giorni anche in mancanza di corrente

    1. I liked your video and you a well preserved clock! To just flip the minutes was my first idea too, but it takes quite some time to synchronize. This is reason whiy I used the servo to move the hours, indeed it’s more complicate solution.

Leave a Reply to AlfredoCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.