Build Log · Hardware
The Pi was overkill
For the first month or so, the brain of this thing was a Raspberry Pi. That's the obvious place to start, because the e-ink driver I bought is sold as a Raspberry Pi HAT. You stack it on a Pi, run a bit of Python, and it works. Mine did. I even had it tucked into a little 3D-printed case.
The longer I lived with it, though, the more it nagged at me. A Raspberry Pi is a full Linux computer. It takes most of a minute to boot, it wants a clean shutdown, the SD card is one bad power-cut away from corruption, and it draws a couple of watts around the clock just existing. And for what? The actual job is barely a job: wake up every ten minutes or so, fetch one image, push it to the panel, go back to sleep. I was running an operating system to do something a much smaller chip could do without breaking a sweat.
Moving to an ESP32-S3
So I moved it onto an ESP32-S3, a tiny, cheap microcontroller with Wi-Fi built in. No operating system, no SD card, nothing to corrupt. It powers on and it's just running my code. It talks to the same driver board over the same eight SPI wires the Pi used, so the hardware underneath barely changed. The work was mostly rewriting the fetch-and-paint logic to live directly on a microcontroller instead of inside Linux, which humbled me a few times, but it was worth it.
The payoff was bigger than I expected. Boot went from most-of-a-minute to basically instant. The corruption worry left with the SD card. And idle power dropped far enough that it opened a whole separate rabbit hole of getting it to sip almost nothing between editions, which is its own post. The Pi was the right way to find out whether the idea worked at all. The ESP32 is the right way to actually live with it.