6 Nov 2026
I built a Daylight Clock!
This analog clock has a 24-hour period, with midnight at the bottom and noon at the top. The lights around the circumference illuminate the current daylight span, based on the clock’s home latitude and longitude.
I also built a time-and-space control box:
What does this controller do?
The knob at the bottom controls time, in increments of one week per click.1
The time knob in action:
The sudden springs forward and falls back daylight shifts are when Daylight Savings Time begins and ends.
The toggle on the side switches enables the control box’s time and space overrides; when this switch is off, the time knob controls the brightness of the edge lighting.2
The vertical slider is a latitude selector, designed so that the world map—Equal Earth projection!—lines up with the length of the slider.3
The latitude slider in action:
The three-way “relative longitude” toggle at the top sets position within the current time zone—i.e., whether the daylight computation is based on the west, central, or east edge of the given timezone.4
The longitude toggle in action:
Based on the relative longitude video, is it possible that this entire project was a way for me to illustrate the time zone grudge I’ve held for years? Not intentionally, but….
The grudge: I grew up in Michigan, on the west edge of the Eastern Time Zone (US); I later moved to the eastern side of that same zone, where the sun rises and sets a full hour earlier. This is distressing in the summer—by rights, the sun ought to set late in the summer!—and borders on criminal in the winter: the sun sets just after 4pm on the solstice. 😱
My clock’s provenance is wholly attributable to my friend Charles and his very cool daylight-aware clock. In Charles’s words:
I’ve always lived at middle latitudes of 35-40 degrees. I notice the change in daylight / nighttime hours across the course of a year; in the winter, ending work at a reasonable hour still feels like “working into the night”.
I wanted to have a little passive reminder about how much daylight I am / am not getting. Not one tied to my computer or phone – something more ambient. Naturally, a reminder of the passage of time is… a clock!
When Charles started building his clock I was covetous, and knew I had to build my own.
We made a few different design choices—his time display is digital, mine analog; his daylight illuminates outward from the circumference of the clock, mine inward6—but we both put noon at the top,7 and I used his daylight calculation code wholesale. Also his pair programming assistance to sleuth out a mysterious failure mode!8 9
My clock’s time-space control box was inspired by Charles’s nifty virtual interactive daylight visualization:
The clock movement is an off-the-shelf 24-hour movement. You can just buy these!10
I designed the body of the clock and the body of the controller box in Cuttle.xyz, and cut the pieces on the laser-cutter at my local library’s free maker space(!).11 I designed the clock to have a circumference of exactly 48 neopixels on an Adafruit neopixel strip, so that the lights would subdivide nicely into the hours of the day.
Cuttle design here.
The outer decoration is from the astronomical face of the astronomical clock of the Zytglogge, in Bern, Switzerland. I digitized a photo of the Zytglogge, then cleaned it up and scaled it properly in Cuttle.
Painting was…an experience.
I used wood glue to make the press-fit connections permanent.
I painted the clock with acrylic paint, and attached the outer decorated ring with Blu Tack so that I can easily remove it and swap it for a different decoration.
I designed the controller box in Cuttle, too.
Cuttle design here.
I used wood sealant on the front and acrylic paint on the sides.
I failed to make the box deep enough to fit the ensuing tangle of wires crammed inside, so it doesn’t sit completely flush against the wall. Ah well, can’t win ’em all.
The Daylight Clock runs off an Adafruit Feather RP2040 microcontroller. The rest of the components are:
The microcontroller and all components live in the control box, except for the neopixels around the clock face, which are connected to the microcontroller via some hand-braided wires and a few connectors.The connectors are so that I can easily change the distance between clock and control box, without doing any additional soldering. The neopixels are powered through the board, which plugs in via standard wall wart.
The new-to-me aspects of this project were the RTC and—less glamorously!—the crimped wire connectors.
I programmed the Adafruit Feather with CircuitPython, relying heavily on the
asyncio library. asyncio allowed me to separate
monitoring the state of the input controllers—“has the slider position changed? the toggle toggled? the knob turned?”—from re-computing each neopixel’s resultant color.
I ported the sunrise and sunset calculations from Charles’s Rust implementation of the NOAA solar calculator.
I’ve made the code available here—and standard houseplant programming caveats apply.
This project took a lot of calendar time, and a disproportionate amount of mental space.
Challenges:
Thankfully the result looks really cool, and works as intended, and I love having it on the wall.
Go for it!
To get you started:
Feel free to ask if you are building one and need more guidance at any step; I didn’t want to take the time (heh) to write a full tutorial, but I’m more than happy to assist retroactively.
Also, if you want to make one, but don’t want to deal with quite so many electronics:
Thanks to Charles! Also AF, for build [emotional] support.
I attended the Recurse Center and all I got was this lousy blog footer