FrameOS

FAQ

Frequently asked questions about FrameOS.

Is there a cloud? Do I need an account?

No cloud, no account, no subscription. The backend is a web app you host (Docker or Home Assistant add-on), and frames run entirely on-device once deployed. You can shut the backend down and your frames keep rendering, keep their schedules, and stay controllable over their local HTTP API.

Can I run this on an ESP32?

Yes. FrameOS runs on the ESP32-S3: the backend builds a firmware image, you flash it from the browser, and the device renders scenes on-device with the same scene interpreter as Linux frames, plus QuickJS for code nodes. It syncs scene changes over WiFi and updates its firmware over the air with automatic rollback. It can even deep-sleep between refreshes, which makes battery-powered frames viable.

That said, the Raspberry Pi is still the recommended platform. A full Linux system gives FrameOS room a microcontroller can't match:

  • Displays - the Pi drives 110+ panels including 1600×1200 six-color Spectra 6; the ESP32 firmware targets Waveshare SPI e-paper panels and headless builds.
  • Real rendering at any size - dithering a 13.3" color panel takes more RAM than most microcontrollers have in total. The S3's 8MB PSRAM handles 800×480 in black/white.
  • Apps that need an OS - headless Chromium screenshots, Python-based drivers, on-disk assets. Use a Raspberry Pi for scenes that depend on those features.

A Pi Zero 2 W idles around one watt, so Pi frames are wall-powered. If you want a wire-free frame that refreshes a few times a day, the ESP32 build is now the better tool - and it's the same backend, the same scenes, and no cloud either way.

Can the backend and the frame run on the same Raspberry Pi?

Yes, on a Pi 4/5 with some patience. Install the backend via the release tarballs or Docker on the Pi, then add the frame with localhost as its address. For e-ink frames a more common setup is: run the backend on your laptop only when you want to change something - the frame doesn't need it day to day.

What happens when my WiFi or internet goes down?

The frame keeps rendering whatever its scenes can produce locally. Apps that fetch remote data serve their cached values. The control page on port 8787 keeps working as long as you can reach the frame on the network. When connectivity returns, everything catches up on the next render.

How fast can it render?

On a Raspberry Pi 5 over HDMI: up to 60 frames per second. On e-ink, the panel itself is the bottleneck - color e-ink takes ~15-30 seconds per refresh, monochrome panels a second or two. FrameOS only refreshes the physical display when the rendered image actually changed, so e-ink panels don't flash needlessly.

Can I show my own photos?

Yes. Upload images to the frame's Assets and use the Local image app, point the Image from URL app at any address, sync a folder over SSH, or use gallery apps (FrameOS Gallery, Unsplash, Wikimedia Commons, OpenAI image generation).

Does it integrate with Home Assistant?

Three ways: the backend runs as a Home Assistant add-on; the HA Sensor app pulls any Home Assistant entity into a scene; and HA automations can drive frames through the HTTP API - change text, switch scenes, trigger renders.

How do I share scenes or apps I made?

Scenes export as JSON (and as ZIP templates with preview images) you can share anywhere. The community hangs out on Discord - show off your builds, get help, and propose contributions. Code lives at github.com/FrameOS/frameos; PRs welcome.

What does it cost?

FrameOS is free and open source (AGPL-3.0). A complete frame is roughly the price of the panel plus ~$20 of Pi: a 7.5" black/white build lands around $80, a 13.3" Spectra 6 color build around $250.

Is there a hosted/cloud option coming?

The core promise stays: frames run locally, forever, with no account. A hosted backend (for those who don't want to self-host one) is being explored - follow the blog and newsletter for news.

On this page