// -- Motivation --
I dislike waking up, and getting out of bed. I want to ease this process, and reduce the pain of facing reality every morning.
We have blackout paper on our bedroom windows. It's wonderful at night (dark and cave-like), but waking up is harder, since there's no natural light to push my sleep cycle into wakefulness. Let's fix that with 14 watts of LED light.
// -- Parts --
* RGBW LED strips, see: https://www.youtube.com/watch?v=UA7I9fEAMOk
* 4.2" e-Paper display with breakout: https://www.waveshare.com/wiki/4.2inch_e-Paper_Module
* Lolin32 (ESP32 microcontroller)
* `e-ink-clock` board by @romkey. He also improved my life by donating the Lolin32 and e-Paper display, without knowing what I would do with them. Thanks!! https://github.com/romkey/e-ink-clock
* 3D-printed base, and enclosure. The original parts were printed with a "natural"-color PLA. The LED heat caused the base to bend upwards, which seemed like an accident waiting to happen, so I remade the base using a "clear" PETG (higher heat tolerance).
* Spray paint: translucent black (from an auto parts store) for the jagged lines. Spray frost top coat.
// -- Design --
Mountains == reminder that there are things worth getting out of bed for, to experience and strive for.
(Update 2021: I live in the mountains now! Life imitates art. This clock did help regulate my sleep cycle, and boosted my motivation. I've made some major life changes since 2019.)
The display was a self-imposed design challenge: create a monochrome look that elevates the e-Paper aesthetic. I'm completely satisfied with the result. The backgrounds are custom halftone patterns typed by hand (see: `HalftonePattern.h`). The geometric regions are Voronoi diagrams. Nodes are arranged in various patterns to produce interesting layouts, and a sense of motion.
Since individual LEDs aren't distinguishable, I'm using one LED animation with a functional purpose. The three mountains crossfade between different colors of bright green- and blue-ish light. This works pretty well. For me, the best moments of wakefulness seem to occur when a darker color fades into the brightest color (100% RGBW), a future version of the code will probably sequence the colors dark-light-dark-light-etc.
The ESP32 is also a webserver. From a browser, I can change the wake time, fade-in, sunrise duration, and LED count.