Building a Low-Cost Digital Signage Display with Raspberry Pi

A step-by-step guide to transforming a Raspberry Pi Zero W into a dedicated digital signage kiosk—perfect for displaying dynamic content like movie posters, dashboards, or informational displays.

The Problem

I wanted a digital display in my home theater that would showcase movie posters from my Plex media server. Commercial digital signage solutions are expensive, and repurposing an old tablet felt wasteful and unreliable for 24/7 operation.

The Solution

A Raspberry Pi Zero W ($15) configured as a dedicated kiosk. It boots directly into a fullscreen Chromium browser displaying content from any URL—no desktop environment, no distractions, just the content.

For my setup, I used Matt’s Plex Movie Poster Display running on a local VM, but this kiosk can display any web-based content: dashboards, calendars, weather displays, or custom signage.

Requirements

  • Raspberry Pi Zero W (or any Raspberry Pi)
  • MicroSD card (8GB minimum)
  • Display with HDMI input
  • Raspbian Buster installed
  • Network connectivity (WiFi or Ethernet)

Instructions

Step 1: Initial Configuration

Boot your Pi and log in with the default credentials (pi / raspberry), then run the configuration utility:

sudo raspi-config

Configure the following settings:

  • Change the default password
  • Set your hostname
  • Configure WiFi (SSID and password)
  • Set your timezone
  • Enable SSH under Interface Options
  • Set Boot Options → Desktop / CLI → Console Autologin

Finish and reboot. From this point forward, you can work remotely via SSH.

Step 2: Update the System

sudo apt-get update && sudo apt-get upgrade -y

Step 3: Install Minimal Display Environment

Install only what’s needed for kiosk mode—no full desktop environment:

sudo apt-get install --no-install-recommends xserver-xorg x11-xserver-utils xinit openbox chromium-browser -y

Step 4: Configure Openbox Autostart

Edit the Openbox autostart configuration:

sudo nano /etc/xdg/openbox/autostart

Add the following content:

# Disable screen saver and power management
xset s off
xset s noblank
xset -dpms

# Allow quitting X server with CTRL-ALT-Backspace
setxkbmap -option terminate:ctrl_alt_bksp

# Clear Chromium crash flags and launch in kiosk mode
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' ~/.config/chromium/'Local State'
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/; s/"exit_type":"[^"]\+"/"exit_type":"Normal"/' ~/.config/chromium/Default/Preferences
chromium-browser --disable-infobars --noerrdialogs --incognito --kiosk 'https://YOUR-URL-HERE'

Replace https://YOUR-URL-HERE with the URL you want to display.

Step 5: Auto-Start on Boot

Configure X to start automatically when the Pi boots:

nano ~/.profile

Add this line at the end:

[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && startx -- -nocursor

Optional: Clean Boot Experience

For a cleaner boot sequence, edit /boot/config.txt:

sudo nano /boot/config.txt

Add these lines:

# Disable rainbow splash screen
disable_splash=1

# Rotate display (if needed for vertical orientation)
# display_rotate=3

Result

After a reboot, your Pi will boot directly into a fullscreen browser displaying your content. No login prompts, no desktop, no cursor—just clean digital signage running 24/7 on minimal hardware.