Flash custom firmware onto an M5Stack PaperColor E Ink photo frame
Experiment with browser-side WASM dithering for 6-color E Ink panels
Build a no-cloud photo frame that serves its own Wi-Fi and web app
Calibrate a 6-color E Ink display using colorimeter readings
Needs ESP-IDF 5.x with ESP32-S3 toolchain plus Emscripten and Node.js, and the build script expects a Homebrew Emscripten path.
PaperColor Frame is open-source firmware for a small digital photo frame that uses a six-color E Ink screen. The target hardware is an ESP32-S3 board from a family called M5Stack PaperColor, with an SD card slot, buttons, status lights, and a 4-inch reflective color display. The README says the frame creates its own Wi-Fi hotspot and serves a phone-friendly web page, so you can upload and manage photos from a browser without any cloud account or separate app. The web interface lets you upload images, see them as a wall of polaroid-style cards, and send any photo to the screen. Before sending, you can rotate, fit, and crop the image, preview how the dithering will look, apply presets, or hand-tune the color. The image conversion that turns a normal photo into something a six-color E Ink panel can show is done in the browser using a WebAssembly module, producing a packed 4-bit-per-pixel framebuffer. There are two dithering paths, one called Classic VED and a newer one called E6 Mix that is tuned for real reflective ink. The firmware also exposes a calibration screen where you type in colorimeter readings for the solid inks and optional mixed patches, so the conversion can be matched to the actual screen. Photos are stored on the SD card by default and fall back to internal flash storage when no card is present. Other settings cover slideshow timing, sleep behavior, status light brightness, Wi-Fi password, and language. Building it needs ESP-IDF 5.x with ESP32-S3 support, plus Emscripten for the browser-side dither module and Node.js for a small smoke test. The repo is organized into firmware source, an embedded web app, documentation on the color pipeline and implementation, host-side test helpers, and standard ESP partition files. The README has English and Chinese sections side by side. The license is GPL-3.0-only.
Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.