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
- Connect the display to the Pi's HDMI port.
- Select the HDMI / Framebuffer driver when adding the frame.
- 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/blankWhat 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=1inconfig.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.