Raspberry Pi as Slideshow / Digital Signage Server

Because of its lean and fan less design the Raspberry Pi is a perfect piece of hardware to create a simple slideshow system or so called Digital Signage Server (DSS). Perfect to drive a LCD somewhere to teaser the latest offers or new products.

Introduction

It doesn’t matter what kind of Raspberry Pi we use It works with all versions quite well. First we need to install Raspbian on the Pi. We can use a Raspbian Image or the NOOB SD-Card the choice is yours. Images can be found at https://www.raspberrypi.org/downloads/

After the Pi is connected to a screen, keyboard and mouse we insert the SD-Card and power it up.

Installation

The installer wants to know if we want to use the GUI or the console. We keep booting into the console. All other questions can be answered with the default answers. We set the network settings to fit our network.

Right after the first reboot we login with our Pi User and use the raspi-config tool to activate the ssh daemon.

There are some packages we need to install manually.

Deactivate energy saving mode

In the default setting, the screen is turned of after a couple of minutes. To always display our slide show we have to turn this feature off. To do that we insert the following settings right after the second line of /etc/X11/xinit/xinitrx.

New user

We create a new user to be used as the slide show user. With this account we’ll also upload the images to be displayed. This user will be automatically logged in after the Pi is started. For now we call it newuser.

We write down the password. A public key setup may be used as well of course.

Autologin

To enable autologin after each reboot we’ll edit /etc/inittab and lookup the following line.

We change that to:

Next we’ll make another change to /etc/rc.local and add right before exit 0 a new line:

Now XServer is started with our new user.

With the next reboot the GUI should be started with user newuser.

The feh slide show script

In the newusers home directory we create the following script:

The script supports four parameters: start, stop, restart and cron. Start and Stop we can use right now. If there are some pictures in Desktop/Pictures and we call the script with start the slide show should start right away. If needed we can change the delay right in the script.

The Script should be put into the cron table with parameter cron. This way it’ll check if there are new or changed images and if necessary restart the slide show.

To start the slide show right away we create a small autostart file for our window manager LXDE.

After the next reboot the slide show should start right away. The following cron entry will check for new files. We use crontab -e to edit the file.

This is about it.

 

15 thoughts on “Raspberry Pi as Slideshow / Digital Signage Server

    • Hallo!
      Das freut mich zu hören.

      Bezüglich NAS: Du kannst den smbclient auf dem Raspberry installieren und mit etwas wie “sudo mount -t cifs -o user=changeme,password=changeme //192.168.1x.x/sharedfolder /home/username/sambashare/” einen Ordner mounten. Dafür gibts aber auch Tutorials.

      Wegen Zufall: Versuche bitte mal bei feh -z oder –randomize in die Parameter mit auf zu nehmen. Das müsste Zeile 13 im Startscript sein.

  1. Hallo nochmal Christian,

    also zufällige Wiedergabe funktioniert so wie Sie beschrieben haben, Zeile 13 wie folgt beschreiben:

    feh –quiet -Z -F -Y –randomize –slideshow-delay 12 $FOLDER &

    Danke für den Tipp mit dem NAS, ich habe es zwar noch nicht ausprobiert aber es klappt bestimmt auch.

    Ich habe tatsächlich 32.164 Bilder mit der Auflösung 1024×768 auf einem USB-Stick gespeichert (Format FAT32, ergibt ca. 4,5 GB) und nutze diese für den Slideshow. Es funktioniert sogar auch mit so vielen Bildern! Es lädt ungefähr 10 Minuten bis der Slideshow startet (RPI B+) aber sobald es läuft, läuft es flüssig.

    LG
    Russell

    • ein kleines Update: es funktioniert auch mit einem NAS. Ein Ordner vom NAS wird, wie Christian oben beschrieben hat, montiert. Fehs greift dann auf diese Bilder zu. Ich habe z.B. Dropbox mit meinem NAS gekoppelt und habe somit immer die neusten Bilder vom Handy& co. im Slideshow drin.

  2. Hallo Christian

    in deinem Script ~/slideshow.sh sind mir zwei Dinge aufgefallen

    1. in deinem Script definierst du in der dritten Zeile TEMPF=”/tmp/slideshow”;. Später im Listing verwendest du aber in Zeile 34,36, und 50 den direkten Pfad.
    2. in Zeile 39 hast du zwischen then und else nur einen Kommentar stehen, der eine Fehlermedung über ein unerwartetes else verursacht.

    LG

    Jens

  3. hallo Chriastian

    ich habe mal dein Skript ausprobiert, leider gescheite ich ab dem Punkt mit initab
    “/etc/inittab”
    Ich habe Raspbian version 6 benutzt und die Datei Iniitab gibt es leider nicht. Könntest Du mir da behilflich sein. Ich bin leider blütiger Anfänger
    Danke für deine Hilfe

    • Sorry wegen der späten Antwort. Tatsächlich gibt es in den neuen Raspbians keine inittab mehr da hier systemd als Startdienst zum Einsatz kommt.

      Lösung 1:
      Du könntest einmal nachschauen ob es bei dir in der GUI unter Menu>Preferences>Raspberry Pi Configuration bei System Optionen gibt wie Boot: To Desktop bzw Auto Login:

      Beschreibung: Englische Anleitung – Auto Login für Rapsbian Jessie

      Lösung 2:


      sudo -i
      mkdir -pv /etc/systemd/system/getty@tty1.service.d
      nano /etc/systemd/system/getty@tty1.service.d/autologin.conf

      Dann folgenden Text einfügen:


      [Service]
      ExecStart=-/sbin/agetty --autologin $username --noclear I 38400 linux

      Habs aber nicht getestet bis jetzt.

      LG,
      Christian

  4. Hallo zusammen.
    Ein tolles Script und tausend Dank somit habe ich eine tolle Show zum laufen bekommen.

    Aber eine Frage habe ich noch, gibt es irgendeine Möglichkeit Überblendungen einzubauen?
    Ich hab gesucht wie blöd, aber es scheint nichts zu geben was aus der Kommandozeile eine Show
    mit Überblendungen abspielt.

    MfG

    Thomas

    • Hallo Thomas,

      freut mich das ich helfen konnte. So ganz glücklich bin ich mit feh als Slideshow Tool auch nicht. Die fehlende Videounterstützung und keine Überblendungen sind echt schade.

      Aktuell schwebt mir eine Browser Lösung vor, bei der per JavaScript die Bilder geladen werden und damit auch Effekte und Videos möglich werden. Ich vermute aber dass die Stabilität darunter leiden würde. Auch könnten kleine Raspberry Pis für Videos per Browser zu langsam sein.

      Gruß,
      Christian

Leave a Reply to Jens Krimphoff Cancel reply