Build a Self-Hosted ePaper Digital Photo Frame with Immich

by Priyanka Patel

For years, the digital photo frame has promised to bring our favorite memories back into the living room, but it came with a hidden cost: the “cloud tax.” Whether it is a Google Nest Hub, an Amazon Echo Display, or dedicated hardware from brands like Aura and Nixplay, the industry standard requires users to hand their private libraries over to a corporate server just to display a picture on a shelf.

This dependency creates a fragile ecosystem. When a company decides to sunset a service or change its terms, the hardware often becomes a decorative brick. For those of us who value digital sovereignty, the goal isn’t just a screen that shows photos, but a cloud-free ePaper photo frame that operates entirely within the walls of the home, devoid of subscriptions, accounts, or external telemetry.

Building such a device requires a shift in hardware philosophy. Instead of a high-refresh LCD that blasts light into a room, the ideal solution leverages ePaper—the same technology found in e-readers—to mimic the appearance of a physical print. By combining a Seeed Studio reTerminal E1002 with a self-hosted software stack, it is possible to create a display that looks like a real photograph and never “phones home.”

The centerpiece of this build is the Seeed Studio reTerminal E1002, a $100 hardware module that serves as the bridge between a local server and the physical display. Unlike standard monitors, this device uses E Ink’s Spectra 6 technology, which utilizes six distinct pigment colors—black, white, red, green, blue, and yellow. These pigments blend at the subpixel level to produce up to 4,096 colors.

The Seeed Studio reTerminal E1002 provides the hardware foundation for a local-first photo display.

The mechanics of a “printed” look

The primary advantage of ePaper is that it is bistable, meaning it requires zero power to maintain an image. Once the pigments are pushed into place by voltage waveforms, they stay there. This eliminates the need for a backlight, which is why ePaper displays don’t “glow” or cause glare in sunlight; instead, they reflect ambient light, making the image look like a physical print from across the room.

However, this aesthetic comes with a technical trade-off: refresh speed. A full update on a Spectra 6 panel takes approximately 15 seconds. Because the device must physically move pigments to change colors, there is no “partial refresh” available. For a video player, this would be a failure; for a photo frame that updates a few times a day, it is a negligible compromise.

reTerminal E1002 Technical Specifications
Component Specification
Processor ESP32-S3
Display 7.3-inch Spectra 6 ePaper
Memory 8MB PSRAM / 32MB Flash
Battery 2,000mAh
Connectivity Wi-Fi 802.11 b/g/n, Bluetooth 5.0

Building the local pipeline

To ensure the device never touches the cloud, the software stack must be entirely self-hosted. The pipeline begins with Immich, an open-source alternative to Google Photos. Immich handles the heavy lifting: automatic backups from mobile devices and the organization of photos into albums, all running on a local home server.

The bridge between the library and the frame is Home Assistant. A Python script, running via Pyscript, connects to the Immich API to grab a random photo from a designated album. This is where the critical “image processing” phase occurs.

Standard digital images cannot be sent directly to an ePaper screen without looking distorted. The script must resize the image to 800×480 and perform custom dithering. Because the physical pigments of a Spectra 6 panel are less saturated than digital hex values suggest, the images must be calibrated to match the real-world output of the display. Once processed, the image is saved to a local web directory, where it awaits retrieval by the hardware.

A laptop showing a timeline in Immich

Using Immich allows for a self-hosted photo management experience that mirrors commercial cloud services without the privacy trade-offs.

Power management and ownership

The final piece of the puzzle is ESPHome, which manages the device’s firmware. To maximize the 2,000mAh battery, the frame utilizes a “deep sleep” cycle. The device wakes up, connects to the local Wi-Fi, fetches the latest processed image from the Home Assistant server, renders it to the screen, and immediately returns to sleep.

Power management and ownership

With four updates per day, this cycle allows the frame to run for weeks on a single charge, enabling it to be placed anywhere in a home without the clutter of power cables. For those who want an immediate change, the reTerminal includes physical buttons that can be programmed to wake the device and force a refresh manually.

reTerminal E1002 showing a photo while on a windowsill

The combination of ePaper and deep sleep enables a wireless, low-power experience that defies the typical “always-on” nature of smart home gadgets.

this project is about more than just avoiding a subscription. It is a reclamation of the hardware. In a commercial ecosystem, the user is a tenant; in an open-source stack, the user is the owner. If the hardware manufacturer disappears, the frame still works. If the software needs a novel feature, it can be coded. By moving the intelligence from the cloud to the local network, the device becomes a permanent part of the home rather than a temporary lease from a tech giant.

As self-hosting tools like Immich and Home Assistant continue to mature, the barrier to entry for these “local-first” projects is dropping. The next step for enthusiasts is often the integration of more complex sensors or the expansion of these displays into full-home productivity dashboards.

Do you prefer the convenience of cloud-integrated frames, or are you moving toward a local-first home? Share your thoughts in the comments.

You may also like

Leave a Comment