If you are not aware (yet?): it looks like the COVID pandemic caused a global silicon and microcontroller shortage with lead times >50 weeks in some cases. The microcontroller I have used for the MetaClockClock build (see “New MetaClockClock V3 finished with 60 Clocks” and “MetaClockClock V4 for the Year 2021“) is affected by this too, but I had luck and still enough microcontrollers to build a few more boards.
So I still have enough for building a new variant with it (not finished yet). While everyone else is waiting for the devices to arrive, here are more details and instructions for your own build.
The ‘MetaClockClock’ project is using multiple small dual-shaft stepper motors which are usually used in instrumentation clusters. In this project multiple such motors are interconnected on a RS-485 bus and can be controlled by a master to display information or show different animation patterns. See “MetaClockClock V4 for the Year 2021“, “New MetaClockClock V3 finished with 60 Clocks” or ““60 Billion Lights”: 2400 RGB LEDs and 120 Stepper Motors hiding behind Canvas Art“.
For this build I used a new PCB design: the motors are on round PCBs allowing to mount them in a modular way. Instead having 4 motors on a single PCB as in the previous design, each motor is on its own PCB. That way small tolerances in the enclosure are not a problem and simplify the build. Additionally one is free about changing the distance between the motors.
One ‘MCU’ board (left side) can optionally drive one additional ‘satellite’ motor board (right side) which reduces costs but increases wiring efforts:
With magnets and hall sensors on the PCBs it is possible to have a zero position for the motors. Optionally each board can have an individually addressable WS2812B-SIDE RGB LED ring. My version with the acrylic (PMMA) hands currently does not have a magnet attached.
The LED’s can ‘follow’ acrylic clock hands to illuminate them or create different effects: the firmware supports up to three ‘hands’ for each clock unit:
This article does not cover building the electronics: you find the information for it on the GitHub listed as well at the end of this article. The 3D printer models and the laser cut files can be found on that GitHub too.
Below is the list of the main material and tools needed. Of course you can vary things depending on your needs.
- Plywood 4 mm for the distance holder and mounting the enclosure
- 60 2×10 mm wood screws
- Wood veneer
- 2x MDF sheets 3mm 26×70 cm for the front and back
- 2m Wood triangle (2×2 cm) for mounting the front and back
- Frame: Wood 200×5.5×1 cm
- PLA and 3D printer for the printed enclosure (I used black)
- laser cutter to cut out the inlets (wood veneer)
- 5V power supply (at least 4A, better 5A or 10A)
- 2.1mm barrel connector
- For a 24 MetaClocClock version:
- 24 LED Rings
- 12 MCU Boards
- 12 Motor Boards
- Master Board, either the tinyK22 or the LPC845 (or any other board you have with RTC and RS-485).
For an easy mounting the clocks get a 3D printed enclosure.
I used black PLA on my Ultimaker 2. It takes around 1 hour to print the two pieces for each clock.
The parts are printed without support: two small support pieces are included in the design for the two mounting points: carefully break them off the outer ring:
The inlay is used to cover the PCB and protect the electronics. The inlay can get painted or covered with any other material you like. The following pictures show the assembly of the inlay and outer enclosure ring.
The inlay gets placed over the PCB:
Then mount the LED ring on top of the inlay:
Then place the outer enclosure part over it:
Small notches keep the PCB in place:
Repeat this for all clocks.
The inlay can be painted or ‘filled’ with any material you like, as long is about less than 1 mm thick. I used the walnut veneer in this build.
I used template (laser cut plywood) to to mark the inlays on the back of the veneer:
I did consider to laser-cut them, but it was easier to cut them by hand. I used a scissor and razor blade:
💡 to flatten curled veneer, start applying a light spray of water on both sides and press it between Kraft paper or similar, with some weight on it to keep it flat while drying.
Then glue it into the inlay:
Place the veneer inside it and keep it in place for several hours with the template:
Repeat this for all inlays. To speed up things, use multiple templates and glue multiple inlays
The hands get laser-cut from PMMA/Acrylic. They have been designed with Inkscape (.svg file):
I used 3 mm PMMA (Acrylic) for the hands with my 50W laser cutter, using Cohesion 3D and LightBurn.
The build includes uses ‘extended hands’: you can configure for each motor if it uses a normal one or an extended one, and they can be combined.
The PMMA gets engraved on both sides to create a good effect. Remove the protecting foil (if any) from the material.
First engrave the bottom side pattern (I used 2% laser power with a speed of 25 mm/sec):
Then turn around the PMMA sheet and position the laser to the corner of the engraved bottom side:
Then engrave and cut the clock hands. I used 100% laser power with a speed of 8 mm/sec:
Wash the hands with water to remove any remaining dust:
Use a screw driver or drill to carefully remove any sharp edges (if any) from the center holes.
The hands shall fit on the motor shafts tightly, but without too much force applied.
Cut the wood for the frame with a 45° degree angle and glue them together:
The veneer gets glued on the font MDF. Use veneer glue (I used normal wood glue).
Dry it overnight with some weight on it to press the veneer and MDF together.
Use a cover tape and put markings for the center of the rings to be cut out:
User the markings to center each hole and cut them out:
For the inside: prepare 40 mm long pieces of the triangles:
Glue them into the corners and on the side, with 5mm from the back side of the frame:
The laser cut front plate gets placed inside:
The front gets glued onto the triangles:
Stack/glue two of the distance holders (4 mm plywood) and attach it with with screws to the clock holders:
Glue them onto the cutouts: make sure the rings are well aligned:
Have the clocks assembled with the rings and the veneer inlay:
Insert the clock pairs (master + remote) into the front frames:
With the clocks securely snapped in, mount the hands on the front:
I recommend to cover the back side with MDF sheets like this:
The clocks and patterns are controlled by a ‘master’ board. The master should have a a RTC (Realtime Clock) and the RS-485 connection to the clocks.
One way is to use the LPC845-BRK with a breadboard (see https://mcuoneclipse.com/2020/06/07/behind-the-canvas-making-of-60-billion-lights/):
Another option is to build the master with a tinyK22 which adds BLE and a temperature/humidity sensor.
I’m using the 4pin green Phoenix Contact connectors, but you can use any other connector.
Below is a picture my wiring:
The ‘master’ board has a 5V Power In-Out, so the power is using daisy chaining. Below is how I power the boards, but you are free to use any other way. Just keep in mind that if the power line is too long there will be a voltage drop: do not chain more than 10-12 boards.
In a similar way the RS-485 is using daisy-chaining.
The last board in the chain shall have the J1 solder jumper closed to enable the termination resistor:
For shorter RS-485 connections it probably will work without J1 closed, but technically it should be enabled.
Below the wiring of the RGB LEDs from the MCU to the motor board:
The MCU board has two wires for the motor on the motor PCB:
Issue: Up to and including V1.5 of the MCU PCB the motor signals are swapped in the layout: the order should be 1-2-3-4 (and not 1-2-4-3):
With this the remote motor is not as silent as it should be. I recommend to swap the two wires in the cable.
You can use any SWD debug probe (P&E, SEGGER, NXP LPC-Link2 or MCU-Link) to program the MCU boards. As the firmware on the clocks uses SEGGER RTT as a command line shell I recommend a J-Link or J-Link EDU Mini.
Choose your master (tinyK22 or LPC845) and the clock project (K02_128_Clock2):
Using the ‘platform.h’ in each project the firmware can be configured in many different ways (check the GitHub and Wiki).
Connect with a terminal program to he master (or over BLE). Help gives a list of available commands. The ‘rs’ command group can be used to use and access the command line shell on each clock MCU board.
With this, enjoy your own MetaClockClock:
The new round clock makes it really easy to build different clock systems: the clocks can be placed in a flexible way. I hope this tutorial enables to build your own version. For all the files check out the GitHub site listed in the Links section at the end of this article.
Happy Clocking 🙂