Sitelet https://github.com/betaflight/betaflight/releases
Skip to content

Releases: betaflight/betaflight

2026.6.2

Choose a tag to compare

@blckmn blckmn released this 16 Sep 21:42

What's Changed

Fixes

  • [2026.6] backport: Guard I2C busdev accessors against an unset bus by @blckmn in #15605

Full Changelog: 2026.6.1...2026.6.2

2026.6.1

Choose a tag to compare

@blckmn blckmn released this 02 Aug 21:46

What's Changed

Features

  • OSD: Custom text received from serial to be displayed by @blckmn in #14895
  • Add switchable battery profiles by @jury89 in #14965
  • Include AssistNow Autonomous into GPS features by @stsypanov in #14987
  • Add individual servo channel forwarding support and run servo mixer for default frame types by @blckmn in #15013
  • Upixel UP-T1-001-Plus support and optical flow position hold by @SteveCEvans in #14922
  • Add flight plan PG configuration, CLI waypoint commands, and AUTOPILOT mode by @blckmn in #15030
  • feat: add CAN peripheral support for STM32G4, STM32H7 and STM32C593 (ENABLE_CAN) by @blckmn in #15115
  • Nav autopilot by @SteveCEvans in #15026
  • feat: DroneCAN protocol stack (NodeStatus + GetNodeInfo) by @blckmn in #15137
  • SITL: gate bridge-specific transforms on SITL_BRIDGE_GAZEBO by @blckmn in #15158
  • feat: DroneCAN GNSS Fix2 provider (drives gpsSol) by @blckmn in #15143
  • feat: STM32N6570-DK bring-up — LTDC backend, SSD1306 backend, dump cmd by @blckmn in #15153
  • AUTOPILOT: Step one, Flight plan guidance implementation by @blckmn in #14923
  • telemetry/mavlink: add HOME_POSITION/SYSTEM_TIME/STATUSTEXT TX by @blckmn in #15213
  • STM32N6 platform support by @blckmn in #15214
  • telemetry/mavlink: vehicle-setup unlock + custom_mode discovery by @blckmn in #15220
  • Add ap_stop_threshold setting and improve braking performance by @SteveCEvans in #15150
  • telemetry/mavlink: MISSION protocol upload/download by @blckmn in #15224
  • The MAVLink packets rates change by using Ground Control Station by @demvlad in #15291
  • Autopilot: injected runtime plans, geofence RTH return mission, LAND loiter by @blckmn in #15409
  • Autopilot: rescue as a synthesised mission, TAKEOFF and hold patterns, SITL fidelity by @blckmn in #15413
  • SITL harness: per-run session id in the telemetry stream by @blckmn in #15417
  • Autopilot: OSD waypoint elements, CLI mission status, MAVLink SET_CURRENT by @blckmn in #15416
  • The MAVLink serial RX provider is connected to telemetry incomming message handler by @demvlad in #15374
  • DroneCAN ESC: RawCommand output, Status telemetry, dynamic node-ID allocation by @blckmn in #15350
  • Autopilot: position-hold stick feedforward split from damping, braking state machine by @blckmn in #15435
  • Autopilot: in-flight waypoint capture on a switch by @morrob955 in #15445
  • OSD: flight-plan navigation minimap element by @morrob955 in #15447
  • Unify autopilot position control on a velocity primitive; fly GPS rescue as a flight-plan mission by @blckmn in #15485

