Welcome to Zero Screen, your go-to guide for setting up a lightweight, cost-effective kiosk using the Raspberry Pi Zero. This project is tailored for those who need to display full-screen images while not breaking the bank and compromising on live updates or other functionalities.
Finding a solution that supports the relatively low-end hardware of the Pi Zero, including challenges like the lack of Chromium support, can be daunting. Zero Screen emerges as a practical workaround, offering a step-by-step guide to creating a kiosk that not only meets these requirements but is also simple to update and maintain.
This README serves as a personal log and a comprehensive guide for setting up your kiosk. Whether you're looking to replicate my setup or customize it to fit your needs, you'll find all the necessary steps and recommendations here. This guide will evolve over time as new improvements and methods are discovered.
After lots of testing, I have found that using each Pi Zero independently as both a file server as well as a screen has minor performance constraints. Due to the Zero being such a lightweight computer, it struggles to keep the file server running consistently. Often, reboots are required to access the file server again.
My current approach that works very well is using a Raspberry Pi 4 (or any other small PC/ File server) as the main file server, and having the Raspberry Pi Zeros act as nodes that copy over data using rsync.
While this does mean the purchase of an additional device, any old laptop or PC would do the trick. It immensly speeds up the system. Also it means you can scale using Zeros as nodes which is still cheap.
I will be updating the guide in due course to reflect this new approach, however much of the scripts and resources on this page still apply and are helpful to getting it up and running.
To kick things off, you'll need a Raspberry Pi Zero and a basic understanding of working with Raspberry Pi OS. Follow these steps to transform your Pi Zero into a fully functional kiosk:
- Flash an SD Card: Start by flashing an SD card with the Raspberry Pi OS (Desktop Version).
- Secure Shell (SSH) Access: SSH into your Pi Zero to perform the initial setup and updates.
- Disable Screen Blanking: Use
raspi-config
and select2: Display Options
to find the screen blanking setting. Disable screen blanking, ensuring your display remains active during kiosk.
-
Feh Image Viewer: Install
feh
, a lightweight image viewer, to manage your display images. -
sudo apt install feh
-
Unclutter: Install
unclutter
to hide the cursor from the screen. -
sudo apt install unclutter
- Clone This Repository: Clone this git directory to your Raspberry Pi Zero.
- Modify
screen_autostart.desktop
: Adjust theExec
path inscreen_autostart.desktop
to point to thestart_screen.sh
script. Feel free to movestart_screen.sh
to a desired location before proceeding. - Setup Autostart: Move
screen_autostart.desktop
andunclutter_autostart.desktop
to~/.config/autostart/
.
mkdir ~/.config/autostart/
mv screen_autostart.desktop ~/.config/autostart/
mv unclutter_autostart.desktop ~/.config/autostart/
- Prepare Image Folder: Create a directory to store your images (e.g.,
/home/$USER/Sync/
) and adjust theSHARE_PATH
variable in your scripts to match this location.
- Install FileBrowser: Set up FileBrowser to manage your files easily. Refer to the installation guide for detailed instructions.
- Set Local IP Address: Modify the
IP_ADDRESS
instart_screen.sh
to match your Raspberry Pi Zero's local IP address. Ensure this IP address is reserved in your router settings to avoid conflicts.
- This guide is designed with flexibility in mind. Feel free to replace or modify any step to better suit your project's needs.
- Regularly check back for updates and new tips on enhancing your Zero Screen setup.
Your feedback and contributions are welcome! If you have improvements, suggestions, or have found this guide helpful, please feel free to share your thoughts or submit a pull request.