A Fluxplan screen that looks after itself

Turn a Raspberry Pi into a screen for Fluxplan: the day’s planning in the lobby, or a room’s schedule by its door. Set it up once with your phone. No keyboard, mouse or signage software required.

Image · Player · Raspberry Pi 4 and 5

What it does

The screen shows the view you pick for it in the Fluxplan admin, and keeps running without anyone touching it.

Set up with your phoneThe screen shows a temporary Wi-Fi network with an 8-digit password and a QR code. Join it, and a setup page in Dutch or English opens by itself.
Managed from FluxplanPair a screen with a code, choose what it shows, then update, restart, shut down or reset it from the admin.
Updates itselfDebian, Raspberry Pi and player updates are installed at night. A new screen fetches the newest player as soon as it is connected.
Repairs itselfA page that freezes is reloaded, a stuck browser restarted, and in the end the whole Pi. After a power or network cut it comes back by itself.

What you need

  • A Raspberry Pi 4 or 5 with 1 GB of memory or more
  • Its official power supply: an underpowered Pi restarts at random
  • A microSD card of 8 GB or more; the system takes about 4 GB
  • A screen with HDMI, such as a TV or monitor, and a micro-HDMI cable for the Pi
  • A network: Wi-Fi or a network cable
  • A Fluxplan instance (such as demo.fluxplan.nl) where you are an admin

SignageOS is built on Raspberry Pi OS Lite (64-bit): no desktop, only the browser that shows your Fluxplan. That is why it runs well on the smallest Pi 4.

Downloads

There are two kinds of release. You only ever download the image: screens that are running fetch the player by themselves.

For a new screen SD card image

Raspberry Pi OS with the player, ready to write to a card.

Download image The newest image, with a SHA-256 checksum
Installs itself Player

Running screens update to it at night, or right away with Update player in the admin.

What’s new The newest player, as a .deb

Raspberry Pi Imager can list the image too: rpi-imager --repo https://enjoytheshow-nl.github.io/fluxplan-signageos-releases/imager.json

Installing a screen

About ten minutes, most of it writing the card.

  1. Write the image to a card Use Raspberry Pi Imager, on Windows, macOS or Linux: Choose OS → Use custom, and pick the image. Leave its OS customisation off: the screen sets itself up. Get Raspberry Pi Imager
  2. Start the Pi Put the card in the Pi, connect the screen and a network cable if you use one, and then the power.
  3. Set it up with your phone Join the Wi-Fi network on the screen, SignageOS-XXXX, with the 8-digit password, or scan the QR code. Choose Wi-Fi or cable, enter your Fluxplan address and country, and save.
  4. Pair it in Fluxplan The screen shows a pairing code. In the admin, go to Operations › Narrowcasting › SignageOS screens, choose Pair screen, enter the code and choose what the screen shows.

On the setup network, the setup page usually opens by itself. If it doesn’t, open http://10.42.0.1 in your phone’s browser. If something goes wrong while connecting, the screen and the phone say which step failed, and the setup network comes back so you can try again.

Setting up in advance: fluxplan.json

Preparing several screens, or installing one where nobody can use a phone? Put the Fluxplan address and network on the card beforehand, and the screen skips the setup step. It goes straight to its pairing code.

Make your file Fill this in and download the file. Nothing you type leaves this page.
Fill this in to download the file.
Connection
Decides which Wi-Fi channels the screen may use.
fluxplan.json
{
    "server": "demo.fluxplan.nl",
    "country": "NL",
    "wifi": {
        "ssid": "Office",
        "password": "secret-password",
        "hidden": false
    }
}
  1. Write the image to the card, then take the card out and put it back in your computer.
  2. Open the drive called bootfs. It holds many files, such as config.txt, cmdline.txt and FLUXPLAN-README.txt.
  3. Put fluxplan.json in it, next to those files, not in a folder. Eject the card, and put it in the Pi.

What goes in the file

KeyNeededWhat it is
serverYesYour Fluxplan address, such as demo.fluxplan.nl. A full address with https:// works too.
countryAdvisedTwo-letter country code, such as NL, BE or DE. Decides which Wi-Fi channels the screen may use. Without it, the screen uses NL.
wifiFor Wi-FiThe Wi-Fi network. Leave it out completely when the screen uses a network cable.
wifi.ssidWith wifiThe network’s name, exactly as it shows on a phone, capitals included.
wifi.passwordWith wifiThe network’s password, 8 to 63 characters. Empty, or left out, for an open network.
wifi.hiddenNotrue for a network that does not show in lists. false when left out.

What the screen does with it

  1. On its next start, it reads the file and deletes it right away, because it holds your Wi-Fi password. A file it cannot read is deleted too.
  2. It sets the country, saves the Fluxplan address and the Wi-Fi network, and connects.
  3. The screen shows a pairing code. Pair it in the admin as usual.
  4. If the network cannot be reached for five minutes, the setup network opens after all, so you can fix it with your phone.

If it does not work

  • Windows hides extensions. A file saved as fluxplan.json in Notepad can end up as fluxplan.json.txt. Use the download button above, or choose “All files” when saving.
  • Straight quotes only. Word and TextEdit turn " into curly quotes, which break the file. In TextEdit, choose Format → Make Plain Text first.
  • Commas between items, none after the last. Every text goes between double quotes.
  • Still the setup screen? Then the file was missing or could not be read. Put an empty fluxplan-debug file on the card to see why (below).

Other files on the card

The card’s bootfs drive also takes two instructions. Make an empty file with the name below (.txt at the end is fine too), put the card back, and start the Pi.

fluxplan-reset Factory reset The screen forgets its pairing, its Fluxplan address and its Wi-Fi network, deletes the file, and opens setup again. For a screen that is offline; otherwise use Factory reset in the admin.
fluxplan-debug Troubleshooting report While it is there, the screen writes fluxplan-debug.log next to it every 30 seconds: what it did, its network and the system logs since it started. No passwords. Unplug the Pi, read the file on your computer, and delete fluxplan-debug when you are done.

Messages on the screen

When something is wrong, the screen says so in plain words, in Dutch and English, with a short code bottom left. Most of them sort themselves out: the screen keeps trying.

CodeThe screen saysWhat to do
NET-01Er is nog geen internet · There is no internet connection yetNothing, at first. If it lasts: check the cable or the Wi-Fi, or unplug the screen for a moment.
NET-02Fluxplan reageert niet · Fluxplan is not respondingIf it lasts, check whether your Fluxplan opens in a browser.
DNS-01Dit Fluxplan-adres bestaat niet · This Fluxplan address does not existThe address has a typo. Reset the screen and set it up again.
API-429Even geduld · Just a momentNothing: Fluxplan asked the screen to wait, and it carries on by itself.
API-5XXFluxplan is even niet beschikbaar · Fluxplan is briefly unavailableIf it lasts, contact whoever manages your Fluxplan.
TLS-01De klok van het scherm wordt gelijkgezet · Setting the screen’s clockNothing: the Pi has no clock battery and sets its clock over the internet first.
TLS-02De beveiligde verbinding lukt niet · The secure connection failsA filter or proxy on the network blocks Fluxplan. Ask for it to be allowed.
SET-01Verbonden, maar Fluxplan niet gevonden · Connected, but Fluxplan was not foundCheck the Fluxplan address on the setup page.
WIFI-01Het wachtwoord klopt niet · The password is not rightEnter the Wi-Fi password again, minding the capitals.
NET-03Er is geen netwerkkabel aangesloten · No network cable is connectedPlug in the cable, or choose Wi-Fi.

Updates and the night

Screens keep themselves up to date, at times when nobody looks.

03:00
Debian, Raspberry Pi and player updates are installed.
03:30
The browser restarts, for a fresh start each day.
04:00
The Pi restarts, only when an update needs it.
Sun 04:30
A weekly restart.

A new screen installs the newest player as soon as it reaches Fluxplan.

From the admin

Under Operations › Narrowcasting › SignageOS screens, each screen has a Player menu:

  • Update player: install the newest version now instead of tonight.
  • Reload: start the browser afresh.
  • Restart: restart the Pi.
  • Shut down: turn the Pi off, for example before you move it. Unplug and replug the power to start it again.
  • Factory reset: forget the Fluxplan, the pairing and the Wi-Fi, and go back to setup.

Security

Locked to your FluxplanThe screen only opens its own Fluxplan, and only the views Fluxplan offers. Every other web address is blocked.
No way inNobody can log in to the Pi: the account is locked and SSH is off. The firewall lets in only what setup needs, and the setup network only appears while a screen needs setting up.
Signed updatesUpdates come from the signed apt repository at apt/. Key fluxplan-signageos-archive-keyring.asc, fingerprint C57F 858F A9B2 7EE9 8EA3 13EF 5A39 CD8F 9F30 CF35.
Give it its own networkWe advise running screens apart from your computers, as is good practice with any IoT device: on their own Wi-Fi network, such as a guest or IoT network, or on their own VLAN when wired. A screen only needs to reach the internet (your Fluxplan, updates and the time); nothing needs to reach it.