The operating system for smart frames

Turn a Raspberry Pi or ESP32, and any display - e-ink, HDMI or LCD - into a calendar, dashboard or art frame that runs itself. Everything renders on the device. Run it standalone, control it with a self-hosted backend, or manage it from FrameOS Cloud - the frame works the same either way.

Free & open source since 2023 (AGPL-3.0) · Works offline · Cloud optional · Yours forever

13.3 inch Spectra 6 color e-ink panel in a 3D-printed rosewood frameThe back of the 13.3 inch frame: Raspberry Pi Zero, Waveshare e-paper HAT and a soldered SD card extensionThe 13.3 inch frame being 3D printed on a Bambu Lab printerA portable HDMI monitor showing the FrameOS welcome screen from a Raspberry PiTwo e-ink frames with 3D-printed kickstandsTwo 4 inch frames side by side, one with a Spectra 6 panel and one with an ACeP panelPhone scanning the QR code shown on a frame to control itAI-generated image and haiku on a 12.48 inch e-ink display
A 13.3" Spectra 6 color e-ink panel in a 3D-printed frame

How do you want to get started?

All three render on the device, and a frame can move between them without reflashing.

Choose a path to see the next step.

Pick your hardware

Raspberry Pi or ESP32?

A Raspberry Pi is the classic option. Any model from the Zero W to the Pi 5 will do. Supports 120+ e-ink panels and other outputs like HDMI. You can manage the frame through their own admin page and HTTP API. Boot from a prebuilt SD image or install on any Linux with a shell script.

An ESP32-S3 lets you build battery-powered frames that deep-sleep between refreshes. It's still the full FrameOS experience. Everything is rendered on device, including 50MB JPEGs. Works with custom setups, and Waveshare, PhotoPainter, TRMNL and reTerminal boards. Boards without PSRAM (e.g. ESP32-C3) run as thin clients.

Batteries included

Deploy a scene in your first five minutes

SD card images, calendars, agendas, message boards, weather, AI art, and much more. Installable with one click, editable down to the source. Combine them, schedule them, make them yours.

Made in Space gallery sceneCalendar sceneMasterpieces gallery sceneMessage board sceneWeather scene with current conditions and an hourly forecastSplit agenda sceneXKCD sceneCuteness Overload gallery scene with a cartoon toucan

The editor

A visual editor backed by real code

Build a scene by wiring nodes together, then open any of them to see the code underneath. Apps are written in Nim (built in) or TypeScript. Preview changes in the browser, or on the frame directly. Check out the scene store for more examples!

The FrameOS scene editor showing the iCal agenda scene as a node graphA code node in the scene editor with a few lines of JavaScript building a caption from photo metadataThe TypeScript source of the weather panel app open in the in-browser editorThe browser preview of the weather scene in FrameOS Cloud, with its state and runtime log
The iCal agenda scene: fetch a URL, turn it into events, lay them out as text - every step is a node you can inspect and change

Case Maker

Design a printable case around your exact frame

The FrameOS Case Maker generates parametric, 3D-printable enclosures for supported panels and Raspberry Pi layouts. Pick a template, tune the depth and bezel, add wall mounts, kickstands, USB-C cutouts and screw posts, then download the STL.

It is built for the same hardware database as the docs, so common Waveshare and Pimoroni builds start from sane dimensions instead of a blank CAD file.

The FrameOS Case Maker interface for configuring a 3D-printed frame enclosure

Watch a full build (Raspberry Pi)

From bare panel to finished frame

Recorded over a year ago, before FrameOS Cloud and ESP32 support existed.

Build your first frame this weekend

A standalone Pi, a self-hosted backend, or a FrameOS Cloud account - the guide walks through all three, and the frame you end up with is the same.