Skip to main content

FrameOS

An operating system for single function smart frames.

It's designed for both screens that update 60 frames per second, and for screens that update 60 seconds per frame. Think smart home calendars, meeting room displays, thermostats, interactive message boards, public advertisement screens, and more.

FrameOS is written in nim, and gets compiled into a single binary when deployed.

FrameOS backend

You use the FrameOS backend to deploy FrameOS onto frames. Say that again!

The backend is a Python/Flask webapp, run through docker. It can be installed with a single command:

curl -fsSL https://frameos.net/install.sh | bash

Here's what it looks like:

FrameOS backend

What do you need to get started?

  • Someplace to run the FrameOS backend. Run it locally or on a server. It'll connect to the frames with SSH.
  • A display of some sort. E-ink or LCD. Take your pick from Waveshare or Pimoroni's e-ink HATs, or hook up a TV with an HDMI cable.
  • A Raspberry Pi with a stock Raspberry Pi OS Lite installed.
    • For maximum peformance, (e.g. 60FPS over HDMI) you'll need a Raspberry Pi 5.
    • If size matters, use the Zero W 2. It's great for eink displays, and can even do 24 FPS on small LCDs.

Sample frames

Here are some frames I have around the house.

Door frame Hallway dashboard 5.7" 7-colorKitchen Calendar Kitchen calendar 12.48" 3-color
Bathroom frame Bathroom thermostat 2.1" LCDPasta frame Scan the code to change the text
Kiwi 12.48" 3-color dithered artTimmy Tommy More 12.48" 3-color wall art

Sample scenes

Deploy your first scene from the repository.

Scenes

Scene editor

Create new scenes using the diagram editor.

Editor

App editor

Go even deeper and edit the source behind each app on the scene

Fork OpenAI

Getting started

  1. Start by installing the FrameOS backend. curl -fsSL https://frameos.net/install.sh | bash
  2. Then set up the raspberry, while following the device guide for your specific screen.
  3. Finally, read the rest of the guide to learn how to build your own scenes.

Status

FrameOS is good enough for small-time usage. Most of the core concepts are in place.

There is no numbered release yet. A FrameOS/frameos:latest docker image is generated for every push to main. While we take great care not to break things, there are no guarantees at this point.

If you're the adventurous type, please try it out, and help out. Look at the tasklist for ideas. Don't ask for permission, just submit a PR. If you're not sure, open an issue and we'll discuss it.

Next steps