Hardware

I built a $100 ePaper photo frame that never touches the cloud

At a glance:

  • $100 Seeed Studio reTerminal E1002 powers the DIY photo frame
  • Local photo library managed with Immich and Home Assistant, no cloud dependency
  • 2,000 mAh battery delivers weeks of runtime with four daily updates

Why a cloud‑free frame matters

Digital photo frames have become mainstream, but most mainstream options—Google Nest Hub, Amazon Echo Show, Aura, Nixplay—rely on proprietary cloud services to store and serve images. That model ties the user to a vendor’s ecosystem, creates privacy concerns, and leaves the device vulnerable if the service is discontinued. By keeping every step of the pipeline on a home network, the project eliminates those risks while delivering a display that looks more like a printed photograph than an LCD screen.

Hardware: Seeed Studio reTerminal E1002

The heart of the build is the Seeed Studio reTerminal E1002, priced at $100 at the time of writing. It is an ESP32‑S3‑based board with 8 MiB PSRAM and 32 MiB flash, a built‑in SHT40 temperature‑humidity sensor, three tactile buttons, a microSD slot, and a metal chassis with a rear mounting hole. Key specifications:

  • Display: 7.3‑inch ePaper panel using E Ink Spectra 6 (six pigments: black, white, red, green, blue, yellow) – up to 4,096 colors
  • Connectivity: 2.4 GHz 802.11 b/g/n Wi‑Fi, Bluetooth 5.0
  • Battery: 2000 mAh Li‑ion, supports deep‑sleep for weeks of operation
  • Refresh: Full‑screen update ~15 seconds (no partial refresh)

The Spectra 6 technology gives the frame a matte, print‑like appearance that is easy on the eyes and consumes virtually no power once an image is rendered.

Software pipeline: Immich, Home Assistant and ESPHome

The image library runs on Immich, a self‑hosted alternative to Google Photos. Immich automatically backs up photos from a phone, organizes them into albums, and exposes a robust API. Home Assistant orchestrates the workflow:

  1. A Python script (via Pyscript) queries Immich for a random photo from a chosen album.
  2. The image is resized to 800 × 480 and dithered to match the Spectra 6 palette using calibrated colour values.
  3. The processed PNG is saved to Home Assistant’s local web directory.
  4. ESPHome on the reTerminal fetches the PNG, renders it, reports battery and sensor data, then returns to deep sleep.

The ESPHome YAML that handles the download looks like this:

online_image:
  - url: "${ha_url}${image_path}"
    id: frame_image
    format: png
    buffer_size: 65536
    type: RGB565
    resize: 800x480
    on_download_finished:
      then:
        - logger.log: "Image downloaded, updating display..."
        - component.update: epaper_display
        - delay: 45s  # Wait for the color e-paper refresh to finish
        - logger.log: "Display refresh complete, entering deep sleep..."
        - deep_sleep.enter: deep_sleep_1
    on_error:
      then:
        - logger.log: "Image download failed"
        - delay: 30s
        - deep_sleep.enter: deep_sleep_1

Power management and battery life

Because ePaper holds an image without power, the frame only draws energy during Wi‑Fi connection, image download, and the 15‑second refresh. The reTerminal’s built‑in 2,000 mAh battery, combined with a four‑updates‑per‑day schedule, yields several weeks of unplugged operation. Deep‑sleep mode shuts down the ESP32‑S3 between cycles, and the three physical buttons let the user force an immediate refresh or wake the device manually.

Building the frame and open‑source ethos

All components are off‑the‑shelf and the software stack is fully open source: ESPHome firmware, Home Assistant automations, the Pyscript fetcher, and the Immich server. The author has published the complete YAML and Python scripts on GitHub, enabling anyone to replicate or extend the design. If Seeed Studio were to disappear tomorrow, the hardware would still function with any ESP32‑S3 board that can drive a Spectra 6 ePaper panel.

What this means for DIY enthusiasts

Commercial photo frames often cost several hundred dollars, lock users into proprietary clouds, and provide no hardware hackability. This $100, locally‑hosted solution demonstrates that a high‑quality, print‑like display is achievable with modest expense and full control over data. It also showcases how modern home‑automation platforms can coordinate hardware, image processing, and power management without ever reaching out to the internet.

Editorial SiliconFeed is an automated feed: facts are checked against sources; copy is normalized and lightly edited for readers.

FAQ

What hardware does the photo frame use and how much does it cost?
The frame is built around Seeed Studio’s reTerminal E1002, a metal‑framed ESP32‑S3 board with an integrated 7.3‑inch Spectra 6 ePaper display. At the time of writing the reTerminal costs **$100** and includes a 2000 mAh battery, Wi‑Fi, Bluetooth, temperature‑humidity sensor, three buttons, and a microSD slot.
How does the system avoid using any cloud services?
All images are stored on a self‑hosted Immich server on the user’s home network. Home Assistant runs a Python script that pulls a random photo via Immich’s API, processes it locally, and serves the PNG to the reTerminal over the local network. No external APIs or cloud storage are involved.
What is the expected battery life and refresh rate of the frame?
A full‑screen refresh of the Spectra 6 panel takes about **15 seconds**. With four updates per day, the built‑in 2000 mAh battery can last **several weeks** when the device spends most of its time in deep‑sleep mode between updates.

More in the feed

Prepared by the editorial stack from public data and external sources.

Original article