Writing

Software, projects & software projects

Kindling: E-Ink Dashboard

Ever missed pulling the laundry out of the washing machine in time? We did that a lot. Finally, the itch was big enough to build a little helper:

A small e-ink dashboard that sits in a visible place in the house. It displays:

Hardware

The dashboard runs on an old Kindle that may or may not have received a jailbreak. That gives you a battery-powered, e-ink device that runs an Amazon-flavored Linux. It’s a bit of a hassle to SSH into the device to fiddle around there. So, I kept the setup in the device itself relatively lightweight: there’s an install script running on boot. It disables a few energy hungry services, most notably the default UI. The second component is an update script scheduled by cron. It wakes the device and its network, fetches the dashboard image file, throws that on the screen, and puts the device back to sleep.

Software

A bun.sh service creates the dashboard. It fetches data from a number of upstream sources and displays those on an HTML page. I’ve used puppeteer to export that page to an image. Thanks to the lovely folks at TRMNL for providing a wonderful design system. I didn’t have to come up with my own and could just use their slightly adjusted CSS file. The server runs on a Lenovo ThinkCentre Mini-PC in my office closet. For deploying, I package the app up using Bun’s bundler and rsync the single binary to the machine.

Data Sources

Misc

This has been running for quite some time now and has proved to be really useful. We missed fewer trash pick-up dates, mostly got the laundry out in time and the kids learned some important Pokémon facts.

Other posts