MetaClockClock Build Instructions

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.

MetaClockClock Temperature Display

MetaClockClock Temperature Display

Outline

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.

clocks in frame

clocks in frame

One ‘MCU’ board (left side) can optionally drive one additional ‘satellite’ motor board (right side) which reduces costs but increases wiring efforts:

Clock PCBs (back side)

PCBs (back side)

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.

Clock PCBs (Front) with hall sensors

Clock PCBs (Front) with hall sensors

MCU Board Details

MCU Board Details

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:

18C

18C with extended hands

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.

Material

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

    walnut veneer

    walnut 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).

Enclosure

For an easy mounting the clocks get a 3D printed enclosure.

Enclosure outer part

Enclosure outer part

I used black PLA on my Ultimaker 2. It takes around 1 hour to print the two pieces for each clock.

Enclosure inlet and outer part

Enclosure inlet and outer part

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:

enclosure breakaway support

enclosure break-away support

support removed from outer ring

support removed from 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.

PCB and inlay

PCB and inlay

The inlay gets placed over the PCB:

mounted inlay

mounted inlay

Then mount the LED ring on top of the inlay:

Inlay and LED ring

Inlay and LED ring

mounted LED ring

mounted LED ring

Then place the outer enclosure part over it:

PCB with outer enclosure

PCB with outer enclosure

Enclosure mounted around PCB

Enclosure mounted around PCB

Small notches keep the PCB in place:

Notch to keep the board in place

Notch to keep the board in place

Repeat this for all clocks.

Inlay

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:

inlay on backside of veneer

inlay on backside of veneer

I did consider to laser-cut them, but it was easier to cut them by hand. I used a scissor and razor blade:

veneer cutout

veneer cutout

💡 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:

Glue inside inlay

Glue inside inlay

Place the veneer inside it and keep it in place for several hours with the template:

fixing inlay

fixing inlay

Repeat this for all inlays. To speed up things, use multiple templates and glue multiple inlays

Inlays with Veneer

Inlays with Veneer

Hands

The hands get laser-cut from PMMA/Acrylic. They have been designed with Inkscape (.svg file):

clock hands in Inkscape

clock hands in Inkscape

I used 3 mm PMMA (Acrylic) for the hands with my 50W laser cutter, using Cohesion 3D and LightBurn.

Hand cutting with LightBurn

Clock Hand cutting with 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.

Extended Hands in Inkscape

Extended Hands in Inkscape

The PMMA gets engraved on both sides to create a good effect. Remove the protecting foil (if any) from the material.

PMMA with removed protection foil

PMMA with removed protection foil

First engrave the bottom side pattern (I used 2% laser power with a speed of 25 mm/sec):

PMMA bottom engraving

PMMA bottom engraving

Then turn around the PMMA sheet and position the laser to the corner of the engraved bottom side:

Aligning top side

Aligning top side

Then engrave and cut the clock hands. I used 100% laser power with a speed of 8 mm/sec:

Finished top side

Finished top side

Wash the hands with water to remove any remaining dust:

Laser Cut Clock Hands

Laser Cut Clock Hands

Use a screw driver or drill to carefully remove any sharp edges (if any) from the center holes.

Mounted Hands

Mounted Hands

The hands shall fit on the motor shafts tightly, but without too much force applied.

clocks with hands

clocks with hands

Frame

Cut the wood for the frame with a 45° degree angle and glue them together:

Frame Corner Press

Frame Corner Press

Front

The veneer gets glued on the font MDF. Use veneer glue (I used normal wood glue).

Front Plate with Veneer

Front Plate with Veneer

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:

Markings on Veneer Cover Tape

Markings on Veneer Cover Tape

User the markings to center each hole and cut them out:

Cutouts with Lasercutter

Cutouts with Laser Cutter

cutouts

cutouts

For the inside: prepare 40 mm long pieces of the triangles:

40 mm triangles

40 mm triangles

