Skip to content

v0.2.241

Choose a tag to compare

@JoeBarraco JoeBarraco released this 20 Jun 23:15
· 10 commits to main since this release
0544894

New: Wired Raspberry Pi camera support.

The dashboard now supports a Raspberry Pi Camera Module or Arducam attached
directly to the Pi over the CSI ribbon cable, as an alternative to an RTSP
IP camera. Useful when there's no convenient IP camera at the feeder spot,
or when WiFi reliability rules out streaming.

What's in this release

Camera

  • New "Camera type" dropdown in Settings → Camera: choose between
    RTSP / IP camera (the historical default — Tapo, Reolink, etc.) and
    Pi camera (CSI ribbon cable).
  • Pi camera path captures via ffmpeg's v4l2 input — no new dependencies
    inside the container; v4l2 compat is on by default on Pi OS Bookworm.
  • "Test camera" button on the settings page routes to whichever backend is
    currently selected, so you can verify before saving.

Compose

  • docker-compose.yml ships with a commented-out devices: + group_add:
    block at the bottom of the birdwatch service. Uncomment those lines
    if you're enabling the Pi camera; RTSP-only installs leave them alone.

Docs

  • README has a new "Using a Pi camera (CSI ribbon cable)" section covering
    ribbon orientation, enabling the camera interface with raspi-config,
    verifying with libcamera-hello --list-cameras, exposing the device
    into the container, and switching the camera type from the dashboard.

What stays the same

The existing pipeline — frame-diff motion detection, identify, best-frame,
overlay, clip recording, notifications, community share — works on Pi
camera frames unchanged. Only the bytes-on-the-wire layer is different.

ONVIF motion events still apply to RTSP cameras only (wired Pi cameras
don't speak ONVIF). Frame-diff motion detection (Settings → Detection →
Motion threshold) is the right default for the Pi camera path.

Upgrading

Existing installs: pull the latest compose + image as usual. The Pi
camera fields show up in Settings → Camera automatically; the default
camera type stays RTSP, so nothing changes unless you switch.

Switching an existing install to Pi camera:

  1. Plug the ribbon cable with the Pi powered off.
  2. Uncomment the devices: + group_add: blocks in your
    ~/birdwatch/docker-compose.yml.
  3. docker compose up -d to recreate with the device passthrough.
  4. Settings → Camera → Camera type → Pi camera → enter /dev/video0
    Test cameraSave.