An analog-ish LED sun clock! This design came about from my desire to make more functional glowy objects, and some trepidation towards designing a mechanical clock that is quiet & efficient enough to sit on a wall.
This project uses an ESP8266. It syncs with a local NTP server to keep time on track every 13ish hours, and accounts for Daylight Savings Time automatically! This time, I experimented with edge lighting the acrylic instead of backlighting, which allows for a thinner profile since I don't need as much distance from the wall for the LEDs to diffuse.
Reading the Clock
Once again, I wanted to play with a different way to read the device than normal clocks. I haven't invented the LED clock here, nor the sun-themed clock, but I had a lot of fun.
Following the sun theme, I wanted to use warm colours for the lights. I decided to assign the colours by ascending frequency. Hours, like red, are lowest frequency, and seconds, like yellow, are highest. Supporting this, I made the red arc for hours widest, the orange next widest, and so forth. This also servers a second purpose.
Everything is represented by one set of 40 lights, so markers can overlap. Seconds overlaps Minutes and Hours, and Minutes overlaps Hours. By making Minutes narrower than Hours, and Seconds narrower than Minutes, when they overlap all markers remain visible.
For people who can't see warm colours well, here's a palette swap, which sort of makes it look like a porthole:
Sun Clock Design
Designing this clock was a lot of fun. I went into this with absolutely no preconceptions of what it should look like, and my original ideas looked significantly different than my end result. My favourite part was designing the display method for the time. My favourite part of the physical end-product though is the gold filament. In my opinion, it makes the design.
The Original Design
The original concept was much bigger, in black, and had two rings of LEDs. One for backlighting, and one to tell the time. I wanted to experiment with some kind of moving part, but I didn't want to use it for timekeeping. The LED ring for the clockface would have been totally exposed, while the backlight played shifting colours (sort of like An Abstract Hug). I purchased LEDs while still designing the clock, which explains why I didn't use more densely packed LEDs with greater resolution. A larger design would have required significantly more of them, running the energy cost up and requiring a larger transformer. I consolidated to one LED ring for a few reasons.
The Final Design
I consolidated to a smaller LED sun clock and only one LED ring for several reasons. It was cheaper, more power efficient, and the original design was pretty ridiculous at 16-17" in diameter. The diffusion panel was a better look for the front, and leaving the back open for backlighting & diffusion saved weight and material. While I've used acrylic once before, I hadn't tried edge-lighting and I was eager to see how it compared. In addition, I would have needed to break the quadrants down even more to print them.
I had to print the outer ring in 4 interlocking quadrants, because the project is much larger than my printer bed. Each quadrant covered nearly the whole print area. Some of my patrons on Patreon, to whom I'm very grateful, got to see a WIP Preview of this project including some print timelapses for a few of the sections.
One aspect of the design which didn't work entirely as I wanted was the backlighting. I had intended for there to be more of it, radiating out from the back of the clock in rays, but for once I overestimated the WS2812b. On many projects I run them at barely 25%, so I tend to assume they're capable of infinite brightness. Sadly they aren't, especially in red.
Another was the readability of the clock! It's readable, it's aesthetically pleasing, and I'm proud of it for being weird, but it's not the kind of instant to-the-minute read you might get from a standard analog clock. At least, not without experience.
Learned for Next Time
- WS2812b do not have infinite brightness
- The 1khz interrupt I was using from the RTC to track milliseconds interfered with the LED control signal, resulting in flickering LEDs. As a result, I had to guesstimate milliseconds, which I think has worked okay.
- Triple check ballpark print durations early in the process to improve scheduling
- Turning the WiFi back off on the ESP8266 may not be as straightforward as one might hope
- RTCs may not account for milliseconds; They're great for timestamps, alarms, etc., but not as great for analog clocks.
Bill of Materials
- Wemos D1 Mini ESP8266
- DS3231 RTC Pi Breakout
- 1 MicroUSB Cable (Power/Programming)
- 40x WS2812b Addressable LEDs
- roughly 9in2 Acrylic
- Hot Glue
- ~240g of PLA Filament
- 3D Printer
- Wire Cutters/Strippers
- Soldering Iron
- PlatformIO & C++