• ing.marcoburatto@gmail.com

Yearly Archive December 30, 2021

Raspberry Digital Signage 17.0 released

Raspberry Digital Signage 17.0 released

Raspberry Digital Signage is an operating system designed for digital signage installations on the Raspberry Pi: it displays a full-screen browser view restricted to a specified resource. It shows web resources from Internet, local network or local folders (so you can use the Pi itself as the source webserver).

Raspberry Digital Signage comes with the latest Chromium builds (featuring HTML5 capabilities), so you can display more attractive resources, more easily.

Changelog for v.17.0 follows:

  • Chromium settings persistence logic changed: browser is kept back to default settings or last-persisted settings only when user asks for and not upon every reboot (maybe a more balanced behavior in regard to security vs. user experience);
  • settable DPI feature returns to work (the feature has been removed in the latest builds for some issues of the underlying OS);
  • a new, better, virtual keyboard extension has been installed by default (just remove it if unneeded);
  • lowercase URLs issue fixed;
  • system has been updated to the latest Raspberry Pi OS Lite – this contains important security fixes. Chromium 92 and rpi-chromium-mods 20210212 packages are amongst the others.

In memory of my father Giovanni.

 

Download here.

Raspberry Digital Signage FAQ

RASPBERRY DIGITAL SIGNAGE

About | Download | Donation | Docs | FAQ | Changelog | Plugins | Signage Orchestrator

UPDATE THE UDERLYING RASPBERRY PI OS OPERATING SYSTEM

In order to udpate the Raspberry Pi OS (formerly Raspian), login via SSH as root, then:

apt update
apt upgrade

Please note that it may happen that a system update brakes the digital signage stack.

 

WTF IS THAT LIGHTING BOLT NEAR THE TOP-RIGHT CORNER?

If a lighting bolt is displayed near the top-right corner of the screen, your Raspberry Pi is complaining about the power supply, which probably is not powerful enough.

 

HOW TO EXPAND THE FILESYSTEM SPACE [see for AW SNAP CHROME ERROR]

How can I expand the Raspberry Digital Signage filesystem space in order to fill the whole SD card/USB key space?

This also can prevent the Aw Snap error on Chrome in the cases where system logs become too big.

Just install and use raspi-config:

login as rds-user via SSH, then sudo -i;
apt update
apt install raspi-config
raspi-config

follow the easy instructions.

 

MODIFY THE SPLASH SCREEN

For this, please have a look at Raspbian Plymouth.

 

CHANGE THE SYSTEM HOSTNAME

Default hostname for the operating system is rds.
You can change it by modifying the /etc/hostname and /etc/hosts files.

cd /rds/home/rds-user/
tar -xf chromium-default-settings.tar
rm chromium/Singleton*
tar -cf chromium-default-settings.tar chromium/
rm -R chromium
chown rds-user:rds-user chromium-default-settings.tar

 
Thanks to Stepan Kocourek.

 

CHANGE TIME ZONE

login as rds-user via SSH, then sudo -i;
dpkg-reconfigure tzdata

 

PLAY CONTENT FROM THE INTERNAL SD CARD/USB key: DIY SITE INSTALLATION

