Introduction: Javelin's Word Clock

My place of employment, Javelin, is always looking for ways to make our products and services personable. Recently, an opportunity presented itself where I was asked to construct a word clock for a client. I found a number of great guides such as the Sleek Word Clock by scottbez1, Wordclock Grew Up by drj113. This guide deviates from those designs a bit by using off-the-shelf modules and components such as the IC2 Real Time Clock module and WS2812 LED strips.

Step 1: Gather Materials

Here is a list of materials used during the construction:

  • 169 RGB LEDs
    • I used a WS2812S strip, which has 60 LEDs per meter (comes out to 3 meters).
  • 1 - Arduino Leonardo
  • 1 - Real Time Clock Module (DS1307RTC chip with battery backup)
  • 1 - 1000 µF capacitor
  • 3 - 300 to 500 Ohm resistors
  • 2 - Push button switches
  • 1 - 10" x 10" x 4.5" shadowbox (purchased from Michaels)
  • 1 - Project PCB board
  • 1 - USB cable (high quality)
  • 1 - Sheet of foam core board
  • Access to a vinyl cutting machine
  • Contact cement (or other plastic friendly glue)
  • Clear silicone (a small tube of the stuff)
  • Tape (I used painters tape)
  • 9 1/4 by 9 1/4 inch square of window privacy film
  • 3D printer or opaque poster-board
  • Bits of wire
  • Soldering tools

Most of these items I had laying around my work area from previous projects; however, for the electronic components such as the LEDs, Arduino, and Real Time Clock, I found eBay was the cheapest route. Of course, your mileage may vary.

Step 2: The Grid

The base for this clock is built using a grid of zig zagged LEDs. But before I could place them on the foam board backing, we needed to set up and space out the letter grid. With the help of a co-worker, we came up with a grid based on the spacing between each LED (~17mm) on the strip and the 10" square of our shadow box frame. The result was a nice 13 by 13 LED grid inside 9 1/4" square. Later, I used a printout of the grid and, labeled each letter with its corresponding LED ID starting with the first LED being zero. The print-out was also used to mark the foam board for mounting the LED strips.

Step by Step

  1. Using foam core board, cut out a 9 1/4 inch square.
  2. Download and print out the template.
  3. Use the template to mark where each LED strip goes.
  4. Peel and stick the LEDs to the foam board, making sure to follow the flow indicators. These are normally indicated by little arrows on the LED strip.

Step 3: Wiring It Up

With the LEDs stuck in place, warm up your soldering iron and start wiring up the leads, zig-zagging your way from strip to strip. The strip should start in the lower right and work its way from right to left, bottom to top. Once the grid is assembled, it's time to start on the rest of the components.

Using the Fritzing diagram above, wire up the Real Time Clock, switches, and LED strip on a breadboard. Later, I transferred the circuit to a single-sided prototype board.

Step by Step

  1. Solder a 300 ohms resistor to the data in lead on the first LED strip.
  2. Solder a 1000 µF capacitor between the positive and ground leads on the LED strip.
  3. Solder the grid together, zig-zagging your way from one end to the other, based on the flow indicators on the LED strip.
    1. For even power distribution, I ended up running a second set of power leads, reconnecting them half way up the LED strip.
  4. Wire up the Arduino to the Real Time Clock, buttons, and LED strip, based on the diagram above.
    1. For testing and prototyping, I suggest using a breadboard. Once you have your circuit built and functional, transfer the same simple wiring over to a single-sided circuit board.

Step 4: The Code

The Word Clock code combines the basic functionality of the Real Time Clock module with the ability to address each LED individually on the grid. I used the same basic logic found in the other word clocks as the base of the code and then customized it to work with our Javelin logo, tag line, and the LED WS2812S strip.

Download the source code, which can be found here via GitHub, compile and upload to your Arduino.

Step by Step

  1. Download the source code.
  2. Load, compile, and upload the code to the Arduino.
  3. Set the time by issuing a date command via terminal interface.
    1. Linux
      1. date +T%s > /dev/ttyACM0
    2. OSX
      1. date +T%s > /dev/tty.usbmodem1431

Step 5: Building a Box

Once you have the code and base electronics working, it's time to start building the clock enclosure. The base of the Word Clock is built primarily using foam core board and double-sided tape. Starting with the back of the board where your LED strips are mounted, add a few strips on the top and bottom. If you're using the same 10 x 10 shadowbox, use four 9 1/4 inch by 1 inch strips for the top and another four for the bottom. This creates an area behind the grid to mount the Arduino and project board containing the RTC.

The electronic components are attached using the Velcro command strips. This allows you to disassemble the components, if needed. You can see in the photo above where the three wires from the LED strip wrap around to the back. I cut out a little hole in the side board to prevent the side from bowing.

The sides of the enclosure are built using thick poster board and used to frame in the grid. For the initial assembly I taped everything together. Prior to final assembly, I used contact cement to make everything solidly bound together.

Once you have the enclosure assembled, it's time for a trial fit inside the shadowbox. I used a few thick poster board bits as shims to center the grid.

Step by Step

  1. Cut out eight 9 1/4 by 1 inch strips from the same quarter inch foam board as the grid backing.
  2. Tape or glue two stacks of these strips, four to each stack.
  3. Attach one stack to the back of the grid at the top and bottom.
  4. Cut out four 1 1/2 inch strips from the thick poster board.
  5. Wrap the leads from the LED strip around the grid backing.
  6. Tape or glue the poster board strips around the grid backing, creating a nice square.
  7. Trial fit and center the grid square in your shadowbox, using bits of poster board as shims.