Improvements

  • PICO use timeUs_t return types for time functions. by @mjs1441 in #14817
  • Quick fix for issuix for issue 14819 by @PD45-46 in #14843
  • Change displayed precision of max current of the post-flight statistics to float by @qubicllj in #14853
  • delete file PICO/dshot.pio.programs by @qqqlab in #14863
  • CLEANUP: make clean CONFIG=X by @blckmn in #14830
  • REFACTOR: Camera Control in preparation for RP2350 implementation by @blckmn in #14856
  • PICO: Use memfunctions.S from rp2040 bootrom source for memset, memcpy. by @mjs1441 in #14876
  • PICO: Remove startup .S file (not in use). by @mjs1441 in #14886
  • Report sensor hardware names per sensor type by @haslinghuis in #14892
  • Add ACCGYRO_LSM6DSK320X by @haslinghuis in #14891
  • Add MSP support for Attitude quaternions by @Robolightning in #14761
  • Refactor release workflow to streamline artifact handling by @blckmn in #14910
  • PICO: bidirectional DShot telemetry with edge detection by @andyp1per in #14887
  • Add Nooploop TOFSense rangefinder family support by @ArturPelicho in #14896
  • Add support for ICM42622P by @haslinghuis in #14918
  • Add DEFAULT_BEEPER_OFF_FLAGS for reset of beeper_off_flags. by @mjs1441 in #14809
  • Strengthen MSP/CRSF Packet Validation by @VoodooChild99 in #14842
  • CRSF AHRS Support by @andyp1per in #14870
  • Adding Simplifed Master Slider to Adjustments by @spatzengr in #14371
  • MSP-adjCenter_adjScale by @spatzengr in #14920
  • feat(driver): add MMC5603 magnetometer driver by @gintaris in #14924
  • SITL: add -z,noexecstack linker flag to suppress RWX segment warning by @blckmn in #14938
  • Feature/bmp580 barometer by @gintaris in #14925
  • Flash/MT29F - First cut of support for the MT29F1G01ABAFDWB-IT:F flash chips (1Gb NAND) by @hydra in #14828
  • SPI ExpressLRS 4.0 support by @CapnBry in #14932
  • Move SCHEDULER_RELAX_RX/OSD STM32F411xE override from src/main to src/platform with fallback defaults by @blckmn in #14958
  • Move GPIO_TypeDef and IO_GPIO out of common drivers into platform-specific headers to decouple IO implementation from hardware details by @blckmn in #14962
  • CLI: Adding "options" for outputting the msp_build_info equivalent in the CLI by @blckmn in #14951
  • Remove unused EXTITrigger_TypeDef mock definitions from SITL target and unit test platform headers by @blckmn in #14963
  • faster cos and sin method by @Quick-Flash in #14790
  • Move SmartAudio UART bidir push-pull prepend logic from MCU ifdef to UART_TRAIT_BIDIR_PP_PREPEND platform trait by @blckmn in #14956
  • MSP: validate servo mixer targetChannel and inputSource bounds in MSP_SET_SERVO_MIX_RULE by @blckmn in #14952
  • Add support for GigaDevice GD25Q16E and Zetta ZD25WQ32CE flash memories by @jwoloch in #14970
  • BLACKBOX: log GPS epoch timestamp in H-frame and msToW in G-frame by @blckmn in #14950
  • Sensors: Add initial support for ICM42686P by @haslinghuis in #14941
  • SITL: Add ability to specify a command line argument and load a text file for writing config. by @blckmn in #14935
  • Move timer functions to accept timerHardware_t*, rename platform-specific abbreviations, and relocate platform-only declarations to platform/timer.h by @blckmn in #14967
  • flash_m25p16: Add support for GD25Q128 flash chip by @HGLRC-T in #14983
  • Refactor DMA driver to abstract platform-specific types and functions behind a hardware-agnostic API by @blckmn in #14990
  • Consolidate ENABLE_SDIO_INIT definitions in platform.h with explicit per-MCU family settings by @blckmn in #14991
  • Move NVIC priority utility macros from nvic.h to per-platform platform.h headers by @blckmn in #14996
  • Move platform-specific Bit_RESET definition from serial_4way to platform headers as GPIO_PIN_RESET by @blckmn in #14997
  • Move expressLrsTimerEnableIRQs to platform common to remove USE_HAL_DRIVER from src/main by @blckmn in #14998
  • Replace F7 platform guard for SERIAL_CHECK_TX with ENABLE_SERIAL_SKIP_CHECK_TX macro by @blckmn in #15001
  • Refactor transponder IR DMA buffer type to uint32_t to remove platform dependency by @blckmn in #14995
  • Replace STM32H7 p...
Read more

2026.6.0-rc3

2026.6.0-rc3 Pre-release
Pre-release

Choose a tag to compare

@blckmn blckmn released this 23 Jul 07:56

What's Changed

Features

  • Autopilot: injected runtime plans, geofence RTH return mission, LAND loiter by @blckmn in #15409
  • Autopilot: rescue as a synthesised mission, TAKEOFF and hold patterns, SITL fidelity by @blckmn in #15413
  • SITL harness: per-run session id in the telemetry stream by @blckmn in #15417
  • Autopilot: OSD waypoint elements, CLI mission status, MAVLink SET_CURRENT by @blckmn in #15416
  • The MAVLink serial RX provider is connected to telemetry incomming message handler by @demvlad in #15374
  • DroneCAN ESC: RawCommand output, Status telemetry, dynamic node-ID allocation by @blckmn in #15350
  • Autopilot: position-hold stick feedforward split from damping, braking state machine by @blckmn in #15435
  • Autopilot: in-flight waypoint capture on a switch by @morrob955 in #15445
  • OSD: flight-plan navigation minimap element by @morrob955 in #15447

