PiSpot-Show
FreeA Raspberry Pi captive portal that creates a WiFi hotspot displaying a customizable web page to connected users using hostapd, dnsmasq, and nginx.
About PiSpot-Show
PiSpot-Show is a headless Raspberry Pi appliance that transforms any HDMI display into a self-updating Wi-Fi voucher kiosk with live weather integration. Designed for hotel lobbies and public-area monitors, it generates a fresh time-limited Wi-Fi voucher every hour from the Spotipo captive-portal API, fetches a live weather forecast from the Dark Sky API, and composites everything into a branded Full-HD (1920×1080) image. The image is rendered directly to the Linux framebuffer via fbi, bypassing any desktop environment for a minimal, kiosk-grade display pipeline. A PiJuice HAT provides battery-backed power management with RTC wake/sleep scheduling, a hardware watchdog, and graceful low-voltage shutdown, enabling unattended 24/7 operation. Additional features include a boot splash screen, Ansible-based deployment, error resilience with automatic retry, and a 3D-printable enclosure. Originally developed and deployed in 2018 for GPConnect, the project is now archived and no longer maintained.
Key Features
Pros & Cons
- Headless, minimal footprint – no desktop environment required, pure framebuffer display
- PiJuice battery backup and scheduled operation for reliable unattended use
- Automated voucher rotation with configurable quotas and speed limits
- Live weather integration adds dynamic, context-rich content
- Ansible-based deployment simplifies provisioning and configuration
- Error resilient design with automatic retry and graceful failure handling
- Customizable branding and 3D-printable enclosure for physical deployment
- Part of the PiSpot ecosystem (Watch, Show, Deployment) for scalable solutions
- Project is archived and no longer maintained (last active development in 2018)
- Requires specific hardware: Raspberry Pi and PiJuice HAT
- Relies on external APIs (Spotipo and Dark Sky); Dark Sky API is now shut down
- Only outputs to HDMI via framebuffer; limited to static image displays (no interactive UI)
- Setup complexity due to multiple dependencies (hostapd, dnsmasq, nginx, etc.)