Most pilots load their OSD with every available element — GPS coordinates, artificial horizon, craft name, call sign, RSSI dBm, RSSI percentage, throttle position, current draw, mAh used, voltage, average cell voltage, flight timer, VTX channel, warnings… then they fly and can’t read any of it because it’s a wall of text at 30 frames per second. An OSD is a flight instrument, not a data dump. Here’s how to build one you’ll actually use.
Step-by-Step: Building a Pro-Level Betaflight OSD Layout
Step 1: Strip It Down — Start with the Minimum Viable OSD
Disable every element except these four, in this priority order:
- Main battery voltage (not average cell — you can do the math at 3.5V/cell = 14V on 4S). Place top-left.
- mAh drawn. This is your fuel gauge. Voltage sags under load; mAh tells you exactly how much energy you’ve consumed. Place below voltage.
- Flight timer. Place top-right. Set it to count up from arm. This is your backup if mAh resets or the current sensor drifts.
- RSSI value (dBm). Percentage is meaningless — -95dBm is the failsafe threshold regardless of what the percentage scale says. Place bottom-right corner.
Fly three packs with only these four elements. If you miss something, add it. If you never look at it, keep it off. Most pilots discover they don’t need half the elements they thought were essential.
Step 2: Build Warning Thresholds That Matter
Betaflight OSD warnings flash when a value crosses a threshold. Set them aggressively enough that you have time to react:
- Low battery: Set to 3.5V per cell (14.0V for 4S, 21.0V for 6S). When the warning flashes, you have approximately 30-45 seconds of cruising flight remaining.
- Critical battery: Set to 3.3V per cell (13.2V for 4S, 19.8V for 6S). Land immediately — below this, voltage collapses exponentially and you’ll failsafe within seconds.
- mAh warning: Set to 80% of your pack’s rated capacity. For a 1300mAh pack, warn at 1040mAh. Discharging below 80% repeatedly kills LiPo cycle life.
- RSSI warning: Set to -95dBm for ELRS at 250Hz, -100dBm for Crossfire at 150Hz. LQ (link quality) below 80 on ELRS is a better indicator than RSSI — configure LQ as a separate element with a warning threshold of 70.
- Link quality: Set warning at 70, critical at 50. Below 50, turn around — you’re seconds from failsafe.
What happens if you set warnings wrong: Warning at 3.7V gives you two minutes of flight time after the first flash — you’ll land with half your pack unused. Warning at 3.2V means by the time you see it, you’re already in voltage collapse.
Step 3: Design a Logical Visual Hierarchy
Pilots scan their OSD in 1-2 seconds between maneuvers. The information must be findable instantly, not hunted for.
Layout principles:
– Top row: Status elements — flight mode (ACRO/HORIZON/ANGLE), arm state, GPS satellites. You glance here during setup and transitions.
– Left column: Power system — voltage, mAh drawn, current. This is your primary in-flight scan zone.
– Right column: Timer and warnings. Peripheral vision catches flashing warnings.
– Bottom row: Signal strength — RSSI, LQ. You check this when pushing range, not during proximity flying.
– Center: Keep clear. This is where you’re flying. Anything in the center blocks your view of branches, gates, and gaps.
Profile switching: Use the OSD profile feature (three slots in Betaflight) for different flight styles. Profile 1: minimal race layout (voltage, timer, RSSI). Profile 2: freestyle/cruising layout (adds mAh, current, flight mode). Profile 3: long-range layout (adds GPS coordinates, home arrow, distance from home, altitude). Switch between them with a transmitter switch mapped to OSD PROFILE 1/2/3 in the Adjustments tab.
Step 4: Custom Elements — Craft Name, Crosshair, and Post-Flight Stats
Craft name: One line, 15 characters max, placed top-center. Useful when you own multiple identical quads and review DVR footage later. Not useful enough to deserve a prominent position — it should be subtle.
Crosshair: A simple “+” or “×” at center screen, 1 pixel wide. It gives you a precise aim reference for gates and gaps. Most pilots prefer it invisible in normal flight and visible on a switch — map it to the same switch as your OSD profile.
Post-flight statistics: Betaflight 4.5+ can display max speed, max altitude, max distance, and max current on the “Disarmed” screen. Enable the “Stats” screen in the OSD tab, set display time to 10 seconds, and make sure “Show stats screen on disarm” is checked. This replaces the old habit of squinting at the OSD while disarmed to read final values.
Warnings position: Move warnings to the bottom-center of the screen. The center-top warning overlay blocks the most critical part of your view — exactly when you need it most (low battery = you’re probably navigating home).
Step 5: Test and Iterate — The Two-Pack Rule
After configuring a new OSD layout:
1. Fly one pack and note which elements you actually looked at during flight
2. Remove everything you didn’t reference at least once
3. Fly a second pack and confirm the reduced layout gives you everything you need
4. If you find yourself wanting data you removed, add it back — but only if you actually looked for it during flight, not because you think you “should” have it
Betaflight OSD Element Priority Matrix
| OSD Element | Priority | Recommended Position | Element Count Cost | Use Case |
|---|---|---|---|---|
| Main battery voltage | Critical | Top-left | 1 of 30 | All flights — primary battery gauge |
| mAh drawn | Critical | Below voltage | 1 | All flights — actual energy consumed |
| Flight timer | High | Top-right | 1 | All flights — backup battery gauge |
| RSSI dBm | High | Bottom-right | 1 | All flights — signal quality |
| Link quality (LQ) | High | Below RSSI | 1 | Long range — better than RSSI for ELRS |
| Current draw (Amps) | Medium | Left column | 1 | Freestyle — throttle correlation |
| GPS satellites | Medium | Top-center | 1 | Long range — GPS fix verification |
| Home direction arrow | Medium | Bottom-center | 1 | Long range — navigation |
| Distance from home | Medium | Below home arrow | 1 | Long range — range awareness |
| Flight mode | Low | Top-left corner | 1 | Setup/transitions |
| Craft name | Low | Top-center | 1 | Multi-quad DVR review |
| Artificial horizon | Off | N/A | 2 | Oblique camera angles only |
What Most Pilots Get Wrong About OSD
Mistake 1: Displaying both average cell voltage and main voltage. They show the same information in different formats. Pick one. Average cell voltage is 3.5V; main voltage is 14.0V on 4S. If you fly only 4S, main voltage is unambiguous. If you swap between 4S and 6S, average cell voltage is consistent. Never display both — it wastes two element slots and you’ll glance at the wrong one mid-flight.
Mistake 2: Setting warnings as “blink” instead of “blink and hold.” A brief blink on a 30Hz OSD update rate appears for 33 milliseconds. At 60mph, you’ve traveled 3 feet during that blink. You will miss it. Fix: Use the “blink” warning style, which cycles between visible and hidden — each visible period lasts about 500ms and you’ll catch it in peripheral vision.
Mistake 3: Using the auto-layout feature and calling it done. Betaflight’s auto-layout places elements in a fixed grid with equal spacing. It doesn’t understand visual priority or scan patterns. Fix: Manually drag every element. Take 10 minutes to arrange them deliberately. The difference between auto-layout and a manually designed layout is the difference between a spreadsheet and a cockpit.
Mistake 4: Enabling the “Craft Name” and “Display Name” elements simultaneously. They’re redundant. The craft name shows in the center when disarmed; the display name is a custom text string. If you need both, you have too many quads or too much text on screen.
Mistake 5: Not calibrating the current sensor before trusting mAh drawn. An uncalibrated current sensor can be 10-20% off. You think you’ve used 1000mAh, but you’ve actually used 1200mAh — and you land with your pack at 2.8V/cell instead of 3.5V. Fix: Fly a full pack, note the reported mAh drawn, then charge the pack and note the mAh put back in by the charger. Compute scale factor = charger_mAh / OSD_mAh. Enter this as amperage_meter_scale in the CLI. Repeat until the OSD reading is within 3% of the charger reading.
⚠️ Regulatory Notice: The OSD configuration and flight recommendations in this article should be followed in accordance with the latest 2026 drone regulations in your country or region. Always maintain visual line of sight with your aircraft — OSD elements are supplementary information and do not replace the pilot’s responsibility to maintain situational awareness. Regulations vary significantly between the FAA (US), EASA (EU), CAA (UK), CAAC (China), and other authorities. In some jurisdictions, flight beyond visual line of sight (BVLOS) requires specific waivers or certifications.
If your OSD elements aren’t displaying correctly, check our Betaflight VTX table configuration guide — sometimes the VTX channel element fails because the table isn’t loaded. For pilots building a full instrument package, our FPV GPS module selection guide helps you pick the right module for GPS-based OSD elements like home arrow and distance.
For clean OSD wiring that doesn’t introduce noise into your video signal, the RushFPV Tank Solo VTX includes an integrated OSD chip and filtered power output — one board handles video transmission, OSD overlay, and power filtering. In stock at uavmodel.com.