Improvements

  • Autopilot: nav velocity mode with drag feedforward by @blckmn in #15410
  • flash_w25n: Add support for MX35LF2GE4AD flash chip by @RunnyCow in #15008
  • perf(STM32H5): enable instruction cache by @haslinghuis in #15421
  • cli: show live GPS detail in status output by @blckmn in #15450
  • Autopilot: cross waypoint gates at corner speed - chase-lag braking, carrot measurement filtering, governor hysteresis by @morrob955 in #15453
  • Autopilot: don't fail position hold on a single bad GPS fix by @morrob955 in #15454
  • perf(STM32C5): enable instruction cache by @haslinghuis in #15434

Fixes

  • Fix H7 FDCAN bring-up: kernel clock query and transceiver silent pin by @blckmn in #15429
  • STM32H5: ADC circular GPDMA so battery/current track live values by @haslinghuis in #15419
  • RTC is not set from GPS time using UBLOX M10 by @stsypanov in #15394
  • STM32H5/N6: drive WS2811 LED strip correctly on GPDMA by @haslinghuis in #15438
  • PICO: Allow non-inverted BEC enable on GPIOs, add missing dma include by @mjs1441 in #15444
  • STM32: align MPU regions to actual size by @morrob955 in #15441
  • fix(cli): don't dereference NULL sensor hardware names by @haslinghuis in #15456
  • optimize at32f43x vbat and current more accurate when punch throttle by @shanggl in #15418

New Contributors

Full Changelog: 2026.6.0-rc2...2026.6.0-rc3

2026.6.0-rc2

2026.6.0-rc2 Pre-release
Pre-release

Choose a tag to compare

@blckmn blckmn released this 12 Jul 00:35

What's Changed

