FPV drone software is easier to reason about when you separate the layers.
The radio link, flight-controller firmware, configurator, post-flight logs, and experimental VTOL control code solve different problems.
This page maps the FPV-related posts on FOSS Engineer into one workflow.
The Short Version
| Post | Best For | Layer |
|---|---|---|
| ExpressLRS | Rebuilding and flashing receiver firmware deliberately | Radio link |
| Betaflight | Understanding what runs on the flight controller | Flight-control firmware |
| Betaflight App | Configuring, flashing, backing up, and inspecting the flight controller | Configurator |
| Betaflight Blackbox Explorer | Reading .bbl / .bfl logs after a flight |
Post-flight analysis |
| dRehmFlight | Studying readable Arduino/Teensy VTOL control code | Custom VTOL firmware |
How They Fit Together
Radio transmitter
-> ExpressLRS TX module
-> ExpressLRS receiver
-> CRSF / UART into Betaflight
-> Flight controller sensors, modes, mixer, motors, OSD, failsafe
-> Betaflight App for configuration and flashing
-> Blackbox Explorer for post-flight logs
dRehmFlight sits beside that normal FPV stack. It is not the default path for a freestyle quad, but it is valuable when you want to read the control loop directly or prototype unusual VTOL aircraft.
Recommended Reading Order
- Start with ExpressLRS if the aircraft cannot connect to the radio.
- Read Betaflight when you want to understand the flight-controller firmware layer.
- Use Betaflight App for the operational workflow: connect, configure, flash, back up, inspect.
- Use Betaflight Blackbox Explorer after flights, especially when the aircraft behaves strangely.
- Read dRehmFlight when the goal is learning, custom mixers, or experimental VTOL control logic.
ExpressLRS
Use the ExpressLRS post when the problem starts at the radio link.
It is useful for:
- identifying old receiver target names
- rebuilding a known firmware version deliberately
- understanding FCC/ISM versus regional firmware choices
- avoiding guesswork when Web Flasher names have changed
Useful link:
Betaflight Firmware
Use the Betaflight firmware post when you want to inspect what runs on the flight controller.
It is useful for:
- understanding target configs and board metadata
- seeing how receiver input, sensors, modes, failsafe, and motor output fit together
- validating code paths with SITL and focused tests before touching hardware
- connecting the ExpressLRS radio-link layer to the flight-control layer
Useful link:
Betaflight App
Use Betaflight App when the question is operational: how to connect to the flight controller and change its configuration.
It is useful for:
- configuring receiver ports and modes
- flashing firmware
- backing up settings
- inspecting board state through MSP
- understanding WebSerial, WebUSB DFU, PWA, Android, and desktop packaging around the configurator
Useful links:
Betaflight Blackbox Explorer
Use Blackbox Explorer after the flight.
It is useful for:
- opening
.bbland.bfllogs - graphing flight-controller telemetry over time
- syncing logs with flight video
- checking whether a problem was tuning, vibration, receiver input, throttle behavior, or something else
Useful links:
dRehmFlight
Use dRehmFlight when you want a readable flight-controller codebase for learning or custom aircraft experiments.
It is useful for:
- Arduino/Teensy flight-control learning
- custom VTOL experiments
- mixer experiments that do not fit a normal FPV quad preset
- studying IMU reading, attitude estimation, PID control, receiver input, and motor/servo output in one compact sketch
For a normal FPV freestyle or racing quad, Betaflight is usually the practical default. For source-level learning and unusual VTOL prototypes, dRehmFlight is more approachable.
Useful link:
Choosing a Starting Point
| If You Need To… | Start With |
|---|---|
| Recover or rebuild receiver firmware | ExpressLRS |
| Understand the embedded flight-control layer | Betaflight firmware |
| Configure or flash a flight controller | Betaflight App |
| Diagnose a weird flight after landing | Blackbox Explorer |
| Learn or prototype custom VTOL control logic | dRehmFlight |
Safety Note
Treat FPV firmware work as physical-system work, not only software work.
Before flashing, configuring, or testing a flight controller, remove propellers, confirm the exact board target, back up the current configuration, and avoid changing receiver, arming, failsafe, or motor-output settings casually.
Comments