Why DULLES CLOCK ?
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 (http://wyolum.com/) 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.
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. 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.
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 adafruit.io 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 repositorychar ssid = "YOUR_WIFI_SSID"; // your network SSID (name)char pass = "YOUR_SSID_PASS"; // your network passwordchar* password = pass;
/************************* Adafruit.io Setup***************************/#define IO_SERVER "io.adafruit.com"#define IO_SERVERPORT 8883#define IO_USERNAME "YOUR_IO_USERNAME"#define IO_KEY "___YOUR_IO_KEY______" //copy paste AIO key#endif
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.
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 Adafruit.io. 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.