How to Set Up Digital Signage on a Raspberry Pi (2026)
A step-by-step guide to turning a Raspberry Pi into a free, open-source digital signage player using ScreenTinker. Works on Pi 3, Pi 4, and Pi 5.
What you will need
- Raspberry Pi 3, Pi 4, or Pi 5. Pi 4 (4GB+) is the sweet spot. Pi 3 works for static images and 1080p video. Pi 5 is overkill but futureproof.
- microSD card, 16 GB or larger. Class 10 or A1/A2 rated.
- Power supply appropriate for your model (Pi 4 uses USB-C 15W; Pi 5 uses USB-C 27W).
- HDMI cable to your TV or monitor (micro-HDMI on Pi 4/5).
- Network connection - Ethernet preferred for reliability, Wi-Fi works fine.
- A ScreenTinker account. Sign up free if you do not have one.
Step 1: Install Raspberry Pi OS
Use Raspberry Pi Imager to flash Raspberry Pi OS (64-bit) to your microSD card. Which edition depends on the player you want:
- Browser player (Chromium kiosk): the standard Desktop edition. This is the setup most people run today.
- Native player: Lite is enough, and recommended — no desktop to load. It needs Raspberry Pi OS based on Debian 13 (Trixie). See The native player below.
In the Imager's advanced options (gear icon), pre-set:
- Hostname (e.g.
signage-lobby) - Username and password
- Wi-Fi credentials (if not using Ethernet)
- Enable SSH (optional but useful for remote management)
Insert the SD card, plug in the Pi, and let it boot through first-time setup.
Step 2: Run the ScreenTinker installer
Open a terminal on the Pi and run:
curl -sL https://screentinker.com/scripts/raspberry-pi-setup.sh | sudo bash
The sudo is required — the installer writes systemd units, installs packages and
configures autostart. Without it the script stops on its first line and prints the correct
command, so nothing is half-installed.
That gives you All-in-One: the server and the player on the same Pi. To use the Pi as a player only, pointing at a ScreenTinker server you already run:
curl -sL https://screentinker.com/scripts/raspberry-pi-setup.sh | sudo bash -s -- --player-only https://your-server
The script will:
- Install Chromium (the kiosk browser used as the player)
- Set up an autostart entry so the player launches in fullscreen on boot
- Disable screen blanking and the screensaver
- Configure HDMI to keep the display awake
- Reboot the Pi when finished
On reboot the Pi will launch directly into the ScreenTinker player and show a 6-digit pairing code.
The native player (optional)
Besides the Chromium kiosk there is a native player: a small app that draws straight to the screen, with no browser and, on Lite, no desktop. It adds reboot, a remote terminal, screen power control and self-update from the dashboard. It connects to an existing ScreenTinker server (the installer's option 3, or):
curl -sL https://screentinker.com/scripts/raspberry-pi-setup.sh | sudo bash -s -- --native https://your-server
- Needs Raspberry Pi OS 64-bit based on Debian 13 (Trixie). Older releases are refused with a message.
- On Lite it runs as a system service (
screentinker-pi.service) that owns the display. Logs:journalctl -u screentinker-pi -f. - On Desktop it starts full screen when the desktop user logs in. Do not start the service by hand there — the desktop owns the screen. Logs:
~/.local/state/screentinker-pi/player.log. - The installer picks the mode from whether a desktop actually boots. Force it with
--native-mode liteor--native-mode desktop. - Switching from the browser player on the same Pi: run the installer with
--native. It removes the browser kiosk's launcher (an All-in-One server on the Pi keeps running). Then reboot.
The native player is newer than the browser player and has had less field time, especially on Lite. Known issue: a playlist can stop rotating on a website or HTML widget item (#487). Reports with your Pi model and OS version help.
Step 3: Pair the Pi to your dashboard
Sign in to your ScreenTinker dashboard and click + Add Display. Enter the 6-digit code shown on the Pi and give the display a name (e.g. "Lobby TV"). The Pi will switch from the pairing screen to "Waiting for content".
Step 4: Push content
From the dashboard:
- Open Content Library and upload an image, video, or paste a remote URL.
- Open Playlists, create a playlist, and add items.
- Publish the playlist.
- From the device's detail page, assign the playlist.
The Pi picks up the new playlist within a few seconds and starts playing.
Performance tips
- Use H.264 video. Pi GPUs accelerate H.264 in hardware. H.265/HEVC works on Pi 4/5 but uses more CPU.
- Match your resolution to the display. 1080p video on a 1080p screen avoids unnecessary scaling.
- Wired Ethernet is more reliable than Wi-Fi for video-heavy playlists. Wi-Fi is fine for image-heavy ones.
- For Pi 3, stick to images and short clips. Pi 3 can struggle with continuous 1080p video.
Troubleshooting
The Pi reboots into the desktop, not the player
Check that the autostart file ~/.config/autostart/screentinker.desktop exists. The installer creates this; if it's missing, re-run the installer.
Native player: no pairing code after reboot, or "Could not set DRM mode … Permission denied"
Something else owns the screen — usually the browser kiosk from an earlier install, or the
desktop. Re-run the installer with --native (it removes the old kiosk launcher), or on
Lite: sudo systemctl disable --now screentinker-kiosk.service getty@tty1.service then
sudo screentinker-pi setup https://your-server --mode lite. Check with
screentinker-pi status.
The screen goes dark after a few minutes
The installer should disable screen blanking, but some monitors sleep based on their own timer. Disable sleep mode on the monitor itself, or use a dummy HDMI plug if the Pi negotiates a low-power mode.
The Pi shows the pairing code but I can't see it on the dashboard
The pairing code is shown on the Pi screen, not the dashboard. Sign in, click Add Display, and type the code from the Pi.
Ready to set up your Pi?
Start a free ScreenTinker account in under a minute.
Start Free View on GitHub