How to set up a digital signboard
The digital sign in the front window area of the makerspace is a 40" commercial display driven by a Raspberry Pi Model 3 B+. The "signboard" is set to display the contents of a Google Slides presentation on a loop, and it refreshes that presentation to pick up new slides once per hour. Here is a breakdown of how we set it up.
Google Slides
The Google Slides component is fairly straightforward:
- Create a Google Slides presentation, and save it somewhere on the Bellingham Makerspace shared Google Drive.
- Once your presentation is ready, click File > Share > Publish to Web
- Select the options you want for the slideshow, such as how quickly to auto-advance slides and whether to repeat, and then click the Publish button:
- You will be presented with a link to the published presentation. Save this for later.
Ubuntu/Raspberry Pi
The process for this is largely adapted from this tutorial from the Mir Server project.
- Set up the SD Card for the Raspberry Pi using the Raspberry Pi Imager.
- Install the latest Ubuntu LTS release.
- Under advanced configuration settings, enable SSH and change the hostname, default user, and configure WiFi. The standard procedure at Bellingham Makerspace is to use the default Linux user listed in Bitwarden, a boring and descriptive hostname (such as signkiosk01), and configure the system to use wifi unless it is near an ethernet switch.
- Place the SD card in the Raspberry Pi, connect it to a display, and then connect it to power. Watch the display during the boot process in order to get its IP address; you will need this to complete setup.
- Once the system displays a login prompt, you can SSH into it using the user you created in step 1 and the IP address from step 2. Run
sudo apt dist-upgrade
to ensure that all system packages are up to date. - Install and configure the ubuntu-frame snap package using the commands below. If this works, you will be presented with a simple black and white gradient on your display.
-
sudo snap install core sudo snap install ubuntu-frame sudo snap set ubuntu-frame daemon=true
-
- Install and configure the web kiosk snap:
-
sudo snap install wpe-webkit-mir-kiosk sudo snap connect wpe-webkit-mir-kiosk:wayland sudo snap set wpe-webkit-mir-kiosk daemon=true
-
- Set up the web kiosk snap to display the Google Slides presentation link from earlier. If this works, you will be presented with the looping slideshow
-
sudo snap set wpe-webkit-mir-kiosk url=https://docs.google.com/presentation/d/e/aRbItRarY_sTrInG/pub?start=true&loop=true&delayms=5000 sudo snap start wpe-webkit-mir-kiosk
-
- (optional) If you would like the signboard to automatically pick up changes to the slide deck, you will need to configure a cron job for the root user.
sudo crontab -e -u root 0 * * * * snap restart wpe-webkit-mir-kiosk >/dev/null 2>&1
That's it!
Troubleshooting
If Ubuntu Frame will not start on the Raspberry Pi, you may need to change the display driver.