Glue them into the corners and on the side, with 5mm from the back side of the frame:

corner with triangle

corner with triangle

frame with triangles

frame with triangles

The laser cut front plate gets placed inside:

front veneer

front veneer

The front gets glued onto the triangles:

glue on triangles

glue on triangles

inside the frame

inside the frame

finished front

finished front

Mounting Clocks

Stack/glue two of the distance holders (4 mm plywood) and attach it with with screws to the clock holders:

Clock holders with distance holder

Clock holders with distance holder

Glue them onto the cutouts: make sure the rings are well aligned:

gluing holders on backside of front panel

gluing holders on backside of front panel

clock holders glued

clock holders glued

Have the clocks assembled with the rings and the veneer inlay:

Clocks with front veneer

Clocks with front veneer

Insert the clock pairs (master + remote) into the front frames:

inserted clocks

inserted clocks

inserted clocks detail

inserted clocks detail

With the clocks securely snapped in, mount the hands on the front:

attached clock hands

attached clock hands

I recommend to cover the back side with MDF sheets like this:

back covered

back covered

Master

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/):

Test Board with NXP LPC845-BRK

Test Board with NXP LPC845-BRK

Another option is to build the master with a tinyK22 which adds BLE and a temperature/humidity sensor.

tinyK22 Master board

tinyK22 Master board

I’m using the 4pin green Phoenix Contact connectors, but you can use any other connector.

Wiring

Use a good 5V Power supply. I recommend the Adafruit 10A 5V power supply or at least the 4A version.

Power Supply

Power Supply

I use a 2.1 mm Power adapter with a screw terminal block.

Below is a picture my wiring:

wiring

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.

power

power

In a similar way the RS-485 is using daisy-chaining.

RS-485 daisy chain

RS-485 daisy chain

The last board in the chain shall have the J1 solder jumper closed to enable the termination resistor:

J1 RS-485 Termination Resistor

J1 RS-485 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:

motor rgb wiring

motor rgb wiring

The MCU board has two wires for the motor on the motor PCB:

motor wires

motor wires

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):

swap motor signals

swap motor signals

With this the remote motor is not as silent as it should be. I recommend to swap the two wires in the cable.

Software

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.

programming with MCU-Link

programming with MCU-Link

The firmware uses the McuLib with the NXP MCUXpresso SDK and NXP MCUXpresso IDE. All the files are available on GitHub.

Choose your master (tinyK22 or LPC845) and the clock project (K02_128_Clock2):

Eclipse Projects

Eclipse Projects

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.

commands on master

commands on master

With this, enjoy your own MetaClockClock:

Summary

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 🙂

Links

5 thoughts on “MetaClockClock Build Instructions

    • For a next iteration I’m considering to make the motor PCB connected but breakable: by default no wires to it would be needed. Otherwise the two boards could be separated, headers populated and cables used for flexible arrangement.

      Like

      • hello
        See your work, it is too beautiful, look for a long time are very beautiful.To see work link, so contact you, I am in Beijing, China, I’m in advertising design, due to the outbreak of unemployment, there has been no find the right job, do you know the outbreak of the economy were hit by the economic recovery needs a process, I don’t have things to do at home. See you share is very interested in the production process, so I contacted – pcbway.com, to choose and buy the assembled PCB with electronic components make you own one, but they say BOM is not perfect, can’t order for PCB, excuse me, can you improve?I don’t know about PCB, so I want to know more about it.Looking forward to your help and reply. Thank you very much.If you have a chance to come to Beijing, I will be your guide. Nice to meet you. Have a nice day.

        Like

    • Hi Alex,
      It actually looks even better in reality as it is difficult to capture it in a video or picture. Especially at night time it feels like magic when it forms a new image.
      it is roughly $13 for a single clock unit. There is a detailed BOM on the GitHub site. So if you count in wood, screws and 3D printed material and power supply you can build a 24 version for around $350, not including labor time of course.

      Erich

      Like

What do you think?

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

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