The holiday break at the end of the year is always a good time to finish projects started during the year. This one is about my ‘MetaClockClock’ Version 3.
It is named ‘MetaClockClock’ because many ‘analog clock’ modules are used to build a larger matrix to show time (or whatever you like). The MetaClockClock features 60 double-shaft stepper motors. Each clock can be equipped with hands (e.g. 3D printed or laser cut) to build a matrix of individually controllable clocks.
Each clock has an extension connector to hook up a LED ring with 40 individually addressable RGB LEDs (WS2812B) each. This is used to color the hands and the inside of the clocks, creating different effects. Using the LEDs the clock is usable at night.
The hands are moved by stepper motors and followed by the LEDs. The 120 stepper motors (one dual-shaft motor for each clock) is controlled by a microcontroller to create choreographs or to write any text or numbers.
This clock is the successor of the previous version (“60 Billion Lights”: 2400 RGB LEDs and 120 Stepper Motors hiding behind Canvas Art). It is possible to arrange the clocks in any way with any kind of framing material. I have decided to use a canvas so I can hang it on the wall as a ‘piece of art’. Of course ‘art’ can be very subjective, so you could use whatever you like.
There are several items which make a difference:
Comparison (60 Clock Version with 2400 RGB LEDS)
|Size||103 x 53 x 5 cm||105 x 48 x 2.5 cm|
|Weight||6.5 kg||5.3 kg|
|Clock Diameter||70 mm||80 mm|
|MCU||15x NXP LPC845 (M0+)||30x NXP K02FN128 (M4F)|
|Firmware||38 KByte FLASH, 13 KByte RAM||53 KByte FLASH, 13 KByte RAM|
|5V (running)||6 A||5 A|
|5V (standby)||6 A||0.5 A|
|3D Printing||60 m, 48 h||14 m, 14 h|
|Back Frame||Aluminum + Plywood||Aluminum|
|BOM Clock||60x $6.50||60x $8.00|
|BOM Ring||60x $5.00||60x $5.00|
- Modular: instead of four fixed clocks, each clock is on its own PCB, making it possible to arrange them in any way I want. The V3 boards still use RS-485 for communication and can be mixed with previous versions.
- Size: The size of each clock increased from 70 mm diameter to 80 mm for easier mounting. The size changed from 103x53x5 to 105x48x2.5 cm for a 60 clock version.
- Weight: the new version uses less PCB material, reducing the weight from 6.5 kg down to 5.3 kg. Additionally the mounting easily can be done with inexpensive aluminum profiles on the back.
- LED: the optional RGB LED rings are now controlled by the clock boards directly, making wiring easier. The rings are using 2.54 mm headers to connect to the base board.
- 3D: Because of the easier mounting there are less 3D printed parts, reducing the amount of PLA (2.75 mm diameter material) and printing time.
- MCU: the WS2812B RGB LEDs are controlled with DMA which required to upgrade the clock microcontroller from an ARM Cortex-M0+ (LPC845) to an M4 (K02FN64/128). In V2 one LPC845 is driving 4 clocks while in V3 one MCU can drive either one or two clocks.
- Power: Each clock has a circuit to cut off the power for the motors: this reduces the power surge at power on, additionally I can put the clock into ‘sleep’ mode if not used e.g. overnight. V2 uses around 6A@5V if running, while the V3 needs 5A@5V while running and around 500 mA otherwise (I’m not using very deep low power mode yet).
- Firmware: The software has been refactored and is compatible with the previous versions. Different clock arrangements are configured by tables in the software. As master both the Kinetis K22 and LPC845-BRK based boards can be used.
- Costs: The cost per clock is about the same as for the previous version, but PCBs are less expensive (size less than 10×10 cm, so you can order 10 PCBs for only $5). Material costs of each clock (excluding the LED ring) increased from $6.5 to $8, mainly because of a more powerful microcontroller is used plus the addition of the power-off circuit. If you build a clock without the RGB LEDs this reduces the BOM by $5 for each clock.
Below pictures and videos of the current V3 build. The boards get programmed with a standard 10 pin SWD interface, e.g. with the NXP MCU-Link:
The concept is to have independent clock modules. To save costs (MCU, RS-485 interface, power circuit) there is a ‘MCU’ and a ‘Motor’ PCB. Each has two hall sensors on the front side to detect hand zero positions. The Motor PCB is optional, so it is possible to build a MetaClock with MCU PCBs only. The rings with 40 WS2812B-SIDE RGB LEDs are optional too.
The flexibility comes with the costs of connectors and wires. But the 2.5 mm JST connectors are very inexpensive (1000 pieces for less than $10) and cables can be ordered from AliExpress.
I have populated the boards with our PnP machine with OpenPnP, but it would be possible to order assembled parts e.g. from PCBWay or other vendors.
Below is a picture with the details of the MCU board. You can find all Schematics and PCB Files on the GitHub site listed at the end of this article. As for the previous builds it uses the VID28-05 dual-shaft stepper motors.
Below the 60 clocks mounted on the back profiles:
Small 3D printed parts mount the clocks on a back frame built with standard aluminum profiles:
The firmware has been developed with Eclipse (NXP MCUXpresso IDE) with the NXP MCUXpresso SDK.
The firmware is using FreeRTOS and features a command line shell and scripting interface which implements both direct (serial, RTT) or remote (RS-485) connection.
As for the previous version, I used acrylic pouring on canvas to create the background of the clock. Below pictures of the process. The painting is on a black background:
The canvas gets ‘flooded’ with black color and cups placed on it:
Pouring colors into the cups creates a ‘cell’ effect:
After removing the cups, the canvas gets tilted to move the paint:
The boards then get placed on the back of the canvas:
Different kind of ‘hands’ can be used, for example 3D printed or laser-cut. Below the version using laser-cut PMMA:
The LED rings are optional, but create a cool effect. I have created covers in different colors (3D printed PLA), but the bare PCB dark blue solder mask looks cool too. The RGB LEDs are individually addressable and used to illuminate the hands or the clock inside or both.
Below a version with different 3D printed hands:
60 Rings with total of 2400 RGB LEDs:
Below it shows the MetaClockClock using white PLA 3D printed hands with no LED Rings:
Using the RGB LEDs, more and different effects are possible.
I have implemented more ‘intermezzos’ and demos, including Conway’s Game of Live:
I’m very happy with the new version. I still have more boards and stepper motors available, so I consider to build one or two smaller ‘MetaClockClock’ or to extend this 60 clock (5×12) version to a larger one. I probably build one without the canvas too (just using a black or white color). If you want to build your version: the files are available on GitHub.
Happy Clocking 🙂
PS: Happy New coming 2021!