Your OSD shows battery voltage but not current draw, or the artificial horizon blocks your center crosshair, or you land with a dead battery because the low-voltage warning never triggered. These are all Betaflight OSD configuration failures — and they’re fixable in under 10 minutes. This guide walks through screen layout, element placement, custom warnings, and the font manager, all from the Betaflight 4.5+ OSD tab.
Betaflight OSD Fundamentals: What Goes Where
The OSD chip on your flight controller — typically an AT7456E or MAX7456 — overlays text and simple graphics onto your analog video feed. It has a fixed grid (usually 30 columns × 16 rows for NTSC, 30×13 for PAL) and each character cell is a single color. You can’t do transparency or gradients; every element sits in a discrete grid cell. This matters because element collisions — two readouts trying to occupy the same coordinates — cause flickering or one element disappearing entirely.
Open Betaflight Configurator, connect your flight controller, and navigate to the OSD tab. Connect a battery (props off) so the OSD chip powers up. You’ll see a preview grid with draggable elements.
Step 1: Set Your Video Format
In the top-right dropdown, select Auto, NTSC, or PAL. If you’re using an analog camera and VTX, match your camera’s output format. If you select PAL but your camera outputs NTSC, elements near the bottom of the screen get cut off. Most FPV cameras use NTSC by default, but check your camera manual.
Verification: After selecting a format, check that the element at row 1 is visible at the top edge and the element at the maximum row (13 for PAL, 16 for NTSC) is visible at the bottom. If not, your format is mismatched.
Step 2: Core Flight Data Elements
Drag these elements onto the grid at minimum. Everything else is optional:
- Battery Voltage — Place top-left or top-right. Use the “Main Battery Voltage” element, not “Average Cell Voltage” (the latter requires the cell count to be accurate).
- Current Draw (Amps) — Next to voltage. This needs a calibrated current sensor. If your flight controller lacks a current sensor ADC, use “Virtual Current Sensor” in the Power & Battery tab and calibrate it against a charger reading.
- mAh Drawn — Below current. This is your fuel gauge. Set a warning at 80% of your battery capacity (e.g., 1040mAh for a 1300mAh pack).
- Flight Mode — Bottom-center or top-center. Shows ACRO, ANGLE, HORIZON, or emergency modes like GPS RSC.
- RSSI — Near the flight mode. If using ExpressLRS, set RSSI channel to AUX11 in the Receiver tab first.
- Crosshair — Dead center, always. Give it 1-2 cells of buffer from any other element.
- Timer — Bottom corner. Set to count up from arm so you know flight duration.
Troubleshooting: If an element shows “0” or “–” in flight, it’s either not configured (current sensor calibration missing) or the data source is wrong (wrong RSSI channel, no GPS lock).
Step 3: Warnings Configuration (The Part Most Pilots Skip)
The Warnings section at the bottom of the OSD tab controls what flashes on screen during flight issues. Enable these at minimum:
- Battery Warning — Set cell voltage to 3.5V. The OSD flashes “LAND NOW” when any cell dips below this under load. Don’t set it lower thinking you’ll get more flight time; voltage sag under load means 3.3V on screen = below 3.0V resting, which permanently damages LiPos.
- RX Loss — Enable. Shows “RX LOSS” when the receiver stops sending valid frames for more than 300ms (configurable with
set osd_rssi_alarm_duration = 30in CLI). - GPS Rescue — If you have GPS, enable “GPS Rescue Active” so you know when the craft is flying itself back.
Set the warning display time (how long the message stays on screen after the condition clears) to 5 seconds — long enough to register, short enough to not obscure critical data during a recovery maneuver.
As we discussed in our guide to Betaflight RPM filtering, clean gyro data from RPM filtering reduces the false triggers some pilots get when vibration spikes momentarily trigger warnings.
Custom OSD Profiles: Per-Quad or Per-Scenario
Betaflight supports up to 3 OSD profiles, switchable via the OSD tab or with a stick command (THR MID + YAW LEFT + PITCH UP on the OSD profile selection). Use them:
- Profile 1 — Racing: Minimal elements. Voltage, timer, crosshair. Nothing else. In a race, every extra character steals a fraction of your attention.
- Profile 2 — Freestyle: Voltage, current, mAh, RSSI, flight mode, crosshair, timer. The standard set.
- Profile 3 — Long Range / Diagnostics: Add GPS coordinates, home direction arrow, altitude, distance from home, and efficiency (mAh/km).
Font Manager: Bigger Text for Important Data
The default Betaflight font is fine, but you can upload custom fonts for specific elements. The Font Manager button in the OSD tab lets you flash custom character sets to the MAX7456. Common upgrades:
- Large numbers font for voltage and mAh — easier to read mid-flight
- Bold warning font for “LAND NOW” — more visible in peripheral vision
- Custom symbols — home arrow, GPS lock icon (community-made fonts available on GitHub)
Pitfall: Flashing a custom font overwrites all characters on the chip. If you only want large numbers on voltage, you need a font file that has large numbers but normal letters. Partial flashing isn’t supported — it’s all or nothing. Always back up your current font by dumping it first.
Parameter Comparison: OSD Element Types and Their Data Sources
| Element | Data Source | Needs Calibration? | Common Failure Mode |
|---|---|---|---|
| Battery Voltage | ADC on FC (VBAT pad) | Yes — voltage scale in Power tab | Shows 0.0V if VBAT divider not set |
| Current Draw (Amps) | Current sensor ADC or Virtual | Yes — scale + offset | Shows 0A or wildly wrong values |
| mAh Drawn | Derived from current × time | Inherits current calibration | Resets to 0 on disarm |
| RSSI | Receiver channel (AUX) | Set RSSI channel in Receiver tab | Shows 0% if channel wrong |
| GPS Speed | GPS module UART | No calibration needed | Shows 0 if no 3D fix |
| Altitude | Barometer or GPS | Baro needs no cal | Drifts with temperature on baro |
| Home Direction | GPS + compass | Compass calibration | Spins randomly without mag calibration |
Common Mistakes & How to Avoid Them
Mistake 1: Stacking elements on top of each other. When two elements share the same grid coordinates, Betaflight alternates displaying them — voltage flickers between two positions, or current draw disappears entirely. In the OSD preview grid, if an element turns red when you hover near another, it’s overlapping. Move it one cell away.
Mistake 2: Setting voltage warning too low. 3.3V/cell under load is not a “safety buffer” — it’s battery damage territory. A typical 1300mAh 4S pack sags 0.3–0.5V/cell under 20A load. If your warning is at 3.3V, the resting voltage after landing is below 3.0V/cell, which permanently increases internal resistance. Set the warning at 3.5V/cell and land when it triggers.
Mistake 3: Disabling the crosshair or moving it off-center. The crosshair is your pitch/roll reference. Without it, you fly by horizon, which is slower and less precise. Moving it off center creates a constant offset in your visual reference that your brain compensates for — but it adds 5-10ms of reaction time to every correction.
Mistake 4: Using “Average Cell Voltage” without setting the cell count. This element divides total voltage by the cell count you specify in the Power tab. If you set it to 4S on a 6S quad, it reads 1.5× the actual cell voltage, and your warnings never trigger. Use “Main Battery Voltage” unless you have a specific reason not to.
Mistake 5: Ignoring the OSD profile system. Running a full diagnostic OSD during a race is like driving with a spreadsheet taped to your windshield. Build a minimal race profile, switch to it with the stick command, and switch back to diagnostic mode for tuning sessions. Most pilots never touch OSD profiles and fly every pack with a cluttered screen.
⚠️ 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.
Recommended Hardware
For reliable OSD performance, the AT7456E chip on the SpeedyBee F405 V4 flight controller delivers clean analog overlay with zero flicker even at full throttle — the onboard LC filter keeps video noise off the OSD rail. We stock these at uavmodel.com with next-day dispatch.
