Raspberry Pi Digital Signage — DISPLAY.STREAM

Display.Stream
5 min readSep 21, 2022

--

In this article, I will be showing you how you can set up your Raspberry Pi as a Kiosk Digital Sign using Display.Stream Digital Signage Player.

Display.Stream give its users a display for free to run looping presentations of images, videos, designs and more.

Please note to do this tutorial you will need to be running the full version of Raspbian as this relies on the GUI that comes with it to properly operate.

Before we get started with this tutorial, we will be first removing some packages that we don’t need for our Raspberry Pi.

Removing these packages will free up some much-needed memory and reduce the number of packages that will be updated every time you update your Raspberry Pi. To do this just run the following three commands on your Raspberry Pi. We have split these into three different commands to make them easier to copy and write out.

sudo apt purge wolfram-engine scratch scratch2 nuscratch sonic-pi idle3 -y
sudo apt purge smartsim java-common minecraft-pi libreoffice* -y

Now that we have removed these numerous packages from our Raspberry Pi Kiosk we will need to run some cleanup commands. To remove any unnecessary lingering packages and to clean out the local repository of retrieved packages run the following two commands on your Raspberry Pi.

sudo apt clean && sudo apt autoremove -y

Now that we have removed the bulk of the unnecessary applications, we must now make sure that our installation of Raspbian is up to date. Also, make sure you have SSH enabled as it is very handy if you need to edit any files later on. We can use the following two commands within the terminal on our Raspberry Pi to update all the packages to their latest versions.

sudo apt update && sudo apt upgrade

Now, it’s time to jump on our auto-start script. This script will handle launching Display.Stream Digital Signage Player on startup.

Save the script lines below in a display.stream.sh file

You can also download the script from our github repo https://github.com/displaystream/raspberry-player/blob/main/display.stream.sh

#!/bin/bashxset s noblankxset s offxset -dpmsunclutter -idle 0.5 -root &sed -i ‘s/”exited_cleanly”:false/”exited_cleanly”:true/’ /home/$USER/.config/chromium/Default/Preferencessed -i ‘s/”exit_type”:”Crashed”/”exit_type”:”Normal”/’ /home/$USER/.config/chromium/Default/Preferences/usr/bin/chromium-browser --kiosk --disable-infobars --noerrdialogs --app https://app.display.stream &

Let’s make our display.stream.sh script executable

chmod u+x ~/display.stream.sh

Before we get started we need to first utilize the following command to work out what the current display value is.

This value is used for the operating system to know what screen to display the Chromium kiosk to, without it the kiosk will either fail to load or load up on the incorrect screen.

Run the following command to echo out the value of the “$DISPLAY” system variable. Make sure you remember this value as you may need it in the startup script.

echo $DISPLAY

To get our Raspberry Pi to start at boot we will need to go ahead and create a service file by running the command below.

This service file will tell the operating system what file we want to be executed as well as that we want the GUI to be available before starting up the software.

sudo nano /lib/systemd/system/display.stream.service

Edit the display.stream.service file, enter the following lines of text. These lines are what will define our service kiosk service, and that we want to run our kiosk.sh script when the system loads into the operating system.

While entering these lines you may have to modify the “Environment=DISPLAY=:” line, replacing the “0” with the value that you retrieved from the command you used in step 1 of this section.

Additionally, you will need to make sure you replace “pi” with the name of your user. For example, with the username “john“, the path “/home/pi/display.stream.sh” would become “/home/john/display.stream.sh“.

[Unit]Description=Display.StreamWants=graphical.targetAfter=graphical.target[Service]Environment=DISPLAY=:0.0 Environment=XAUTHORITY=/home/pi/.XauthorityType=simpleExecStart=/bin/bash/home/pi/display.stream.shRestart=on-abortUser=piGroup=pi[Install]WantedBy=graphical.target

Now that we have created the service file for our Raspberry Pi we can go ahead and now enable it by running the following command. By enabling the service, we will allow our Digital Sign to start up at boot automatically and will enable the systemd to service manager to monitor it.

sudo systemctl enable display.stream.service

With the auto-start service now enabled you can either choose to restart the Raspberry Pi or start the service now by running the following command.

sudo systemctl start display.stream.service

If you ever want to check the status of your Raspberry Pi auto-start service, you can run the command below. This command will return various information about the service, including previously returned lines from the software which can help you debug what’s going wrong when the service is failed.

sudo systemctl status display.stream.service

If this command shows the status as “Active: active (running)” then everything is now working as it should be, and your Raspberry Pi Digital Sign should be up and operating correctly.

Now with everything up and running correctly, if there is for any reason you want to stop the service from running, you can utilize the following command.

sudo systemctl stop display.stream.service

By stopping the display.stream service, the service manager will kill off all processes associated with it. This command will stop our display.stream.sh script from running while also terminating the open Chromium browser.

Finally, if you ever want to disable your Kiosk, you can utilize the following command.

sudo systemctl disable display.stream.service

This command will stop the display.stream service from running on boot until you re-enable it.

Now, let’s activate our sign to run some content on it

Press “Get a new code”

Head to https://activate.display.stream to activate your digital sign.

We will not cover the activation and content process in this article. Please follow the steps provided in the activation process.

Raspberry Pi is a powerful tool and it’s a very good fit for digital signage. I would recommend it over other alternatives such as Android and FireOS / FireTV.

--

--