Back Original

Here comes the sun[light]: An ambient Daylight Clock with time and space controls

6 Nov 2026

I built a Daylight Clock!

Photo of Daylight Clock on wall

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:

Photo of clock on wall
Photo of Daylight Clock’s control box on wall

What does this controller do?

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. 😱

Envy-driven development (EDD):5 cceckman’s daylight-aware clock

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!

Photo of Charles's daylight-aware clock.
Charles Eckman’s Daylight-Aware 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:

Photo of Charles's visualization.
Charles Eckman’s Daylight-Aware Clock simulator visualization

Physical design and construction: Clock body

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.

Vectorized layout of clock housing.

Vectorized layout of clock housing. 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.

Photo of Zytglogge's astronomical clock with labels.
Astronomical clock from the Zytglogge tower in Bern, Switzerland.

Painting was…an experience.

Photo of decorated face during painting
Photo of decorated face after painting

I used wood glue to make the press-fit connections permanent.

Photo of clock parts before assembly
Photo of clock parts mid-assembly
Photo of clock parts during gluing
Photo of clock parts after assembly

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.

Photo of clock parts with blu tack for outer piece

Physical design and construction: Controller box

I designed the controller box in Cuttle, too.

Vectorized layout of control box. Cuttle design here.

I used wood sealant on the front and acrylic paint on the sides.

Photo of controller box pre-parts

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.

Photo of controller box assembled and on wall

Hardware design

The Daylight Clock runs off an Adafruit Feather RP2040 microcontroller. The rest of the components are:

Photo of electronics assembly
Photo of electronics assembly
Photo of electronics assembly

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.

Software design

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.

Retrospective

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.

Photo of full assembly on wall

I bet you want to make one of your own now, yeah?

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