Improvements

  • fix(sitl): harden Gazebo gyro yaw sign against silent regression (follow-up to #15354) by @haslinghuis in #15355
  • add support for FMSH FM25Q series (64Mb, 128Mb, 256Mb) SPI Flash by @ReganLai-Fudan in #15292
  • Autopilot: flight plan safety — rx-loss policy, sanity checks, geofence, arming gate by @blckmn in #15408

Fixes

Targets

  • STM32H5: enable UART2-8 on H562/H563 and fix UART open hard fault by @haslinghuis in #15367
  • feat(h5): enable LED_STRIP and remaining peripherals, drop VIRTUAL_GYRO by @haslinghuis in #15368

New Contributors

Full Changelog: 2026.6.0-rc1...2026.6.0-rc2

2025.12.5

Choose a tag to compare

@blckmn blckmn released this 28 Jun 20:43

What's Changed

Fixes

  • [2025.12] fix(uart): clear ORE when RXNEIE is enabled in HAL uartIrqHandler (fixes #15317, #15306) by @tracycam in #15325
  • [2025.12] fix(msp): cancel pendingRequest on '$' only, restoring per-byte lastActivityMs by @nerdCopter in #15324

Full Changelog: 2025.12.4...2025.12.5

4.5.5

Choose a tag to compare

@blckmn blckmn released this 28 Jun 22:48

What's Changed

Fixes

  • [4.5] fix(msp): cancel pendingRequest on '$' only, restoring per-byte lastActivityMs by @nerdCopter in #15330

Full Changelog: 4.5.4...4.5.5

2026.6.0-rc1

2026.6.0-rc1 Pre-release
Pre-release

Choose a tag to compare

@blckmn blckmn released this 27 Jun 01:38

Release Notes

Betaflight 2025.6.0-rc1 brings a massive range of new features, improvements, fixes, and new hardware support. For comprehensive release nots please see: https://betaflight.com/docs/wiki/release/Betaflight-2026-6-Release-Notes

Please use the online pre-release version of the Betaflight App for configuring this release. It can be found here: https://master.app.betaflight.com

What's Changed

Features

  • OSD: Custom text received from serial to be displayed by @blckmn in #14895
  • Add switchable battery profiles by @jury89 in #14965
  • Include AssistNow Autonomous into GPS features by @stsypanov in #14987
  • Add individual servo channel forwarding support and run servo mixer for default frame types by @blckmn in #15013
  • Upixel UP-T1-001-Plus support and optical flow position hold by @SteveCEvans in #14922
  • Add flight plan PG configuration, CLI waypoint commands, and AUTOPILOT mode by @blckmn in #15030
  • feat: add CAN peripheral support for STM32G4, STM32H7 and STM32C593 (ENABLE_CAN) by @blckmn in #15115
  • Nav autopilot by @SteveCEvans in #15026
  • feat: DroneCAN protocol stack (NodeStatus + GetNodeInfo) by @blckmn in #15137
  • SITL: gate bridge-specific transforms on SITL_BRIDGE_GAZEBO by @blckmn in #15158
  • feat: DroneCAN GNSS Fix2 provider (drives gpsSol) by @blckmn in #15143
  • feat: STM32N6570-DK bring-up — LTDC backend, SSD1306 backend, dump cmd by @blckmn in #15153
  • AUTOPILOT: Step one, Flight plan guidance implementation by @blckmn in #14923
  • telemetry/mavlink: add HOME_POSITION/SYSTEM_TIME/STATUSTEXT TX by @blckmn in #15213
  • STM32N6 platform support by @blckmn in #15214
  • telemetry/mavlink: vehicle-setup unlock + custom_mode discovery by @blckmn in #15220
  • Add ap_stop_threshold setting and improve braking performance by @SteveCEvans in #15150
  • telemetry/mavlink: MISSION protocol upload/download by @blckmn in #15224
  • The MAVLink packets rates change by using Ground Control Station by @demvlad in #15291

Improvements

  • PICO use timeUs_t return types for time functions. by @mjs1441 in #14817
  • Quick fix for issuix for issue 14819 by @PD45-46 in #14843
  • Change displayed precision of max current of the post-flight statistics to float by @qubicllj in #14853
  • delete file PICO/dshot.pio.programs by @qqqlab in #14863
  • CLEANUP: make clean CONFIG=X by @blckmn in #14830
  • REFACTOR: Camera Control in preparation for RP2350 implementation by @blckmn in #14856
  • PICO: Use memfunctions.S from rp2040 bootrom source for memset, memcpy. by @mjs1441 in #14876
  • PICO: Remove startup .S file (not in use). by @mjs1441 in #14886
  • Report sensor hardware names per sensor type by @haslinghuis in #14892
  • Add ACCGYRO_LSM6DSK320X by @haslinghuis in #14891
  • Add MSP support for Attitude quaternions by @Robolightning in #14761
  • Refactor release workflow to streamline artifact handling by @blckmn in #14910
  • PICO: bidirectional DShot telemetry with edge detection by @andyp1per in #14887
  • Add Nooploop TOFSense rangefinder family support by @ArturPelicho in #14896
  • Add support for ICM42622P by @haslinghuis in #14918
  • Add DEFAULT_BEEPER_OFF_FLAGS for reset of beeper_off_flags. by @mjs1441 in #14809
  • Strengthen MSP/CRSF Packet Validation by @VoodooChild99 in #14842
  • CRSF AHRS Support by @andyp1per in #14870
  • Adding Simplifed Master Slider to Adjustments by @spatzengr in #14371
  • MSP-adjCenter_adjScale by @spatzengr in #14920
  • feat(driver): add MMC5603 magnetometer driver by @gintaris in #14924
  • SITL: add -z,noexecstack linker flag to suppress RWX segment warning by @blckmn in #14938
  • Feature/bmp580 barometer by @gintaris in #14925
  • Flash/MT29F - First cut of support for the MT29F1G01ABAFDWB-IT:F flash chips (1Gb NAND) by @hydra in #14828
  • SPI ExpressLRS 4.0 support by @CapnBry in #14932
  • Move SCHEDULER_RELAX_RX/OSD STM32F411xE override from src/main to src/platform with fallback defaults by @blckmn in #14958
  • Move GPIO_TypeDef and IO_GPIO out of common drivers into platform-specific headers to decouple IO implementation from hardware details by @blckmn in #14962
  • CLI: Adding "options" for outputting the msp_build_info equivalent in the CLI by @blckmn in #14951
  • Remove unused EXTITrigger_TypeDef mock definitions from SITL target and unit test platform headers by @blckmn in #14963
  • faster cos and sin method by @Quick-Flash in #14790
  • Move SmartAudio UART bidir push-pull prepend logic from MCU ifdef to UART_TRAIT_BIDIR_PP_PREPEND platform trait by @blckmn in #14956
  • MSP: validate servo mixer targetChannel and inputSource bounds in MSP_SET_SERVO_MIX_RULE by @blckmn in #14952
  • Add support for GigaDevice GD25Q16E and Zetta ZD25WQ32CE flash memories by @jwoloch in #14970
  • BLACKBOX: log GPS epoch timestamp in H-frame and msToW in G-frame by @blckmn in #14950
  • Sensors: Add initial support for ICM42686P by @haslinghuis in #14941
  • SITL: Add ability to specify a command line argument and load a text file for writing config. by @blckmn in #14935
  • Move timer functions to accept timerHardware_t*, rename platform-specific abbreviations, and relocate platform-only declarations to platform/timer.h by @blckmn in #14967
  • flash_m25p16: Add support for GD25Q128 flash chip by @HGLRC-T in #14983
  • Refactor DMA driver to abstract platform-specific types and functions behind a hardware-agnostic API by @blckmn in #14990
  • Consolidate ENABLE_SDIO_INIT definitions in platform.h with explicit per-MCU family settings by @blckmn in #14991
  • Move NVIC priority utility macros from nvic.h to per-platform platform.h headers by @blckmn in #14996
  • Move platform-specific Bit_RESET definition from serial_4way to platform headers as GPIO_PIN_RESET by @blckmn in #14997
  • Move expressLrsTimerEnableIRQs to platform common to remove USE_HAL_DRIVER from src/main by @blckmn in #14998
  • Replace F7 platform guard for SERIAL_CHECK_TX with ENABLE_SERIAL_SKIP_CHECK_TX macro by @blckmn in #15001
  • Refactor transponder IR DMA buffer type to uint32_t to remove platform dependency by @blckmn in #14995
  • Replace STM32H7 preprocessor checks in asyncfatfs with ENABLE_AFATFS_DMA_CACHE feature flag by @blckmn in #14994
  • Move platform-specific MSC/SDIO type abstractions and DMA init from src/main/msc to src/platform headers and common source by @blckmn in #14993
  • Move overclock frequency options from chip-specific ifdefs in settings.c to ENABLE_OVERCLOCK_XXX_MHZ defines in platform headers by @blckmn in #14999
  • Move hardware-specific OctoSPI/QuadSPI definitions and GPIO config from src/main headers to platform files by @blckmn in #14992
  • Deprecate gyro_hardware and introduce cli sensor_hardware command by @haslinghuis in #15009
  • Replace recursive submodule checkout with on-demand SDK hydration and selective per-platform...
Read more

2025.12.4

Choose a tag to compare

@blckmn blckmn released this 02 Jun 16:14

What's Changed

Fixes

Full Changelog: 2025.12.2...2025.12.4

4.5.4

Choose a tag to compare

@blckmn blckmn released this 31 May 06:51
25356b5

What's Changed

Fixes

  • [4.5.4] Backport CLI MSP race-condition fix (#15193) by @blckmn in #15200
  • [backport] fix(config): unconditionally clamp failsafe_procedure to valid range by @nerdCopter in #15190

Full Changelog: 4.5.3...4.5.4

2025.12.2

Choose a tag to compare

@blckmn blckmn released this 08 Feb 00:59

Target updates for:

  • AIRBOTG4AIO
  • AXISFLYINGH743PRO
  • BETAFPVG473_V2
  • RADIOLINKF722
  • BLADEF4
  • BRAHMA_F405
  • CADDX_PROTOS_F4
  • JHEH743PRO
  • DREAMWORKSH743
  • GEPRCF722_BT_HD
  • GEPRC_TAKER_F405AIO
  • GEPRC_TAKER_H743MINI
  • RADIOLINKF722
  • HGLRC_F405_S
  • HOBBYWING_XROTORF7CONV
  • HOBBYWING_XROTORF7CONV
  • HOBBYWING_XROTORF7CONV2
  • JHEH743PRO
  • MADFLIGHT_FC3
  • RADIOLINKF405
  • RADIOLINKF722
  • RMNOVAH7
  • RADIOLINKF722
  • SIMPLIFLYF405
  • TAKERG4AIO

Full Changelog: 2025.12.1...2025.12.2