Betaflight OSD Warnings and Alerts Configuration: Low Battery, RSSI, Link Quality, and Custom Thresholds — 2026

Your OSD is a data dashboard, not a decoration. Most pilots configure the pretty elements — artificial horizon, craft name, timer — and ignore the warning system entirely. Then they fly into a dead battery at 500 meters because “Land Now” flashed for 0.5 seconds before the quad dropped. The Betaflight OSD warning system has 15 configurable alerts covering battery, signal, GPS, and flight modes. Here’s how to set thresholds that give you time to react, not just time to watch the crash.

Critical OSD Warning Elements: What to Configure First

1. Battery Warnings (Non-Negotiable)

Three warning stages, each with distinct visual feedback:

Warning Cell Voltage: Default 3.5V. This is your “head home” signal. At 3.5V per cell under load, a LiPo has 15-20% capacity remaining. Set this to 3.5V for LiPo, 2.9V for Li-Ion. The OSD element blinks when crossed.

Critical Cell Voltage: Default 3.3V. This is your “land NOW” signal. At 3.3V under load, you have 5-10% capacity. The OSD element blinks rapidly and the entire OSD background flashes.

Minimum Cell Voltage: This records the lowest voltage hit during the flight. Useful post-flight to identify sag events — if minimum is 2.8V while warning was 3.3V, your battery can’t sustain your flying style.

Battery Capacity Warning: Set to 80% of pack capacity. For a 1300mAh pack, set to 1040mAh. When consumed mAh crosses this threshold, “BATTERY” text appears next to mAh indicator. This is MORE useful than voltage because capacity consumed doesn’t sag — it’s ground truth.

Critical mAh: Set to 90% of pack capacity (1170mAh for 1300mAh). At this level, you’re damaging the battery even if voltage hasn’t hit critical yet.

Two related but distinct metrics:

RSSI (dBm): Raw signal strength. At -50dBm you’re next to the quad. At -95dBm you’re on the edge. At -105dBm you’ve lost the link. RSSI is useful for analog video and older receivers.

Link Quality (LQ): ExpressLRS native metric. Percentage of valid packets received in the last window. 100% = perfect link. 80% = marginal but flyable. 50% = expect control dropouts. 0% = failsafe. LQ is the better metric for CRSF/ELRS systems — RSSI on ELRS is a derived value reported as dBm but derived from LQ.

Warning Thresholds:
– LQ Warning: 80 (amber, start paying attention)
– LQ Critical: 50 (red flashing, turn around now)
– RSSI Warning: -90 dBm (amber)
– RSSI Critical: -100 dBm (red flashing)

Betaflight OSD Warning Element Reference

Warning Element Recommended Threshold What It Means When It Fires
Battery Warning 3.5V/cell LiPo, 2.9V Li-Ion Time to head home Continuous below threshold for 1 second
Battery Critical 3.3V/cell LiPo, 2.7V Li-Ion Land immediately Continuous below threshold for 0.5 seconds
Battery Capacity 80% of pack mAh Switch to conservative flight When consumed exceeds threshold
Battery Critical mAh 90% of pack mAh Battery damage imminent When consumed exceeds threshold
RSSI Warning -90 dBm or LQ < 80 Marginal signal Continuous below threshold
RSSI Critical -100 dBm or LQ < 50 Imminent failsafe Continuous below threshold
GPS Satellites < 8 Degraded position accuracy Below threshold for 5 seconds
GPS HDOP > 2.5 Poor position precision Above threshold for 5 seconds
Altitude Configurable Approaching ceiling When altitude exceeds set value
Distance Configurable Approaching max range When distance from home exceeds set value
Flight Mode Visual indicator Current mode (Acro/Horizon/Angle) Always displayed (informational)
VTX Channel Visual indicator Current band/channel/power Always displayed
RX Loss Auto Zero valid frames received Immediate on first missed frame
Failsafe Auto Stage 2 failsafe active Immediate on Stage 2 activation

Configuring Warning Thresholds: CLI vs GUI

The OSD tab in Betaflight Configurator lets you toggle warning elements on/off. But the threshold values are CLI-only:

set osd_warn_cell_voltage = 350  (3.5V * 100)
set osd_warn_dji = ON
set osd_warn_link_quality = 70
set osd_warn_rssi_dbm = 90       (-90 dBm)
set osd_cap_alarm = 1040          (1040mAh for 1300mAh pack)
set osd_alt_alarm = 120           (120m altitude warning)
set osd_dist_alarm = 2000         (2000m range warning)
set osd_neg_alt_alarm = 10        (10m below takeoff — diving alert)

The DJI OSD warning setting: osd_warn_dji = ON enables Craft Name overlay changes to indicate warnings on DJI FPV systems that don’t support the full Betaflight OSD. When a warning fires, the craft name changes to show the warning code. This is the only way DJI pilots get battery/RSSI alerts in-goggle.

Custom Warning Logic Through OSD Profiles

Betaflight supports 3 OSD profiles. Use them:

