Raspberry Pi Digital Signage
We prepared a Raspberry Pi digital signage (Models 3, 4 and 5) image to speed up your Play Digital Signage setup. Raspberry PI devices that are connected to a TV with HDMI-CEC support (most modern TVs support it) can be configured to turn the TV off for the night to save power and prevent TV wear, see FAQ!
While both model 4 and 5 advertise support for 4k, the ability to play 4K video is limited to certain codecs and video players. We tested several video players and found VLC to have the best codec support for 4K, however even with VLC the support was very limited (mostly H265 less than 30 fps). However we found VLC not being stable player for repeated playbacks, issues occurred where the player starts, but the video is not visible and also VLC crashing the entire desktop session. Therefore we currently can not provide a smooth 4K playback on Raspberry PI and recommend running the devices in 1920×1080 resolution.
- Based on Rasperry PI OS 64bit.
- Configured firewall to block all incoming requests.
- Disabled screen saver.
- Configured mouse and taskbar to auto-hide
- Installed player software (If you only want player software, you can download the latest ARM64 AppImage).
- Installed cec-utils package for HDMI-CEC support
Raspberry PI 5 & 4 installation guide
- Download the image from here. (Based on Debian 12 – bookworm, imaged on 3. January 2024)
- Unpack the zip archive.
- Write the .img file to the SD card using etcher.
- Insert SD card to Raspberry and power on.
- NB! During the first boot the file system will be expanded, the device will reboot during that process.
- Connect to the Internet (top-right corner, toolbar will appear)
- Open Menu (top-left corner) -> Preferences -> Raspberry PI Configuration.
- System tab: default password is playsignage, we recommend changing it!
- Localization tab: set the correct locale and time zone.
- Launch the player application from the desktop.
Raspberry PI 3 installation guide
- Download the image from here.
- Unpack the zip archive.
- Write the .img file to the SD card using etcher.
- Insert the SD card and turn the device on.
- Once the device starts up, it will launch our Chrome player. Press “Exit” in the top right corner.
- Connect to the Internet.
- Set the correct time and time zone.
- The default user is “pi” and the password “raspberry“. Move the cursor to the top to show the top taskbar and launch the terminal. Change the default password by issuing the command “passwd”.
- We have released an update to the player software, so let’s update the extension:
- Launch Chromium and navigate to chrome://extensions (you can find the bookmark on the bookmarks tab as well).
- Press the button “Update extensions now”.
- If there’s an update, it will be downloaded and installed in the next few minutes.
- You don’t need to do this every time we publish an update, just it may take up to 8 hours for Chromium to update extensions automatically, we just sped up the process.
- Close chromium and launch the player app from the desktop shortcut.
In our tests, the device heats up quite fast, especially in an enclosure. When the device runs hot, it can damage the components and will cause performance to degrade. We recommend installing a heat sink on the chip, you can get one on eBay or a nearby electronics equipment store.
If you are not using the official power supply, make sure that the adapter is powerful enough:
- At least 2 amp for model 3 (ideally 2.5 amperes) devices
- At least 3 amp for model 4 devices
Raspberry is likely the most affordable option to run our players on open-source software (Linux also available). However, being a low-end device, it has certain drawbacks:
- Most slide transition effects lag, so we don’t recommend adding them.
- Element animations lag, however they are meant for more powerful players, to begin with.
- The SD card is prone to wear out, unlike devices with built-in storage, the SD card has limited write cycles it can perform. We recommend choosing a high-class (quality) SD card to minimize the issues down the road.
Options can be accessed directly by the player or in settings for your player.
- Launch player on startup - Toggle this ON to make sure our APP starts when your player starts up, for example after a power outage.
- Show top menu bar - Toggle this ON if you want the top bar to appear when moving the mouse or using the remote for your player. Toggle this OFF if you want a kiosk experience where users can't exit the app by clicking the exit button on the top menu bar. You can still access the menu with "Ctrl + o" command.
- Optimize for touchscreen - Toggle this ON if you are planning on using our APP on a touchscreen. This setting will make small adjustments to how our APP works in conjunction with a touchscreen.
- Analytics - Toggle this ON if you need analytic data from this particular player. Read more about Analytics
- Display Orientation - This option should only be used if your player operating system does not support changing the orientation as we recommend the adjustment on an operating system level instead.. You have the option of portrait (Clockwise) and portrait (Counter-clockwise).
- Website rendering engine - Our app comes with a pre-packaged Chromium engine and by default the websites are rendered using the prepackaged browser, however you can change this and use the system engine instead, then websites will be rendered using default browser that is configured as the webview engine in your Android device. The prepackaged browser works well for most users so there should not be a need to change it unless there are problems with specific website rendering.
- UserAgent - UserAgent is a piece of text that browsers use to identify itself to the web server. Certain websites will render a mobile view if they detect Android userAgent, altough the site is displayed on a big screen. With this option you can work around this issue and spoof a desktop computer's UserAgent. The UserAgent lets you pick Default, Mobile, Desktop, or Custom.
- Reload player every day at - It is good practice to clear the cache on the player once every 24 hours. Here you can set a time that is not inconvenient, for example at night when no one is watching your TVs. Rooted devices will be rebooted, unrooted devices will simply restart our app.
- Tags - If you are using tags they will be listed here. You also can find and add a tag.
- Clear cache - In case you need to clear the cache manually you can do that here. For example, if you are changing your content continually and you experience something not working as expected, clearing the cache should help as it removed any old data stored on the players' storage.
- Reload - Reloading your player is similar to clearing the cache. In addition, reloading will close and start the APP.
- Status - Status tells you if the APP is connected to the cloud. Green means you are connected and red means you are not connected. If you see a red status you should check the internet and wifi connection to your player.
- Device Time - The device time tells you the player's time and date. If the device time is wrong it will also be wrong in our APP and thus all time related scheduling will be off, so make sure to correct the time on the player operating system if you are having problems.
- Resolution - The resolution is the resolution according to your player's operating system. If the operating system on the players tells us its running HD, your content on the TVs will be optimised for HD. Please note that many devices that are advertised as 4K can only decode video in 4K but run apps in a lower resolution. This means you may see a lower resolution reported by our app, but any 4K video that you use will be still played as 4K. If you are seeing a lower resolution, you can install a 3rd party "resolution checker" app on the device to confirm the resolution from another app as well.
- Version - This is the version of our APP
- Screen ID - Also referred to as UID. The UID is the unique ID for your player.
- Disc Usage - Disc usage will tell you how much data have been used on the player's storage. We do not recommend more than max. 80% storage use.
- Android Settings - This is reserved for developers only
- Screen edges - In case you have a LED screen, video wall, or an older model TV you might have to adjust the edges so that they match your TV and the content.
- Browser - Here you can easily access the browser used by the APP to check content, connectivity, etc.
- Reset - If you need to unlink your player or perhaps link the player to another account you can use reset.
The resolution is incorrect.
Raspberry PI digital signage will try to automatically set resolution, however, sometimes it fails to detect the most optimal resolution. You can manually set resolution in Menu -> Preferences -> Display Settings.
If you can’t find desired resolution option there, you will find more display configuration options in Menu -> Preferences -> Raspberry PI Configuration -> Display -> Resolution.
This functionality sends a command over an HDMI cable to the TV telling it to go to standby and wake it up in the morning, Raspberry PI digital signage will remain on through the night.
NB! Raspberry PI 4 and 5 have two micro-HDMI ports, the HDMI-CEC commands are only sent over the first port (the port being next to the USB-C power). If you use the other port, the commands will not work!
If you downloaded our Raspberry PI image after April 2021, then all the required packages are included in the image and you can skip the first step of installing
sudo apt-get update && sudo apt-get install cec-utils(Ubuntu)
- Make sure that CEC is enabled in your TV. Different manufacturers have different names for the same functionality.
- Tizen: Menu -> System -> General -> Anynet+
- Philips: Home -> Settings -> TV Settings -> Easylink
- LG: Settings -> All Settings -> General -> SIMPLINK
- SONY: Options (On the remote) > Settings > Inputs > External inputs > BRAVIA Sync settings
- Other brands: Most modern TVs have this functionality, try to find how your TV’s manufacturer has named it and find it in the settings.
Now that the software is installed and CEC is enabled in the TV, you can test if the TV is detected. Run the following command in the terminal:
echo 'scan' | cec-client -s -d 1
The scan takes about 10 seconds and it outputs a list of devices. If you see your TV listed (usually under device #0), then the connection works! You will also see “Pulse Eight” device, don’t mind it, it’s a virtual interface.
The app crashes on startup
If you installed the operating system yourself and are trying to launch the downloaded .AppImage file, and it does not start up, it’s likely because some libraries are missing. First thing to get more info is to try and launch the .AppImage from the command line:
The terminal will output the error, often hinting at the problem.
bpf failure in syscall 0403 -> Try launching our app with additional parameter:
Why can’t I use 4K resolution?
There are some known hardware acceleration issues with video core drivers and HTML5 canvas support which we are built on. We’ve disabled the driver in favor of stability, however, it’s also possible to run Raspbian with the driver and disable hardware acceleration:
- Enable VideoCore driver in /boot/config.txt file, uncomment the following line
- Run PlaySignage application with disabled hardware acceleration:
Intranet website with self-signed SSL certificate is not showing?
By default as a security precaution, the application does not show websites with certificate errors. However if you need to show a website that does not have a valid SSL certificate, you can launch the app with a
--ignore-certificate-errors parameter, for an example:
How can I enable ssh?
We’ve disabled SSH access for obvious security reasons when distributing an image that has a default password. If you do want to enable ssh for remote maintenance, here’s how:
passwdcommand to change the password – the default password is ‘raspberry‘ and the whole world knows it
- Enable port 22 in the firewall:
sudo ufw allow ssh
- Enable SSH service:
sudo systemctl enable ssh
- Start the SSH service:
sudo systemctl start ssh
How do I access OPTIONS if I disabled the top menu bar?
In the APP options, you can hide the top menu bar if you for example are running a touch screen. To access the top menu bar, when hidden, you can use CTRL + O for options or CTRL + Q to close the APP.