Last updated:
Current highlight: see how Raspberry Pi Zero 2 W Door Camera Display combines focused engineering with dependable day-to-day operation.
Current working deploymentRaspberry Pi Zero 2 W Door Camera Display
This project turns a Raspberry Pi Zero 2 W into a dedicated indoor door camera display. Frigate remains responsible for camera recording and person detection. The Pi acts only as a responsive viewer, showing the same detection image on a compact SPI LCD and a ViewSonic HDMI monitor when somebody approaches the door.
Example Frigate person-detection frame used by the LCD and HDMI viewers.
Detection Gallery
These event frames show Frigate detections captured during normal operation. They demonstrate different subject positions, movement, and framing handled by the Raspberry Pi display services.
System Flow
SPI LCD Viewer
- 320×240 framebuffer display
- Dedicated LCD service
- Limited to 2 FPS to preserve HDMI performance
- Clears automatically after the event timeout
- Existing LCD behavior remains independent from HDMI
ViewSonic HDMI Viewer
- 1920×1080 HDMI framebuffer
- 960×540 image rendered in the top-left quarter
- Persistent Frigate MJPEG connection requesting 12 FPS
- Measured rendering of approximately 10.7 to 11.26 FPS
- Latest-frame-only processing drops stale frames
Event-Driven Operation
Both viewer services subscribe to Frigate person-detection events through MQTT. A matching event wakes the display path and starts rendering current camera frames. The HDMI viewer uses a persistent MJPEG connection rather than repeated snapshot requests, improving smoothness while avoiding a queue of outdated frames.
After 60 seconds without a matching event, the displays are cleared. The ViewSonic monitor is then placed into DPMS sleep and wakes again for the next detection.
Software Design
- Two independent Python services, one for LCD and one for HDMI
- Frigate supplies detection events and scaled camera frames
- NumPy-based pixel conversion for efficient framebuffer output
- Automatic MJPEG reconnection after stream errors
- Deadline-based pacing without queued frames
- Systemd services start automatically and recover independently
Design Goals
- Keep Frigate as the single source of truth for recording and detection
- Keep the display device simple, local, and purpose-built
- Show the door image only when it is useful
- Keep the LCD and HDMI outputs isolated so one display cannot break the other
- Minimize CPU, network, and power use while idle
Current Status
The LCD and ViewSonic HDMI services are active and have completed controlled wake, render, clear, and sleep testing. The current deployment includes persistent MJPEG streaming and independent display services for stable operation.