Raspberry Digital Signage admin interface allows you to type in the URL of the web resource to be displayed; it can be an Internet one (https://www.binaryemotions.com), a LAN URL (http://192.168.1.100/booking; http://booking.lan), or even a resource located internally, inside the Raspberry Pi’s filesystem.

To simplify the management of the internal site setup, the WordPress plugin adds a WordPress installation to the system (/rds/var/www/wordpress) – see the plugins page for more.

If you however want to add your own site (and/or don’t use the WordPress installation), just copy your website files with scp to /rds/var/www/mySite (create the folder, first), then change the ownership:

chown -R rds-www:rds-www /rds/var/www/mySite

 
and set the URL: http://127.0.0.1/mySite in the admin interface.

Also, you need to allow your www folder to be reached without authentication: add the following to /etc/apache2/sites-enabled/rds.conf:

SetEnvIf Request_URI ^/mySite.* noauth=1

 
and restart apache:

systemctl restart apache2

This way you can natively serve plain HTML and PHP files.

Disable network check
Upon boot, the system checks for the availability of the network, in order to display the proper admin interface if no network is available. However, with an internal site installation, the network check could be undesired: in case, modify /rds/home/rds-user/.rds-xinitrc as:

connectionCheck() {
return 0
}

Note: how to use scp

1. [on the Pi’s shell] Enable the SSH login via root directly: change the password for the root user while SSH’d in as rds-user (sudo passwd root), then modify /etc/ssh/sshd_config with PermitRootLogin yes (sudo mc -e /etc/ssh/sshd_config). Finally restart ssh (sudo systemctl restart ssh).

2. [on your host system] Copy your files: scp /path/to/my/local/files/* root@RASPBERRY_IP:/path/to/destination/

While for *nix users this is trivial, for Windows users this step could be a pain, without the right tools: use mobaxterm or similar.

 

FALLBACK RESOURCE IN THE CASE OF NO-NETWORK

In the case where Raspberry Digital Signage is loading content from the network and the network goes down, in which way can I display a fallback resource in the meanwhile network goes up again?

Usually web pages built for signaging contain a Javascript code which continues checking for network availablity (once loaded). In the case the network goes down, the Javascript code should redirect the internal browser to a locally hosted resource (/rds/var/www). The local resource will do the same job, inverted.

if(navigator.onLine) { // true|false
// …
}

 
Also, have a look at this page.

 

HOW TO INSTALL A SCREENSAVER

Install xscreensaver with apt as root, configure it and launch it from /rds/home/rds-user/.rds-xinitrc, before the main cycle.

 

SYSTEM SCREEN ROTATION

You can set the screen orientation via Raspberry Digital Signage GUI, and this is fine. However, the system boot process runs always in “landscape mode”.
To obtain a “full system rotation”, modify the /boot/cmdline.txt file and add the following directives for 90 rotation at the end of the line:

video=HDMI-A-0:1920x1080M@60,rotate=90 video=HDMI-A-1:1920x1080M@60,rotate=90

So, complete kernel parameters line would be something like:
console=serial0,115200 console=tty1 root=PARTUUID=ae1f6d64-02 rootfstype=ext4 fsck.repair=yes rootwait splash quiet plymouth.ignore-serial-consoles logo.nologo vt.global_cursor_default=0 video=HDMI-A-0:1920x1080M@60,rotate=90 video=HDMI-A-1:1920x1080M@60,rotate=90

Change resolution and rotation according to your needs. Resolution should be the same you see/set in the Raspberry Digital Signage GUI and it must be always specified… and so the rotation 😉

Modify the file via SSH or mount the SD-CARD into a running operating system and modify the file with a text editor.

 

IS A DUAL OUTPUT POSSIBLE (HDMI0 AND HDMI1)?

No 🙂

Raspberry Digital Signage 16.0 released

Raspberry Digital Signage 16.0 released

Raspberry Digital Signage is an operating system designed for digital signage installations on the Raspberry Pi: it displays a full-screen browser view restricted to a specified resource. It shows web resources from Internet, local network or local folders (so you can use the Pi itself as the source webserver).

Raspberry Digital Signage comes with the latest Chromium builds (featuring HTML5 capabilities), so you can display more attractive resources, more easily.

Changelog for v.16.0 follows:

  • REST JSON API finally added. The REST API is the foundation upon which to build a central interface (or orchestration scripts as well) to command all your displays;
  • compatibility mode added. Kiosk URL is usually loaded within an iframe in order to take advantage of the refresh and scheduling [to be done] features. However, some resources refuse to run within browser iframes (even setting the browser to ignore the X-Frame-Options HTTP response header).
    In this case, with the Compatibility mode resource will be loaded as a ‘normal’ page, but of course the aforementioned features won’t work.

 

Enjoy! 🙂

Raspberry Digital Signage 15.0 released

Raspberry Digital Signage 15.0 released

Raspberry Digital Signage is an operating system designed for digital signage installations on the Raspberry Pi: it displays a full-screen browser view restricted to a specified resource. It shows web resources from Internet, local network or local folders (so you can use the Pi itself as the source webserver).

Raspberry Digital Signage comes with the latest Chromium builds (featuring HTML5 capabilities), so you can display more attractive resources, more easily.

Changelog for v.15.0 follows:

  • frontend rewritten and improved (legacy technologies for speed, modern best practices);
  • the browser now loads the digital signage URL dynamically as the configuration file changes – and not upon start only; this is the base for managing many Pis from a central interface, which is a (future) use case many users ask for;
  • Chromium now makes full use of the GPU – HTML5 videos and modern CSS effects play a lot better (thanks to Ciprian Rusu’s and Diego Vega’s feedbacks);
  • Wi-Fi 802.11 networking fixed (networks’ display);
  • system has been updated to the latest Raspberry Pi OS Lite (formerly known as Raspbian Lite), with Chromium 88.

 

Enjoy! 🙂

Privacy policy

PRIVACY POLICY

This site makes use of Google cookies for Analytics (see https://policies.google.com/technologies/cookies for Google’s cookie policy) and Heatmap’s cookies for monitoring purposes (see https://heatmap.me/privacy for hitmap.me’s cookie policy).

Persistent cookies are stored on the user’s device until a specific time (which can be minutes, days, or years in the future) or until deleted manually through web browser settings or specialized computer software.

 

Binary Emotions makes use of PayPal as payment gateway for financial transactions/donations (https://www.paypal.com/it/webapps/mpp/ua/privacy-full).

 

We don’t collect any personal data of yours nor send to third parties.

Raspberry Slideshow changelog

RASPBERRY SLIDESHOW

About | Download and use | Donation | Changelog | Signage Orchestrator

Version 20.0

  • the underlying base system has been updated to the latest Raspberry Pi OS Lite, v.12, Bookworm.

 

Version 19.0

  • Raspberry Pi 5 compatible: the underlying base system has been updated to the latest Raspberry Pi OS Lite, v.12, Bookworm;
  • OMX Player has been replaced by mpv.

 

Version 18.0

  • WebDav functionality: sliding media from an ownCloud/NextCloud folder added;
  • Instagram posts’ media slide [with strict Instagram limitations];
  • background music (useful for images-only playback);
  • code refactored and a couple of minor bugs fixed;
  • site documentation revised.

 

Version 17.0

  • Google Drive functionality added: fetching and sliding media from your Google Drive account’s folder is now possible, pairing the older Dropbox feature.

 

Version 16.0

  • the underlying base system has been updated to the latest Raspberry Pi OS Lite, v.11, Bullseye with a backported OMX Player.

 

Version 15.1, maintenance release

  • system has been updated to the latest Raspberry Pi OS Buster Lite (formerly known as Raspbian Lite).

 

Version 15.0, maintenance release

  • Dropbox feature restored (it was broken since Dropbox changed their API – again);
  • system has been updated to the latest Raspberry Pi OS Lite (formerly known as Raspbian Lite).

 

Version 14.0

  • Refresh of the remote media list rewritten, now performed asynchronously by a pool of “watchdog workers”. This drastically reduces the blank between loops when the refresh feature is enabled;
  • Dropbox feature restored (it was broken since Dropbox changed their API);
  • Informational output on some TVs when playing videos should be now removed, thanks to Sean Monaghen;
  • system has been updated to the latest Raspberry Pi OS Lite (formerly known as Raspbian Lite).

 

Version 13.1

  • the underlying operating system has been updated. This solves an issue with the kernel on the Pi4, causing some fbi issues (many thanks to Torsten Walther);
  • splash screen.

 

Version 13.0

  • media.conf now replaces all the .txt files for configuring the system behaviour. It’s a breaking change;
  • upon timeout reached, only remote changed sources’ media are fetched again (previously, all media of all remote sources were downloaded);
  • Web/P images added to whitelisted images’ file formats;
  • better logging and prittier debugging output;
  • refetching hashes improved and better handling of connection issues (Dropbox improved);
  • USB device is unmounted as soon as media have been copied to the internal SD card for a safer USB key removal, idea thanks to Francois Audirac;
  • default MEDIA_FOLDER moved to /var/lib/rs;
  • the underlying operating system has been updated.

 

Version 12.0

  • the underlying operating system has been updated to Raspbian Buster, which assures the compatibility with the new Raspberry Pi 4 and all the older boards;
  • sliding Dropbox-fetched media feature has been added: you can now play images and videos directly from your Dropbox account!;
  • username and password can now be set directly in the network-share.txt file for the Windows share feature (previously a trivial modification of the source files was needed);
  • debug information is now much more verbose, easing issues discovery;
  • improved overall playback fluidity;
  • some bugs have been fixed, the most tedious one was that at every refresh timeout (serverlist-refresh.txt) all the media were downloaded, regardless if an upstream file had been modified or not;
  • Raspberry Slideshow code is now a proper Debian .deb package and not just a collection of source code files hand-copied across the system.

 

Version 11.0

  • the underlying operating system has been updated to the latest Raspbian Stretch build, which assures the new Raspberry Pi 3b+ compatibility (raspberrypi-bootloader);
  • SMB v2 is now used by default for the Windows (Samba) share functionality;
  • serverlist-related media fetching does not fire in case of download error.

 

Version 10.0

  • the underlying operating system has been moved to Raspbian Stretch; the overall performance is sensibly better;
  • a Systemd unit file now replaces the older SysV init-script for launching the slideshow;
  • smoother transitions between images and videos;
  • some minor improvements on code.

 

Version 9.0

  • underlying Raspbian Jessie operating system updated (I tried to switch to Raspbian Stretch, but it’s still full of bugs); kernel and bootloader packages have been updated as well;
  • omxplayer is now taken from Stretch (APT pinning);
  • the way the operating system mounts the inserted USB keys has been changed: usbmount has been removed (because it is now deprecated for the now-stable Debian Stretch) and now Raspberry Slideshow itself is responsible for the mount;
  • improvement: all txt config files (as network-share.txt & co) are now pre-processed in order to “clean” non-unix line terminators in one passage (dos2unix);
  • if Raspberry Slideshow finds out a .txt.txt filename exists, which of course is an error, it renames the file as .txt;
  • debug information is now also stored into a file (/var/log/rs.log);
  • bugfix: EXIF rotate did not work for Samba files;
  • some minor improvements on code.

 

Version 8.0

  • underlying operating system updated; fbi program now taken from Stretch (APT pinning);
  • Raspberry Pi Zero W compatibility;
  • Oops: Terminated output supressed when quitting fbi;
  • some minor improvements on code.

 

Version 7.0

  • media retrieval from local network folder shares (Windows shares/Samba, for example: //192.168.0.100/myShare;
  • cleaner playback;
  • faster boot;
  • some bugs fixed (images playback).

 

Version 6.0

  • removed linux-wlan-ng package, which interferes with the Raspberry 3 built-in 80211 module. Reinstall in case you use a Raspberry Pi 2;
  • no black screen after all images playback while possible (i.e. when no video and no server content refresh is set). Of course images to videos transition and reloading remote resources need a very quick blank;
  • optional photos rotation based on their EXIF informations (enable in /etc/rs.conf).

 

Version 5.0

It’s a complete new operating system which combines and enhances Raspberry Picture Frame Slideshow 4.0 and Raspberry Video 1.0, now both defunct.

  • Raspberry Pi 3 compatibility;
  • image and video playback;
  • images: no more a web-based slider, but a native Linux image slider directly using the framebuffer (speed, stability).

Raspberry Slideshow donation

RASPBERRY SLIDESHOW

About | Download and use | Donation | Changelog | Signage Orchestrator

If you like this project please donate.

As a donor, you will have full access to the unrestricted versions of: Raspberry Digital Signage (web-based digital signaging) and Raspberry Slideshow (image/video slideshow-based digital signage), which can be deployed on how many devices you wish (no serials’ checks or similar sh*t)!

Full Slideshow features:

  • SSH remote management;
  • no screen blanking active on system (unlimited and uninterrupted playback time).

 

Donation page:

Thanks to your support, Binary Emotions’ operating systems are growing year after year since 2012!

Instant WebKiosk was the first Binary Emotions’ project, a live i386 operating system created just for fun. With time, many users asked for a Raspberry Pi port; since that port came to life, user base has grown to some impressive numbers 😀

Download Raspberry Slideshow // documentation

RASPBERRY SLIDESHOW

About | Download and use | Donation | Changelog | Signage Orchestrator

rs-20.0-release.zip md5: 4f644c9fe5ddb13902cf09e4700d75d9

Detailed write instructions are available here (long story short: you can write Raspberry Slideshow with Balena Etcher to a micro-SD card of 8GB minimum – exactly as any other operating system for the Pi). Do not write to a USB key even if you own a Pi 4+.

Compatible with all Pis with an Ethernet port. Raspberry Slideshow 19+ builds are Raspberry Pi 5 compatible.

Some default images and videos (taken from the Web and YouTube) are included within the system for a quick functioning example: plug in the Ethernet cable (DHCP) for a full experience.

This “release” build of Raspberry Slideshow is limited is some functionality: please have a look at the donation page for the full access to the unrestricted versions of all of Binary Emotions’ operating systems.

For web-based signage, please have a look at Raspberry Digital Signage instead.

 

SETUP: HOW TO USE
Documentation always refers to the latest operating system version.

 

1. Local media
Put image and/or video files into a USB stick with one only partition (or use its first partition), vFAT/NTFS or ext4 formatted. Files must be put in the root folder (not inside directories).
Plug the USB stick into the Raspberry Pi running Raspberry Slideshow and (re)boot.
That’s all – it’s that easy.

 

A configuration file, media.conf, can be saved in the USB key, configuring all the system functioning modes explained in the rest of this documentation.
A sample of the file is exemplified below and can be downloaded here.
You can combine any of the media.conf directives with each others and also save media into the USB key directly.

# STATIC CONTENT:

url: https://www.binaryemotions.com/rs-default-media/verona.san-zeno.jpg
url: https://www.binaryemotions.com/rs-default-media/verona.arena.jpg

# REFRESHABLE CONTENT:

# Server-managed inventory.
serverlist: https://www.binaryemotions.com/rs-default-media/images.txt

# Samba share.
smb.share: //192.168.0.210/share/test
smb.username: admin
smb.password: test

# Dropbox.
dropbox: enable

# Google Drive.
gdrive: enable
gdrive.folder: FOLDER_NAME_WHERE_TO_SLIDE_MEDIA_FROM

# ownCloud / NextCloud
webdav.url: http://192.168.0.210/owncloud/remote.php/webdav
webdav.folder: folder
webdav.username: user
webdav.password: password

# Instagram profile media.
instagram.profile: profile
instagram.username: username
instagram.password: password

# Background music.
# Plays background-music.mp3 file, if exists in folder.
background-music: enable

# Remote media refresh.
# Values yes|no.
# If you 1) use only images and 2) do not use remote media or do not need remote media list to be re-read during the playback, please set this to no: images playback will be continuous without the blanks needed to check remote changements.
media.refresh: no

 

2. Fetch remote media

3. Link to a remote inventory

4. Fetch media from a Windows (Samba) share

5. Fetch media from your Dropbox account

6. Fetch media from your Google Drive account

7. Fetch media from a WebDav source: ownCloud/NectCloud

8. Fetch media from an Instagram profile (with limitations)

 

The refresh feature (use with 3., 4., 5., 6. and 7.)
Raspberry Slideshow can refresh the media list (inventory linked media, network share and Dropbox/Google Drive/WebDav content) in order to slide images and videos according to any server change.

You can accomplish this by enabling the refresh directive in the media.conf file, like:

# Remote media refresh.
media.refresh: yes

System is smart enough to actually re-download remote media only when it detects changes: addition or deletion/renaming of a file.
In order to avoid frequent full re-downloads, while adding/deleting files and updating their names is always detected as a change, a simple change in the file content cannot be seen – yes, it’s a “broken by design” limitation.

Please note. If you (1) use only images and (2) don’t use remote media or don’t need remote media list to be re-read during the playback, please set media.refresh to no: images playback will be continuous without any blank.

 

Automatic photos rotation
An optional photos rotation based on their EXIF informations is available; enable in /etc/rs.conf via SSH as root (see below). This will increase the boot time.

 

Using SSH (donors’ build only)

You can perform an SSH login with the following clients:

  • *nix users will make use of the native ssh client – open the terminal emulator and type:
    ssh pi@RASPBERRY_IP.
  • Windows users will use Putty, MobaXTerm, any cygwin-derived program or the Linux Subsystem for Windows (preferred; in this case the syntax is identical as the *nix users’).

Use the following default credentails:
user: pi
password: live
then, once in, type: sudo -i for administrative rights (root)

If you need to modify a file, you can now use mc -e /path/to/file or nano /path/to/file.

Please change the default SSH password for your security.

Using scp and sshfs (donors’ build only)

 

Ruleset
The following rules apply.

  • All the USB files (images, videos and media.conf) are copied into the internal Raspberry’s SD-CARD:
          – if the USB key is inserted: at every reboot, SD-CARD files are updated and hence played according to the key’s content;
          – if the USB key is not inserted: at every reboot, media are played from the internal cache. So, after the first run, you can unplug the USB key.
  • Functioning modes can be combined.
  • Media will be displayed in a name-based order, and in the following sequence: remote images, then inventory-related images, network share, Dropbox, Google Drive, WebDav, Instagram and then USB-contained images, followed by videos. So, images come first and then videos. This behaviour is by design and unmodifiable, because two different players are used.
  • Accepted image formats are jpeg (.jpeg or .jpg), png, gif. The slideshow player only works with JPG images in RGB format – thanks to Ethan Piliavin.
  • Accepted video formats are mostly mp4 files.

 

Background music
Save an mp3 file named background-music.mp3 into the USB stick and enable the related media.conf directive in order for a music to partner your images’ slideshow.

 

Debug mode (via SSH)
Debug is only possible by using SSH, no direct access to the terminal emulator is possible.
Setting DEBUG=”y” in /etc/rs.conf enables the debug mode.

System actions will then be logged in /var/log/rs.log, so you can use tail -f /var/log/rs.log or cat /var/log/rs.log.

A preferred way of debugging is however by directly launching the Raspberry Slideshow stack via SSH.
SSH in as root, stop the rs Systemd service (systemctl stop rs), enable the DEBUG mode, go to the folder where Raspberry Slideshow is installed (cd /usr/lib/rs) and launch rs.sh:

./rs.sh

System will log on-screen.

 

MOST ASKED QUESTIONS

Screen rotation

Remove black borders (images’ slideshow)

Change transition time, randomize images playback

Wired network: static IP

Wi-Fi

Sound

Enlarge filesystem space

Playing media only and always from the USB key (not SD card)

Fix green screen in video playback/Videos are played only once

 

PLAYERS’ ORCHESTRATION

So far, this page refers to one (only) Raspberry Pi unit. A web interface is also available for the purpose to command many Slideshow units (“players”).

Signage Orchestrator is a centralized web interface you can use to schedule Raspberry Slideshow players to slide media in a calendar-based timetable. More information here.

 

Full version // screen goes blank after about 10 min // there’s no SSH support
This “release” build of Raspberry Slideshow is limited is some functionality: please have a look at the donation page for the full access to the unrestricted versions of all of Binary Emotions’ operating systems.

Donation page

DONATION

If you like my projects, please donate.

 
Binary Emotions Bundle

As a donor, you will have full access to the unrestricted versions of: Raspberry Digital Signage (web-based digital signage) with its plugins and Raspberry Slideshow (image/video slideshow-based digital signage), which can be deployed on how many Raspberry Pi devices you wish.

One donation. Lifetime updates, no subscription of any kind.

Also included:

 

Donation method
Please donate via the following PayPal button for the Bundle with perpetual updates.




Once donation is performed, PayPal will redirect you to the Download URL (from where you can download future updates as well): do not close the PayPal page before the redirect occurs.

Please note that I cannot anymore give email help: due to desperate lack of time I’m going to reply only to emails regarding bug reports.

Raspberry Digital Signage donation

RASPBERRY DIGITAL SIGNAGE

About | Download | Donation | Docs | FAQ | Changelog | Plugins | Signage Orchestrator

The “release” (demo) build of Raspberry Digital Signage is limited is some functionality: if you like this project please donate.

As a donor, you will have full access to the unrestricted versions of: Raspberry Digital Signage (web-based digital signage) and Raspberry Slideshow (image/video slideshow-based digital signage), which can be deployed on how many devices you wish!

Full Digital Signage features:

  • SSH remote management;
  • no screen blanking active on system (unlimited and uninterrupted display time).

 

Donation page:

Thanks to your support, Binary Emotions’ operating systems are growing year after year since 2012!