A standalone digital photo frame that displays your Immich photo library on a Guition ESP32-P4 touchscreen — no additional services required.
Built with ESPHome on the ESP32-P4, the frame connects directly to your Immich server over HTTP or HTTPS and streams photos to your display, completely in private over your local network.
- Fully standalone — runs on bare hardware, no hub or cloud service needed
- Photo sources — show all photos, favourites, specific albums, specific people, "on this day" memories, or date-filtered ranges
- Display tone adjustment — adjust colour temperature (e.g. warm the image if the panel looks too blue)
- Night tone — automatically adjust screen tone between sunset and sunrise
- Screen scheduling — schedule when to turn off the display; set daytime and night-time brightness separately
- Smart portrait pairing — detects portrait photos and pairs them side-by-side from the same day
- Accent colour fill — letterboxed areas are tinted with a colour sampled from the photo
- Configuration options — change Immich URL, API key, photo source, date filters, slideshow interval, and more via the built-in web UI
| Item | Link |
|---|---|
| 10" panel (JC8012P4A1) | AliExpress |
| 10" printable stand | MakerWorld |
The easiest way to get started is with the web installer — flash the firmware directly from your browser with no toolchain or build step.
You'll need a USB-C data cable and Chrome or Edge on desktop.
Getting started, configuration, and troubleshooting guides are available at:
jtenniswood.github.io/espframe
# Docs site (live reload)
npm ci
npm run docs:dev
# Compile firmware locally
docker run --rm -v "${PWD}:/config" ghcr.io/esphome/esphome:2026.4.0 compile /config/builds/guition-esp32-p4-jc8012p4a1.factory.yamlIf you find this project useful, consider buying me a coffee to support ongoing development!
