Skip to content

v0.2.243

Choose a tag to compare

@JoeBarraco JoeBarraco released this 21 Jun 00:21
· 9 commits to main since this release
e19db7e

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 — 0 for a single-camera
    Pi, 1/2 for multi-camera setups. Backward-compatible with the old
    /dev/video0 form (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 existing group_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.