mirror of
https://github.com/jtenniswood/espframe.git
synced 2026-04-18 17:15:55 +02:00
Esphome based Immich digital photo frame
https://jtenniswood.github.io/espframe/
- C 87.9%
- C++ 11%
- Python 1%
- CMake 0.1%
| .agents/skills/compile | ||
| .github/workflows | ||
| builds | ||
| common/addon | ||
| components | ||
| devices | ||
| docs | ||
| .gitignore | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| renovate.json | ||
Espframe for Immich
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 and streams photos to your display, completely in private over your local network.
Features
- 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
Hardware
| Item | Link |
|---|---|
| 10" panel (JC8012P4A1) | AliExpress |
| 10" printable stand | MakerWorld |
Install
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.
Documentation
Getting started, configuration, and troubleshooting guides are available at:
jtenniswood.github.io/espframe
Development
# 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.yaml
Support This Project
If you find this project useful, consider buying me a coffee to support ongoing development!