← Back to all sparks
B

Betaflight

DEVOPS
Velocity6.3

Flight controller firmware for radio-controlled multirotors and fixed-wing aircraft

Betaflight grew a real autopilot: waypoint missions, geofence RTH and MAVLink ground control

fpvflight-controllerautopilotwaypoint-missionsmavlinkdronecan
Current state
Betaflight runs two lines at once. The 2025.12.x branch is pure maintenance — UART interrupt handling, MSP race conditions, failsafe clamping, and periodic board-target refreshes — while the 2026.6 line, which reached 2026.6.1 in August, carries the largest feature set in this window by a wide margin. That feature set is dominated by one thread: an AUTOPILOT mode with flight-plan configuration, CLI waypoint commands, in-flight waypoint capture on a switch, geofence return-to-home, LAND loiter and TAKEOFF patterns, plus OSD waypoint elements and a navigation minimap. Alongside it sits a DroneCAN protocol stack with ESC and GNSS providers, CAN peripheral support on three MCU families, MAVLink mission upload and download, and STM32N6 platform bring-up.
Where it's heading
The autopilot work is not a single feature but a rebuild of how the firmware handles position: the release notes show position control unified on a velocity primitive and the existing GPS rescue reimplemented as a flight-plan mission rather than a special case. That direction pulls hardware integration along with it — DroneCAN node allocation, GNSS Fix2, ESC telemetry and MAVLink ground-station handshaking are all things a manually flown craft does not need. The SITL harness gained fidelity and per-run session ids in the same releases, which is what you build when autonomous behaviour has to be regression-tested rather than test-flown.
Prediction
With GPS rescue now running through the mission engine, the next releases on this line should concentrate on hardening that path — the release candidates already added an rx-loss policy, sanity checks and an arming gate for flight plans, and safety scaffolding of that kind usually keeps accumulating after the feature ships.

Recent moves

  1. 3d ago

    Betaflight 2026.6.1 ships AUTOPILOT mode and waypoint missions

    ⚡ SPARK

    This is the release the whole 2026.6 candidate series was building toward, and it changes what the firmware is for rather than how well it does what it already did. Everything on the parallel 2025.12 branch in this window is maintenance by comparison.

    View source ↗
  2. 19d ago

    Betaflight 2025.12.2 refreshes about two dozen board targets

    A target-only release updating configurations for roughly two dozen flight controller boards, with no firmware behaviour change. Routine hardware-catalogue upkeep on the maintenance branch.

    View source ↗
  3. 19d ago

    Betaflight 2025.12.4 backports CLI, failsafe and UART fixes

    Three fixes backported from the development line: a CLI MSP race condition, unconditional clamping of the failsafe procedure to a valid range, and guarding half-duplex pinless UART modes. Standard stable-branch maintenance while the 2026.6 work happens elsewhere.

    View source ↗
  4. 19d ago

    Betaflight 2026.6.0 rc3 adds geofence RTH and mission-based rescue

    The candidate where the autopilot took its final shape — geofence return-to-home missions, LAND loiter, rescue expressed as a synthesised mission, and OSD waypoint elements with MAVLink SET_CURRENT. Real feature development this late in a candidate series shows how much of the mission engine was still being designed.

    View source ↗
  5. 1mo ago

    Betaflight 2026.6.0 rc2 adds flight-plan safety gates

    Safety scaffolding around the new autopilot: an rx-loss policy, sanity checks, geofence and an arming gate for flight plans, plus FMSH SPI flash support and a bootloader address fix on H5. The safety work arriving separately from the feature is a sign the mission engine was considered risky enough to fence off before release.

    View source ↗
  6. 1mo ago

    Betaflight 2025.12.5 fixes UART overrun and MSP request handling

    Two narrow fixes on the stable branch covering a UART overrun flag cleared incorrectly in the HAL interrupt handler and MSP pending-request cancellation. Low-level correctness work with no user-visible feature change.

    View source ↗