Betaflight 4.6 New Features: ELRS SPI, CMS Customization, and Performance Updates — 2026

Betaflight 4.6 landed in Q1 2026 after a nine-month release candidate cycle. I’ve been running the RC builds since October and the stable release since February on six different quads. The headline features are ExpressLRS SPI integration and the CMS overhaul, but the under-the-hood changes to the gyro filtering pipeline matter more for how your quad actually flies.

ExpressLRS SPI — No More External Receivers on AIO Boards

This is the biggest single change in Betaflight 4.6. Flight controllers with built-in ExpressLRS SPI receivers — common on AIO whoop and toothpick boards — no longer need a separate ExpressLRS target. The protocol is baked directly into the Betaflight firmware.

Before 4.6, if you had an AIO board with an SPI-connected ExpressLRS receiver, you had to flash a special merged firmware that bundled Betaflight and ExpressLRS together. Updating one meant updating both. If the ExpressLRS SPI target was a week behind the latest Betaflight release, you waited. The merge was fragile — a mismatch between the Betaflight base and the ELRS SPI code meant no receiver function at all.

In 4.6, ExpressLRS SPI is a first-class feature. In the Receiver tab, you select “SPI RX” as the receiver mode and “ExpressLRS” as the provider. The binding phrase, packet rate, and telemetry ratio all configure inside Betaflight’s UI — no Lua script, no WiFi, no separate flashing tool. The firmware update path is now a single step: flash Betaflight 4.6, configure the SPI receiver tab, bind.

What breaks: boards that expect the old merged firmware. If your AIO shipped with a Betaflight 4.4 + ELRS 3.x merged target, flashing stock Betaflight 4.6 will wipe the ELRS SPI code that was bundled separately. You need to flash the “with ELRS” variant of the 4.6 target. The Betaflight configurator now shows separate firmware options for boards with and without SPI receivers — pick the right one.

CMS (Configuration Menu System) Redesign

The stick-command OSD menu has been rebuilt. The old CMS was functional but clunky — navigating to VTX power settings took seven menu levels. The new CMS groups settings by task, not by internal data structure.

The new layout: VTX, PID Tuning, Rates, Filters, GPS/Rescue, OSD Layout, and Power are all top-level categories. Two levels deep covers 90% of field adjustments. The stick commands remain the same (throttle left + yaw left + pitch forward to enter, pitch/roll to navigate), but the menu tree is flat enough that you can adjust VTX power during a pre-flight check without memorizing a path.

The best addition: the CMS now shows the current value next to each setting. Previously you’d select “VTX Power” and see a list of options with no indication of what was active. Now the active value shows a checkmark. Tiny change, massive quality-of-life improvement when you’re standing in a field with goggles on.

Gyro Filtering Pipeline Optimizations

Betaflight 4.6 reworks the gyro filtering pipeline for lower CPU utilization. On F4 processors, this matters. The old pipeline consumed 28-32% CPU at 8K/8K loop times on F4s. The 4.6 pipeline uses SIMD-optimized filtering routines that drop CPU usage to 18-22% — enough headroom to run RPM filtering and GPS rescue simultaneously without overrun.

The actual filter algorithms haven’t changed. The dynamic notch, RPM filter, and lowpass filter cascades are identical to 4.5. What changed is how efficiently they execute. If you’re on an F7 or H7, you won’t notice — those processors had headroom to spare. On F4 AIO boards in whoops and toothpicks, the extra CPU budget means you can run features that previously caused loop-time instability.

For a deeper dive into the RPM filtering system itself, our Betaflight RPM filtering setup guide covers the full bidirectional DShot configuration and dynamic notch tuning.

Other Notable Changes

OSD element count increased from 64 to 96. Enough to display everything on the same screen without toggling between profiles. For long-range builds with GPS coordinates, distance-from-home, cell voltage, mAh drawn, RSSI, LQ, speed, altitude, and warnings — previously you had to prioritize. Now you can show it all.

GPS Rescue now supports climb-first behavior. Pre-4.6, GPS rescue would turn toward home and climb simultaneously. If you failsafed behind a treeline, the quad would fly into a tree before gaining enough altitude to clear it. In 4.6, you can set the rescue to climb to the target altitude before initiating the turn toward home. This is enabled via a CLI setting: set gps_rescue_ascend_first = ON. It costs an extra 2-3 seconds of battery but prevents the most common GPS rescue failure mode.

Should You Upgrade to Betaflight 4.6?

Build Type Upgrade Recommendation Reason
ELRS SPI AIO (whoop/toothpick) Yes, immediately Native ELRS SPI eliminates merged firmware fragility
F4 flight controller Yes, after testing CPU savings let you run more features
F7/H7 freestyle build Optional No major flight-performance changes, but CMS improvement is nice
Long-range with GPS rescue Yes Climb-first rescue mode prevents tree strikes
Racing (tuned and locked in) Wait one more release No racing-specific improvements in 4.6

What Most Pilots Get Wrong Upgrading to 4.6

Mistake 1: Restoring a Full diff all From a Pre-4.6 Version

Consequence: CLI settings that were renamed, deprecated, or restructured in 4.6 get applied incorrectly. The quad arms, flies, and then does something unexpected mid-flight because a filter setting mapped to the wrong internal parameter.

Fix: Apply settings manually or use the diff selectively. Start with a clean 4.6 flash, then apply the CLI diff from your old version line by line, checking each against the 4.6 release notes. The release notes document every renamed and removed CLI command. Takes 20 minutes. Beats rebuilding a quad.

Mistake 2: Flashing the Wrong ELRS Variant on SPI Boards

Consequence: The receiver disappears. No bind, no LED activity, nothing in the Receiver tab. You think the board is bricked.

Fix: On the firmware flasher page in Betaflight configurator, select the target that includes “ELRS” in the name. For Happymodel AIOs, it’s typically CRAZYBEEF4SX1280 (ELRS). The non-ELRS target will flash and boot, but the SPI receiver won’t initialize because the driver code isn’t included.

Mistake 3: Enabling Ascend-First GPS Rescue Without Testing

Consequence: GPS rescue initiates, the quad climbs vertically, drifts with the wind during the climb phase, and hits an obstacle that horizontal movement would have avoided. The “climb first” logic assumes clear air above — if you’re under a bridge or dense canopy, climbing kills the quad faster than heading toward home.

Fix: Test GPS rescue with ascend-first enabled on a day with good GPS lock and clear airspace. Flip the rescue switch intentionally at low altitude. Watch the behavior. If the quad climbs cleanly and turns without issue, the setting is validated for your site. If it drifts or hesitates, the GPS HDOP may be too high for a reliable position lock during the vertical phase.

⚠️ Regulatory Notice: The flight recommendations in this article should be followed in accordance with the latest 2026 drone regulations in your country or region. Always verify local laws regarding flight altitude, no-fly zones, remote ID requirements, and registration before flying. Regulations vary significantly between the FAA (US), EASA (EU), CAA (UK), CAAC (China), and other authorities.

For building out your complete software stack, check our Betaflight CLI commands reference for the full set of 4.6-compatible commands, and our how to flash Betaflight firmware guide if you run into DFU driver issues during the upgrade.

When upgrading flight controllers for the 4.6 feature set, the uavmodel F722 flight controller runs the full 4.6 filtering pipeline at 8K/8K with 45% CPU headroom — enough to add GPS rescue, RPM filtering, and OSD element count without approaching overrun.

Leave a Comment

Scroll to Top