You are here

Digital Kiosk and Signage with Stretch

Since 2010, I've been supporting an inexpensive digital signage solution (with help from others). I've built four different versions of the system now with minor improvements along the way. The first using Macintosh computers. The rest have used Raspberry Pis: first "wheezy" Raspbian, then "jessie", and now "stretch".

I actually started working with stretch at first to set up a kiosk for the advising office. I thought about starting with our existing image for digital signage, but the new hardware wouldn't boot from jessie. So I switched to stretch. And since I was starting over, I spent some time looking at new recipes.

I was really pleased with this recipe with began with a minimal image and then just added what was needed to run a web-browser. I ended up modifying the command-line flags to chromium, since the browser requires some hands-on configuration every morning to use the advising software.

Advising Kiosk

In the end, we have a cute little display with the pi attached to the back of the monitor with a VESA mount. Note the card reader: students should just be able to swipe to log in, although the card reader isn't quite as reliable as one could hope for.

Raspberry Pi in C4Labs Zebra case with VESA mount

Once I'd built the kiosk, I decided to build a new digital signage image based on "stretch" while I was still familiar with everything. It took me a few hours to migrate over the firewall script we use, and the script for configuring and starting the sign. I also built out something I had planned for but never finished: the signs look up their configuration using a CSV file and early on I included a field that has the time they should switch from day-time to night-time behavior (when they could either show a different URL or turn off the display). Previously, I just had a cron job that ran at 6pm. I took an hour to modify the script to use "at" to schedule the job at the time specified in the file.

I also switched back from Firefox to Chrome. We started with Firefox, then switched to Chrome when Firefox wasn't available on Pis. We switched back to Firefox when we couldn't replicate the behavior of the TryAgain extension (which would let Firefox continue trying to reload pages that had failed for some reason). But the TryAgain extension hasn't been maintained and doesn't work with newer versions of Firefox. But I found a simpler copy of the extension and was able to modify it to work in Chrome.

I've been pleased with this project since we started it which allows us to focus on providing the features people need with a simple, open system. It's been fun and easy and almost perfectly stable.