# How to Set Up Digital Signage on Raspberry Pi | Digital Board

> Step-by-step guide to building a Raspberry Pi digital signage player with Digital Board. Covers hardware, Pi OS setup, pairing, and content.

Source: https://gonenli.pusula.cloud/guides/raspberry-pi-digital-signage

## 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 Digital Board. 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.

- **A proper power supply:** 5.1V 3A USB-C (15W) for a Pi 4, 27W USB-C for a Pi 5. The official Raspberry Pi supply is the safe choice. A phone charger or a TV's USB port usually is not; see [Troubleshooting](#power).

- **HDMI cable** to your TV or monitor (micro-HDMI on Pi 4/5).

- **Network connection** - Ethernet preferred for reliability, Wi-Fi works fine.

- **A Digital Board account.** [Sign up free](https://gonenli.pusula.cloud/app#/login) if you do not have one.

### Step 1: Install Raspberry Pi OS

Use [Raspberry Pi Imager](https://www.raspberrypi.com/software/) 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](#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 Digital Board 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 Digital Board 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 Digital Board 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 Digital Board
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 lite` or `--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](https://github.com/screentinker/screentinker/issues/487)).
Reports with your Pi model and OS version help.

### Step 3: Pair the Pi to your dashboard

Sign in to [your Digital Board dashboard](https://gonenli.pusula.cloud/app#/login) 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`.

#### Native player on Pi OS with a desktop: the desktop appears but the player never does

The player starts at desktop login, not as a service, so `screentinker-pi.service` is
meant to be inactive on a desktop Pi. Older packages needed Qt's Wayland support installed
separately: run `sudo apt install qt6-wayland`, then
`sudo screentinker-pi setup https://your-server --mode desktop` and reboot. To see why it
stops, open a terminal on the desktop and run `screentinker-pi run` (errors print in the terminal), or read
`~/.local/state/screentinker-pi/player.log`. Don't start the service on a desktop: the
desktop keeps the screen and the service can't draw on it.

#### The Pi reboots by itself, or forgets its Wi-Fi

Almost always the power supply. Under load (video, HDMI, Ethernet) a weak charger sags, the
Pi browns out and cold-boots, and a file being written at that moment can come back empty,
which is how a Pi loses its saved Wi-Fi network. Check with `vcgencmd get_throttled`:
anything other than `throttled=0x0` means it has been short of power since boot. A
lightning-bolt icon in a corner of the screen means the same thing. Use a 5.1V 3A supply (Pi 4)
or 27W (Pi 5) and a short, thick USB-C cable.

#### Schedules start at the wrong time

Check the Pi's time zone with `timedatectl`. Raspberry Pi OS defaults to
Europe/London, so a Pi set up without the Imager's locale settings runs on UK time. The
installer now turns on network time and detects the zone when it is still the default; to set
it yourself, re-run it with `--timezone America/Chicago` (any
[IANA zone](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)), or run
`sudo timedatectl set-timezone America/Chicago`.

#### No sound

The native player sends sound to every output at once (both HDMI ports and the headphone jack), so whichever one has
a speaker plays it. Older packages played no sound at all on Pi OS Lite; updating the player
(self-update from the dashboard, or installing the new package) fixes it. Also check the TV or monitor itself is not muted and its input is
set to the Pi's HDMI port.

#### 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.

### Related guides

- [Digital signage on a Samsung TV (no app, no MagicINFO)](https://gonenli.pusula.cloud/guides/samsung-tv-digital-signage.html)

- [Digital signage for Android TV and Fire TV](https://gonenli.pusula.cloud/guides/digital-signage-android-tv.html)

- [Self-hosted digital signage: complete guide](https://gonenli.pusula.cloud/guides/self-hosted-digital-signage.html)

- [Compare: Digital Board vs Yodeck](https://gonenli.pusula.cloud/compare/yodeck-alternative.html)

- [Compare: Digital Board vs ScreenCloud](https://gonenli.pusula.cloud/compare/screencloud-alternative.html)

### Ready to set up your Pi?

Start a 14-day Pro trial on hosted Digital Board: up to 15 screens, no credit card.

[Start your free trial](https://gonenli.pusula.cloud/app#/login)
[View on GitHub](https://github.com/screentinker/screentinker)
