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
See it in action
Live camera status, right where you're looking
Compatible cameras
Three BLE backends, one bridge. At a glance:
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 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.
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
OSD telemetry (record, battery, SD, timers)
Mode readout (video / photo)
Photo / video mode switch
Resolution / FPS readout
Start / stop recording
Take photo
Preset switching
Clock sync from FC GPS time
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.