Profile 1 (Freestyle): Battery voltage center-top. Timer top-right. Flight mode bottom-center. Warnings at 3.5V/3.3V LiPo. RSSI top-left. Minimal clutter — you’re looking at gaps, not data.

Profile 2 (Long Range): mAh consumed center-top (replaces voltage as primary). LQ center-left (larger than RSSI). GPS coordinates top-right. Altitude top-center. Distance from home right-center. Warnings at 2.9V/2.7V Li-Ion, LQ 80/50. Maximum data density — every element matters at 5km.

Profile 3 (Racing): Timer center-top. Voltage bottom-right. Warnings at 3.3V/3.1V. Minimal — you’re in the air for 2 minutes per pack. If you’re looking at OSD during a race heat, you’ve already lost.

Switch profiles via OSD stick commands (throttle mid + yaw left + pitch forward = next profile) or by assigning a profile channel in the Adjustments tab.

Audio Warnings via Buzzer Patterns

Betaflight converts OSD warnings to beeper patterns if you have a physical buzzer or ESC beacon. The pattern encodes the warning type:

  • Low Battery: 3 short beeps, pause, repeat
  • Critical Battery: Continuous rapid beeping
  • RX Loss: Single long beep every 2 seconds (locator beacon)
  • GPS Rescue Active: Alternating short-long pattern

ESC beacon (DShot beacon) uses the motors as speakers — it sends a PWM signal at an audible frequency. Configure from CLI:

set beeper_dshot_beacon_tone = 3   (1-5, pitch)
set beeper_dshot_beacon_volume = 200 (0-255)

At volume 200, you can hear the beacon from 30 meters. At 255, you can hear it from 50 meters but motor bearings protest — use sparingly.

Common Mistakes & What Most Pilots Get Wrong

Mistake 1: Setting battery warning at 3.3V and critical at 3.1V
These are “the battery is already dead” thresholds. Voltage sag during a punch-out drops a healthy battery from 3.8V to 3.3V instantly. If your warning is at 3.3V, every throttle blip triggers it. You learn to ignore the flashing — and then miss the real warning.

Consequence: Warning fatigue. You tune out the alert. When it’s real at 2km out, you don’t notice.

Fix: Set warning at 3.5V for LiPo. Accept the occasional false positive during aggressive moves. Better to glance at a false warning than miss a real one. Reduce false positives by setting the warning delay — Betaflight 4.4+ has a “warn cell voltage delay” setting in CLI: set osd_warn_cell_voltage_delay = 30 (3 seconds continuous below threshold before warning fires).

Mistake 2: Using RSSI dBm instead of LQ on ExpressLRS
ELRS reports RSSI as a calculated value from LQ, not a measured dBm. At LQ 50%, the RSSI might still show -80dBm — the link is dying but RSSI looks fine.

Consequence: RSSI shows “okay” while LQ is collapsing. You get no warning before failsafe.

Fix: Display LQ as your primary signal metric on ELRS builds. Use RSSI only as a backup. Set LQ warning at 80, critical at 50.

Mistake 3: Not configuring mAh alarm for Li-Ion packs
Li-Ion voltage under load is misleading. At 2.9V/cell under 15A load, a Samsung 50S still has 40% capacity. If you land based on voltage, you’re landing with half your flight time unused.

Consequence: Consistently landing with 40% capacity remaining. Range anxiety prevents exploring your actual flight envelope.

Fix: For Li-Ion packs, ignore voltage warnings. Set capacity alarm at 80% of pack capacity. Monitor consumed mAh as your primary fuel gauge. Land when mAh consumed equals 80% of rated capacity — you still have a 20% emergency reserve.

Mistake 4: OSD element layout with overlapping warnings
Putting the battery warning next to RSSI warning in the same corner means both flash simultaneously during a low-battery, marginal-signal situation. You can’t read either.

Consequence: Critical information is lost when you need it most — two warnings render each other unreadable.

Fix: Separate warning elements: battery top-center, RSSI top-left, mode bottom-center. When warnings flash, each has its own dedicated screen region.

Mistake 5: Relying on DJI craft name overlay as primary warning
The DJI OSD workaround (craft name change) only shows ONE warning at a time. If low battery and RSSI critical fire simultaneously, you see whichever was last. The other warning is invisible.

Consequence: You react to the visible warning while the invisible problem kills your link. Quad drops while you’re nursing the battery home.

Fix: Use the DJI craft name overlay as a secondary alert system. Your primary warning should be audible — set EdgeTX voice callouts for battery voltage and RSSI. Voice alerts don’t require looking at anything.

⚠️ 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 complete OSD configuration including custom fonts and widget layout, see our Betaflight OSD full configuration guide. For RSSI setup details, see our Betaflight RSSI setup guide.

Further Learning

The SpeedyBee F7 V3 flight controller with onboard Bluetooth lets you adjust OSD layout from your phone at the field — no laptop needed. Available at uavmodel.com.

Leave a Comment

Scroll to Top