DIY E-Ink Dashboard with Spectra 6
Building a custom e-ink information display from scratch using Waveshare Spectra 6 panels and ESP32, with a focus on low-power always-on dashboards.

Overview
A custom e-ink information display built from scratch using a Waveshare Spectra 6 panel and ESP32. Designed as a low-power always-on dashboard showing weather, calendar, homelab status, and public transport times — refreshing once every 15 minutes and running for months on a single battery charge.
Why Spectra 6?
Spectra 6 (also marketed as E6) is Waveshare's implementation of the ACeP (Advanced Color ePaper) technology. Unlike traditional black-and-white e-ink or the older black-white-red Spectra 3 panels, Spectra 6 supports 6 colors: black, white, red, yellow, blue, and green. Full refresh takes about 15 seconds — slow, but perfect for a dashboard that updates infrequently.
Hardware
| Display | Waveshare 7.3" Spectra 6, 800x480, 6-color ACeP |
|---|---|
| Driver Board | Waveshare ESP32-S3 e-paper driver |
| Enclosure | 3D-printed PLA with matte finish |
| Power | 18650 Li-ion cell, ~3 months per charge |
Design Decisions
- Push, not pull — the display fetches from a lightweight API endpoint serving pre-rendered bitmap data, rather than rendering on-device. This keeps the ESP32 firmware simple and the layout easy to iterate.
- Custom bitmap format — a compact indexed bitmap maps each 2-bit pixel to one of 6 colors, reducing payload to ~240 KB per frame.
- Deep sleep between refreshes — the ESP32 wakes every 15 minutes, fetches the latest frame over WiFi, pushes it to the panel, and goes back to sleep. Average power draw is under 1 mW.
Current Status
Prototype hardware is assembled and the display driver is working. The bitmap rendering server (a small Bun endpoint) serves pre-composed dashboard frames. Next steps: design the dashboard layout, add weather and calendar data sources, and refine the 3D-printed enclosure.