Dulles Clock

How to build a Desktop Word Clock (in a morning) !

Similar projects worth following
Cost: $100, Time: 2-4 Hours, Difficulty: Easy, Tools: Laser Cutter, 3D printer.

If you've ever flown in to Washington DC's airport, you'll know. If not, then Google

Thanks to the modern maker tool suite, it is getting easier to make topnotch builds very quickly. In the process of revamping ClockTHREEjr, we ( decided to prototype & test a matrix driving circuit. When addressable LEDs were not a thing yet, a large array needed to be displayed as a X-Y matrix. This makes circuit & programming logic very complex. Smart addressable LEDs (like APA102C), with an embedded microchip, make all of that complexity obsolete. With only 2 pins from a microcontroller, these pixels can be commanded to set & hold any 24-bit color as long as power is maintained. This frees up the processor to do other things, like poll u

So the task is to redesign the ClockTHREEjr board using these modern smart LEDs.  ClockTHREEjr  (C3jr) has 8 rows and 16 columns of dumb LEDs, which can upgraded to smart pixels using 2 ULTiM8x8 (no solder) LED panels.  What was originally just a proof of concept turned out to be so cool we decided to show it off and make the design public.

Once you have purchased the Bill of Materials (BoM), you can make this clock in a morning.  Once you get your 3D printer started on the baffle (0.5-3 hours depending on printer and settings), you can move over to your laser cutter to make the front and back of the clock (1 hour).  Give yourself 30 minutes for final assembly and 30 minutes to program, even though neither takes that much time.  That means you can make this project in 4 hours with plenty of margin.  This project is a slam dunk.

  • 1
    1. Print baffle

    Since the baffle is not really visible in the assembled clock, it can be printed very quickly with large layer heights.  Kevin Osborn was able to get the print time down to 25 minutes using a 1mm nozzle   With the .4mm nozzle you can go up to .2mm layers.  The rule of thumb is to make the layer height no more than 1/2 nozzle width. You can go higher, but this tends to get layer separation (theoretically you could do 1x nozzle width layers).

    Glue the velum to the font of the baffle and trim away excess velum

  • 2
    2. Lasercut faceplate and backplate

    The faceplate is etched on the backside.  The black letters are to be etched and the red lines are cut. Take your time here.  You may need to slow the etching speed down or make more than one pass to remove all of the opaque material.  There are several choices on the material.  Black is by far the most popular but Inventables (see bill of materials) offers several color choices.  The mirrored acrylic also works well.  For a super glossy finish, use spray-painted acrylic with at least four coats of paint, the last coat being in black.  Let dry completely between layers.

  • 3
    3. Program Feather Huzzah

    Pre-requests: Install ArduinoFeather Huzzah dev envadafruit IO account.


    1. Download the code from GitHub.
    2. Set sketchbook folder: KlokTHREEjr->arduino
    3. Create libraries/credentials/credentials.h
    4. Open arduino/DesKlok_IO/Desklok_IO.ino
    5. Board: Feather Huzzah
    6. Select port
    7. Upload

    Download the code from github.  You can either download the zip file or clone the repository.  The stable code for this clock is stored in DesKlok_IO.  The _IO in the name refers to the fact that we are using the Adafruit_IO library for controlling the clock. We will configure our IO controls after we upload the program to the Feather Huzzah.

    Every WyoLum repository comes complete with all of the libraries you need installed in the “arduino/libraries” directory.  Point your arduino->preferences->sketchbook directory to your downloaded KlokTHREEjr/arduino/   (On my system it’s “/Users/justin/code/KlokTHREEjr/arduino”).

    Next we need to put wifi and credentials into a file called credentials.h.  Open libraries/credentials/README and fill out your ssid, password and IO credentials.

    #ifndef __CREDENTIALS_H
    #define __CREDENTIALS_H
    // Create a file called "credentials.h" that has ssid and pass as shown.
    // This file should not be added to your public repository
    char ssid[] = "YOUR_WIFI_SSID"; // your network SSID (name)
    char pass[] = "YOUR_SSID_PASS"; // your network password
    char* password = pass;
    /************************* Setup***************************/
    #define IO_SERVER ""
    #define IO_SERVERPORT 8883
    #define IO_KEY "___YOUR_IO_KEY______" //copy paste AIO key

    Finally restart Arduino.  If the path is set correctly, you will see a few Klok sample programs in the File->Sketchbook menu.  Open “DesKlok” from File->Skechbook->DesKlok.  Select the “Feather Huzzah” board from the Tools->Board menu.  Plug in your Feather Huzzah into an available USB port and select that port from the Tools->port menu in Arduino.  Finally upload the code. setup

    IO allows us to leave off the tedious physical interface and go with a purely virtual interface.  To control the DesKlok, you will need to set up  You will need to create three feeds on io.adafruit: klok_brightness (0 to 50), klok_display_idx (0,1,2), and Timezone1 (-720 to 720),  klok_brightness. 

    After you create the feeds, add dashboard to hold them. I used three slider-bars with the above limits.

View all 5 instructions

Enjoy this project?



janettabloomquist wrote 05/09/2023 at 05:23 point

A really great stuff you have shared with us. Keep it up.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates