This project is made to reduce ewaste: it's aim is to reuse the stack of old Banana Pi M1's that FOSDEM donated to Hackerspace Brussels. It should also just work on Rasberry Pi's and other armbian/raspbian/debian like systems. (to be tested)
One service is responsible for (re)starting chromium fullscreen in kiosk mode with the remote debugging enabled.
The other service is resposible for (re)starting a python script.
The python script will use MQTT to take URL(s) and open them in chromium via the remote debugging protocol.
Have at least one message send with retain. This way, if the Pi (re)boots it has an initial URL config of what to do.
Either send a single URL:
{"url":"https://hackerspace.gent"}
Or send multiple with a delay in seconds between rotation and indicate if you want it to keep looping.
{"url":["https://bytenight.brussels/", "https://hsbxl.be/events/byteweek/2026/bytenight/", "https://we.voidwarranties.be/DOS"], "delay": 20, "loop":1}
Note that the Pi's aren't as powerfull as you hope so stick to simpler webpages without video.
- remove any hard links.
- Use virtual enviroment or package pychrome. (paho-mqtt already exists as a package)
- Make an install script or package this mess.
Write Armbian_23.08.0-trunk_Bananapi_bookworm_current_6.1.37_xfce_desktop.img to SD card (link via official docs)
Go through setup
I used en_IE.UTF-8 and Timezone Europe/Brussels
You should now be logged into the desktop.
Go to Applications -> Settings -> Power Manager
On the tab Display, set everything to Never.
sudo nano /etc/lightdm/lightdm.conf
Find
#autologin-user=
#autologin-user-timeout=0
Uncomment both and set it to your username.
sudo apt update
sudo apt install chromium python3-pip netcat-traditional
sudo pip install pychrome --break-system-packages
sudo pip install paho-mqtt --break-system-packages
Get this project in your home directory with git clone / wget or any other way.
Double check if the hardcoded paths in the systemd files (.service) are correct.
Edit the MQTT credential in the python file.
cp *.service ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user enable chromium-kiosk
systemctl --user enable mqtt2chromium-kiosk
Now reboot to see if everything works as expected.