ShutterBridge

by YarosFPV

Your camera, on the OSD. Your switches, on the shutter.

ESP32-S3 firmware that links a Betaflight flight controller to a DJI Osmo, DJI Action or GoPro camera - live camera status drawn straight on your FPV goggles, and RC switches mapped to record, photo and mode switching

Compatible cameras

Three BLE backends, one bridge. At a glance:

DUML Tested

DJI Osmo (Nano)

Connect, OSD telemetry, mode readout, record and photo. Can't switch photo/video over BLE - the shutter takes a photo only when the camera is already in Photo mode.

DJI R-SDK Tested

DJI Action / Osmo 360

Full control: mode switch, resolution/FPS readout, record and photo. R-SDK protocol with DUML for battery. Pairing via PIN. Tested on the Action 4.

Open GoPro Untested

GoPro (HERO9+)

Preset switching, load-by-ID and clock sync from FC GPS time. Bonds on the camera. Not yet tested on real hardware.

Connect + auto-reconnect

Osmo (Nano)
Action / 360
GoPro

OSD telemetry (record, battery, SD, timers)

Osmo (Nano)
Action / 360
GoPro

Mode readout (video / photo)

Osmo (Nano)
Action / 360
GoPro

Photo / video mode switch

Osmo (Nano)
Action / 360
GoPro

Resolution / FPS readout

Osmo (Nano)
Action / 360
GoPro

Start / stop recording

Osmo (Nano)
Action / 360
GoPro

Take photo

Osmo (Nano)
Action / 360
GoPro

Preset switching

Osmo (Nano)
Action / 360
GoPro

Clock sync from FC GPS time

Osmo (Nano)
Action / 360
GoPro
Supported Partial / conditional Unsupported

What you need

Three things to get flying

Waveshare ESP32-S3-Zero

ESP32-S3FH4R2 - 4 MB flash, 2 MB PSRAM, native USB. The board ShutterBridge is built for.

Betaflight 2025.12 or newer

Flight controller running Betaflight 25.12+. Talks to the bridge over MSP; OSD elements draw the camera status.

A supported action camera

A DJI Osmo / Action or a GoPro HERO9 or newer. See the compatibility list above.