FrameOS
Devices

Framebuffer & HDMI

Drive any HDMI screen, TV or LCD panel straight from the Raspberry Pi's video output.

Illustration

Generic HDMI / Framebuffer

Vendor
Generic
Model
HDMI / Framebuffer
Technology
HDMI
Colors
Full RGB
Resolution
Any / configurable
Size
-
Interface
HDMI / composite
Platforms
Raspberry Pi
Status
🟢 Confirmed working
FrameOS driver
framebuffer

Part of the FrameOS device database. Spotted an error, or tested this panel? Edit this page on GitHub - it's a markdown file.

The HDMI / Framebuffer driver renders straight to the Raspberry Pi's video output. Anything you can plug into the HDMI port works: TVs, computer monitors, small HDMI LCD panels, projectors.

This is also the fast path: on a Raspberry Pi 5, FrameOS can push 60 frames per second to an HDMI display, while the same scene system also runs e-ink panels at one frame per minute.

Setup

  1. Connect the display to the Pi's HDMI port.
  2. Select the HDMI / Framebuffer driver when adding the frame.
  3. Deploy. The width and height are autodetected from the display's mode - FrameOS writes them into the frame's config and the backend picks them up, so only fill them in if you want to force a different size.

On a Pi 5 with a Buildroot SD image, /dev/fb0 may exist before the display has a mode set (or while nothing is plugged in). The driver treats that as "not ready yet" and re-probes on its own - every 2 seconds, backing off to a minute - instead of waiting for the next scheduled render, so plugging a screen in brings the picture up within seconds even on an hourly frame.

Power control

The frame's … menu has Turn display off and Turn display on - in the backend, the on-device admin panel and FrameOS Cloud. They send the same turnOff / turnOn events a scene or schedule can, and a script or Home Assistant can send them over HTTP:

curl -X POST "http://frame:8787/event/turnOff?k=KEY"
curl -X POST "http://frame:8787/event/turnOn?k=KEY"

From a shell on the Pi, these are the two switches the driver runs:

# off
vcgencmd display_power 0
echo 1 | sudo tee /sys/class/graphics/fb0/blank

# on
vcgencmd display_power 1
echo 0 | sudo tee /sys/class/graphics/fb0/blank

What turning it off does

Turning the display off cuts the HDMI signal, so the monitor goes to standby with its backlight off instead of showing black. There's nothing to set up:

  • Under KMS (the Pi 5, Raspberry Pi OS Bookworm and later), blanking the framebuffer cuts the signal by itself.
  • On the legacy firmware stack (FrameOS's SD images for the Pi Zero to Pi 4), it also takes hdmi_blanking=1 in config.txt. The driver's setup adds that line on every deploy and on first boot, and reboots once when it's new. Raspberry Pi's documentation says the option doesn't switch the output off on a Pi 4, so there the monitor may only go black.

If neither switch works, the frame logs both exit codes as a driver:frameBuffer error.

On this page