Building the Micro Word Clock

Word clock = expensive. Micro word clock = attainable.

Finished Micro Word Clock in an acrylic case.
Finished clock with letters printed on transparency film, mounted with double-stick tape, and in an acrylic case.

Back at the end of November, 2014, I saw a post on Hackaday about a word clock. However, not just any word clock, but a Micro Word Clock utilizing an 8×8 LED matrix that was 20mm square (~0.8″)! Despite the low utility of such a tiny clock, it seemed like a fun project to learn SMT soldering, and it was cheap enough given the low parts count. Also, the designer of the clock, Daniel Rojas, had good documentation and made everything available online, even putting the boards on OSH Park for super-easy ordering. I got to work buying components…

The parts

Components laid out
7 of the 8 components.

The video Daniel created showing off the project indicated just 8 components – I added a USB cable for power. I also created a laser-cut case.

*Much of the following is pulled from the GitHub repository for the project, with some of my own notes*

Part numbers are from Digi-Key, and prices are from when I bought them in January, 2015.

  1. Printed Circuit Board (PCB)
  2. IC1: ATmega328P-AU (TQFP-32 package)
    • The Arduino-compatible microprocessor that the program is uploaded to and run from
    • ATMEGA328P-AURCT-ND
    • $3.85 @ qty. 5
  3. IC2: DS1307Z+ (SO-8 package)
  4. C1: 220nF ceramic (2012 metric size, 0805 imperial size)
  5. C2: 2.2uF tantalum (3528 metric size, B-case)
  6. S1: 6.2×6.5mm SMD push button.
  7. XTAL: 32.768 kHz crystal (3216 metric size, 1206 imperial size)
  8. LED matrix: GYXM-788ASR 20x20mm 8×8 LED matrix. Probably any matrix labeled 788 should work.
    • Display
    • I got mine at Fasttech
      • When they arrived, they were labelled LD-788BS, but they worked
    • $1.64
  9. USB cable
    • Free from my office helpdesk team (they had dozens of these laying around, with others being cut off of dead keyboards and mice)
  10. Case

Total cost excluding the case, USB and shipping: ~$11.59/each.

Assembly

Micro Word Clock boards, minus the display.
Front and back of boards (with female headers for testing). Note polarity of parts.

As I said, this was my ‘learn to SMT solder’ project. Thanks to Ted at Nova Labs for giving me the run down and showing me how to properly use flux, drag solder, etc.

I attached components in the following order: Side 1 – ATMega, RTC, crystal. Side 2 – cap, tantalum cap, switch, power.

Use wire cutters and strippers to prepare the USB cable and get access to the +5 and ground wires (red and black respectively).

For our first board (we ended up making 5 total) I attached female headers just because I wasn’t totally sure of the orientation of the display. This also made programming the board easier: TX and RX are shared with display pins, and as long as the display isn’t there, you could program with just an FTDI adapter.

Back of the 8x8 LED Matrix
Bottom of display. Pin 1 is top center. Printing on the bottom of the case is the top-right face as seen here.

There is a faint pin 1 marking on the display under the epoxy… It is on the side with the printing (the bottom) and on the right side when looking at the pins. It connects to B1. Standard through-hole soldering applies.

Programming, and wasted time…

The entire project is available on Git Hub.

Everything went fine, except for one bone-headed move early on by me… The Arduino sketch has 6 separate files necessary for the clock to work:

  • english.h
  • isr.ino
  • MicroWordClock2.ino
  • otherdefs.h
  • pindefs.h
  • setup.ino

You also need to download RTClib.h, and Wire.h (which I believe is part of the Arduino IDE).

Long story short:

I missed the setup.ino and one of the other files when putting everything in the folder for the sketch. It didn’t compile correctly?! In my expert troubleshooting, I figured out it was missing the “void setup() {…” part of the code so I added that in the main MicroWordClock2.ino file – it compiled!

Of course, the displays didn’t work… Lots of troubleshooting, hooking boards up to a breadboard to make sure the correct boards were shipped (remember, they were labelled a little differently than Daniel’s boards), and at least 2 days wasted fussing until I finally figured out that I didn’t copy everything to the correct folder.

The extra “void setup() {…” was removed from the code, and the last *.ino files put in their proper place, and everything uploaded AND worked correctly.

Uploading files to the board (and waste of time #2)

Initially we tried following the directions on the Git repository for uploading code to the clock boards. For whatever reason we couldn’t get another Arduino Uno R3 to function as the programmer, despite trying multiple Arduinos and computers.

Eventually we had success with an FTDI adapter

Pins B3 and B4 are TX and RX respectively, and hookup to the FTDI.

Power was soldered to the VCC and GND pads.

Reset is Pin 5 (bottom-left) if the ICSP header and can be connected to Ground in order to program (just hit it right after you hit Upload in the Arduino IDE).

Be sure to select ATmega 328 on a breadboard (8MHz Internal Clock) in the Tools>Board menu.

Even easier – the ISP programmer

In order to save time by not installing female headers, we tried programming with an AVR programmer. With a 6-pin adapter and pogo-pins, it was easy to use this to install the program on other boards. Just press the pogo pins to the ICSP header (Pin 1 is MISO) and select “Upload Using Programmer” in the File menu.

I used “USBasp” in Tools>Programmer.

Final assembly

In my next post, I’ll outline steps to print the letter mask, and creating the case…

Finished display with test letters
Finished and programmed display, with a quick and dirty test mask (paper run through a laser printer, and secured with tape).

On the first unit I printed it on a piece of paper and just taped it to the display, but as you can see from the finished teaser at the top of the post, it looks much better when done right!

Links

https://github.com/formatc1702/Micro-Word-Clock

https://talk.hackspace.ca/t/led-matrix-badge-8×8/867/ – Vancouver Hackerspace thread about their group buy/build

http://arduino.cc/en/Tutorial/ArduinoToBreadboard

 

 

2 thoughts on “Building the Micro Word Clock

  • March 22, 2017 at 9:54 pm
    Permalink

    Link to uploads is no longer working. How can I download the needed software? Thx Mike

Comments are closed.