v0.2.243
Fix: Wired Pi camera (Arducam / Camera Module via CSI ribbon cable) now actually works on Pi OS Bookworm.
The first cut of Pi camera support shelled out to ffmpeg's v4l2 input,
which works for USB webcams but fails on the CSI Pi camera — the
unicam driver at /dev/video0 only exposes raw Bayer sensor data,
which ffmpeg can't decode. Capture has to go through libcamera's ISP
pipeline. This release switches the Pi camera path to libcamera-still
internally, which works against the real hardware.
What's in this release
Pi camera
- Capture via
libcamera-still(libcamera-apps now bundled in the
image, ~50 MB). - Settings → Camera → "Camera index" field —
0for a single-camera
Pi,1/2for multi-camera setups. Backward-compatible with the old
/dev/video0form (extracts the trailing digit). - The dashboard's Test camera button reports actionable
libcamera-specific errors when capture fails (instead of the
generic ffmpeg one).
Compose
docker-compose.yml's Pi camera block grew to cover what libcamera
actually needs:/dev/dma_heap, the ISP pipeline nodes
/dev/video10–23, the/dev/media*controllers, a/run/udev:ro
bind mount for camera discovery, plus the existinggroup_add: 44.
RTSP installs are unaffected — the block stays commented out by
default.
Upgrading
RTSP installs (most users): nothing to do. Apply update from the
dashboard, no compose changes required.
Existing Pi camera installs that uncommented the old (smaller)
devices: block before today: you need to expand it. Apply the update
from the dashboard, then SSH in and edit ~/birdwatch/docker-compose.yml:
add /run/udev:/run/udev:ro to your volumes: block, replace the
small devices: block with the new longer one in the file's comments,
keep group_add: ["44"]. Then docker compose up -d and re-test from
the dashboard.
Fresh Pi camera installs: see the "Using a Pi camera" section in
the README — walks through ribbon orientation, libcamera-hello --list-cameras sanity check, the compose edits, and the dashboard
switch.