Step 6: Baffles Can Be Baffling

If you don't have access to a 3D printer, you can cut out the baffles. Just be sure to cut the slats slightly larger than the thickness of the material you are using. For the first iteration of baffles, we used a thick poster board, which I then piled up and cut using a jigsaw. It was messy, not to mention a bit dangerous. I'm somewhat partial to my fingers.

But to be honest, I would find someone with a 3D printer or join a local MakerSpace and have the baffles printed.

Step by Step

  1. Measure 28 strips of thick poster board, each 2 by 9 1/4 inch in size.
  2. Combine about 6 - 8 strips and bind one end together using tape. Using the grid guide, mark off where the grid lines are.
  3. Create a jig using a few screws and the edge of your workbench.
  4. Place the bound and marked strips in the jig and using some sort of cutting tool, cut the slots half way up the strips.
  5. Repeat steps 2 and 4 until all 28 strips are completed.
  6. Assemble grid and trial fit on your LED grid.

Step 7: 3D Printed Baffles

The baffles for the Word Clock were printed on a RapidBot 3D printer. You can grab the SLT files here via Thingiverse. I used a black PLA filament to keep light from bleeding to the neighboring cell. I experimented with a few other colors; however, black worked the best.

After printing out the baffles, I trial fitted everything together. Using tape, I placed the baffles on the grid and then printed out the letter grid. Once everything was assembled, I placed the whole enclosure inside the shadowbox.

Step by Step

  1. Download and print out baffles.
  2. Temporarily attach the baffles to the grid using tape.
  3. Print out the letter grid and tape it to the baffles.
  4. Slide the grid enclosure into the shadowbox.
  5. Give the clock a trial run.

Step 8: Building the Display

The face of the clock, inside the glass, is put together using a sheet of clear plexiglas, the vinyl cutout, and a diffuser. I found the big box home improvement stores carried small 11 by 14 inch sheets of Plexiglas, as well as rolls of privacy film. The privacy film works great as a diffuser.

I've tested a few different layering styles to cut down on light bleeding and provide good light diffusion. The result was to cut out the vinyl letter grid in revers. Apply the vinyl to the plexiglas. Then add a single sheet of privacy film over the vinyl. Once assembled, the clock layers look like this (front to back):

Glass | Plexiglas | Vinyl | Diffuser | Baffles | LEDs | Foam Board | Electronics | Shadowbox back

Step by Step

  1. Remove the protective film from one side of the plexiglas.
  2. Affix the vinyl cutout to the plexiglas.
    1. Be sure to use a bit of soapy water and a squeegee to push out as many air bubbles as possible when applying the vinyl to the plexiglas.
  3. Chase the air pockets out from between the plexiglas and vinyl (use some sort of soapy solution to make this part easier).
  4. Let the vinyl dry.
  5. Add the diffuser (privacy film) by laying it on top of the vinyl.
    1. Just like the vinyl, you probably should use some sort of soapy solution during the application process.
  6. Chase the air pockets out from between the film and the vinyl.
  7. Let the film dry.
  8. Trial fit the clock face to the grid using tape ... I love that stuff!

Step 9: Putting It Together

Final assembly is fairly straightforward. Using contact cement, I glued all of the foam board pieces together and re-enforced the enclosure using bits of additional foam board. I found the contact cement wasn't exactly friends with the foam inside the foam board so try and avoid getting glue on it. Once the enclosure dries, glue the clock face (the plexiglas and vinyl part) to the baffles using clear silicone. Be sure the letters and baffles are lined up properly.

I then added two holes in the backing of the shadowbox for the forward and reverse buttons. Then, tie a simple knot in the USB cable (which ends up being the power cable for the clock) and cut a small notch out of the bottom of the backing to allow the USB cable access to the outside of the enclosure.

Step by Step

  1. Make sure everything fits together.
    1. LED grid enclosure fits inside the shadowbox.
    2. Baffles line up with the correct LEDs on the grid.
    3. Vinyl cutout letters line up with the baffles
    4. Everything taped together should fit nice and square inside the shadowbox.
  2. Leaving the tape in place to hold it, glue the various bits of foam board together using contact cement.
  3. Once the enclosure has dried and the baffles are glued to the grid, glue the clock face to the baffles using clear silicone. To keep things simple, I ran a bead around the exterior of the baffles connecting the top of baffles with the plexiglas.
  4. Let that dry and cure overnight.
  5. Punch/drill out holes big enough to fit your forward and backward buttons in the shadowbox backing.
  6. Cut out a small hole along the bottom of the shadowbox backing, just large enough to allow your USB cable to pass through.
  7. Cut out a few more small strips of foam board to act as a buffer / space filler between the back of the enclosure and the back of the shadowbox.
    1. If your using the same 10 x 10 shadowbox, I used three layers of the 1/4 inch foam board.
  8. Tie a simple knot at the end of your USB cable.
  9. Place the clock inside the shadowbox and add the forward and backward buttons to the backing of the shadowbox.
  10. Attach the USB cable to the Arduino and run it out via the small hole at the bottom you just made. Be sure the knot stays inside the enclosure.

And there you have it! Your very own Javelin-branded Word Clock. Of course, if you want to make a word clock without the Javelin logo, modify and feel free to modify and customize the design to fit your needs.