ShutterBridge

by YarosFPV

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

ESP32-S3 / ESP32-C3 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 (3+) / 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 Tested

GoPro (HERO9+)

Preset switching, load-by-ID and clock sync from FC GPS time. Bonds on the camera. Recording and OSD telemetry verified on a HERO 12; some features not yet confirmed.

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 Supported, untested

What you need

Three things to get flying

One of two boards

Waveshare ESP32-S3-Zero (4 MB flash, 2 MB PSRAM, native USB) or ESP32-C3 Super Mini (4 MB flash, USB-Serial/JTAG).

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.