Close

Building the clock

A project log for Linear RGB LED Clock

A unique way to display time. Designed to be easily readable. Just count the colored dots!

janJan 12/10/2016 at 17:250 Comments

Building the clock

Design (preliminary considerations)


Mode of operation

Case

Those were the first few thoughts I wrote down. Of course everything got more refined as time went by. But the fundamental mode of operation has been in my mind for a long time:


In a industrial design book I read something interesting: The human brain isn't too good at perceiving groups of more than 4 numbers/dots/somethings close to each other in a given (short) amount of time. Groups of three on the other hand are easily human-readable. So I decided to use groups of three LEDs with one LED off between them. The "divider-LEDs" themselves are left in place, for possible future use.

After all dividing 12 hours / 3 and 9 minutes / 3 makes perfect sense. Hours are red, decadic minutes (only exception here: grouped as one set of three and one of two LEDs) are green, single minutes are blue.

The enclosure

I needed a profile which had enough room for the Arduino and RTC on its breakout board (both around 18mm wide), but not too big so it won´t look clumsy mounted to the wall. Found that at the local hardware store.

The profile-heads are closed with aluminium plates. One plate is glued in place, the opposing one is held in place by two magnets to allow easy access to the USB-Port of the arduino for future programming.

I chose the WS2813 over the WS2812B LED strip for a reason: It has zero external components on it.

This way I could easily glue the strip directly to the spacer plate with double sided tape:

Turns out the spacing between the LEDs does not match the openings exactly. So I had to cut it three times. As I used the LED-side for mounting, I needed to use the contacts on the back of the strip for connecting the parts back together. Contacts are buried under glue which had to be peeled away before soldering:

The opaque (translucency 49%) windows are laser-cutted and around 0,1mm wider than the rectangular openings in the front plate. They are pressed right in (blue = protective foil):

For mounting the front plate to the profile without any screws, it is first glued to a spacer plate which is 0,2mm wider than the profiles inner width. Everything is painted in matte white after assembly.

Only three buttons are needed to set time. MINUS, SET, PLUS. These are glued to a aluminium plate which is glued into the u-profile. No need to use screws here as I don't think I'll need to replace these buttons in a hundred years (they are not used often after all).


I wanted the power cord to be as "invisible" as possible but not a standard wrinkly off-white USB cable. So I bought some white braided glass fiber sleeving. It does look very clean against the white wall. I soon gave up trying to get the wires through the sleeve.. Fortunately a friend who does a lot of "PC-supply-wires-through sleeves"-stuff did this annoying work for me!


Wall mount

Requirements for the mount are as follows:

I tried lots of (overly complicated) designs in CAD but found the solution in my parts box. A 5mm plastic flange bearing. These feature 360° rotation and tilt angles of 29°. A quick test showed enough friction of the bearing in its socket to keep the clock in place once aligned. I tapped the 5mm hole with a M6 thread, screwed in a 20mm piece of threaded rod and secured it with a dab of glue.

The part secured to the wall is a washer soldered to an adjusting ring:

The chipboard torx screw-head had to be sanded off slightly to fit into the adjusting ring. This is how the mount looks like:



The circuit

"Circuit" is grossly overstated here. It´s just the RTC (with a backup coin cell directly soldered to it), three buttons and the LED strip soldered to the Arduino:

Both PCBs are held in place with a few dabs of hot glue. With all LEDs at full brightness, the whole circuit consumes around 5V/1000mA. So I chose a standard USB charger rated at 1,5A.

Software

To keep it short: A state machine, a few functions to convert the RTC time to LED pixel numbers...

Anyway: big thanks to the creators of the following libraries (and of course the whole arduino community).

Discussions