# Betaflight OSD Configuration: Custom Elements, Warnings, and Fonts Setup
A well-configured On-Screen Display (OSD) can be the difference between confidently ripping through a bandos and nervously glancing at your radio every 30 seconds. Betaflight’s OSD system is incredibly powerful, yet many pilots settle for the default layout. Let’s fix that. This guide covers everything from basic element placement to custom warnings and font management.
## Understanding the Betaflight OSD Tab
The OSD tab in Betaflight Configurator is your canvas. Every element you enable here gets rendered directly onto your FPV video feed by the flight controller’s OSD chip (usually an AT7456E or MAX7456).
### OSD Chip Compatibility
| Chip | Max Characters | Common On |
|——-|—————|———–|
| AT7456E | 16 rows × 30 columns | Most F4/F7 flight controllers |
| MAX7456 | 16 rows × 30 columns | Older FCs, some AIO boards |
| DJI O3 Air Unit | Custom canvas (Betaflight OSD) | Transmitted over MSP |
| Walksnail Avatar | Custom canvas (MSP DisplayPort) | Requires Betaflight 4.3+ |
> **Note**: DJI and Walksnail systems support Betaflight OSD natively now — you don’t need the old “DJI custom OSD” workaround if your firmware is up to date.
## Step 1: Core Elements Every Pilot Needs
Open Betaflight Configurator → **OSD tab** → drag elements to desired positions. Here are the non-negotiable elements for any build:
| Element | Priority | Why You Need It |
|———|———-|—————–|
| Battery Voltage | Critical | The #1 cause of lost quads is pushing a pack too low |
| RSSI / LQ | Critical | Link quality matters more than RSSI with ELRS |
| Timer (Total Armed) | High | When voltage is inaccurate, time is your backup |
| Current Draw (Amps) | High | Spot failing components instantly |
| mAh Drawn | High | More accurate than voltage for capacity tracking |
| Flight Mode | Medium | Confirms Acro/Angle/Rescue status |
| Warnings | Critical | Never miss a failsafe or low battery alert |
| Craft Name | Low | Helpful for identifying DVR footage |
### Positioning Best Practices
– **Top corners**: Timer, craft name (less critical while flying)
– **Bottom corners**: Battery voltage, LQ/RSSI (scan with peripheral vision)
– **Bottom center**: mAh drawn (the “fuel gauge”)
– **Center**: Warnings only — they override everything when active
## Step 2: Setting Up Custom Warnings
Betaflight OSD warnings appear as bold text in the center of your screen. You can configure what triggers them in the **OSD tab → Warnings** section, or customize them via CLI.
### Stock Warnings (Enable in OSD Tab)
| Warning | Trigger Condition |
|———|——————-|
| Low Battery | Voltage drops below configured minimum |
| Failsafe | RX signal lost (initiated by failsafe stage 1) |
| Land Now | Battery critically low |
| Not Armed | Throttle raised while disarmed |
| GPS Required | GPS Rescue active but no 3D fix |
### Custom Warning Logic (CLI)
Add custom visual warnings for critical thresholds:
“`
# Flash “BATTERY LOW” when sag drops below 3.3V per cell
set osd_warn_core_temp = OFF
set osd_warning_bit = 0
“`
For advanced alerts, use the **OSD Profiles** feature. On a 3-position switch, you can rotate between a racing OSD (minimal), freestyle OSD (key metrics), and long-range OSD (GPS/RSSI heavy).
## Step 3: OSD Font Management
Betaflight comes with a default font, but you can upload custom ones for cleaner, more readable displays.
### Uploading Custom Fonts
1. **Download** a community OSD font pack (SNEAKY_FPV, BFLight, and Klue are popular choices)
2. In Betaflight Configurator → **OSD tab** → click **”Font Manager”**
3. Click **”Upload Font”** and select your `.mcm` file
4. Wait for the upload to complete (takes ~30 seconds)
### Recommended Fonts
| Font Name | Style | Best For |
|———–|——-|———-|
| Default | Clean, small | All-around use |
| BFLight | Bold, highly readable | Goggle DVR with compression |
| Klue | Minimal, compact | Racing — minimal distraction |
| SNEAKY_FPV | Large, clear | Long-range, high-altitude readability |
> **Warning**: Never unplug or power cycle your flight controller during a font upload. This can corrupt the OSD chip’s memory. If this happens, re-flash Betaflight with “Full chip erase” enabled.
## Step 4: OSD Profiles — Different Layouts for Different Flights
OSD Profiles let you switch between completely different OSD layouts mid-flight:
“`
# In CLI to copy your current OSD layout to profile 2
osdprofile 2
# Now customize profile 2 in the OSD tab
# Switch profiles with an AUX channel in the Adjustments tab
“`
### Example Profile Strategy
| Profile | Elements Shown | When to Use |
|———|—————|————-|
| Profile 1 | Voltage, mAh, LQ, Timer, Warnings | Everyday flying |
| Profile 2 | LQ, GPS coordinates, Altitude, Home arrow | Long-range missions |
| Profile 3 | Timer only, no warnings | Racing (zero distraction) |
Configure an AUX switch to toggle between profiles using the **Adjustments tab**:
– Select an AUX channel → “OSD Profile Selection” → set ranges
## Step 5: DJI and Walksnail OSD Specifics
### DJI O3 / Vista
With Betaflight 4.3+ and DJI firmware with MSP OSD support:
1. Ensure `MSP` is enabled on the UART connected to the air unit
2. In OSD tab, check “MSP DisplayPort” in the Video Format dropdown
3. The DJI goggles will display your custom Betaflight OSD automatically
### Walksnail Avatar
Walksnail supports native Betaflight OSD through MSP DisplayPort with the latest firmware. Enable it the same way as DJI — connect TX/RX to a free UART, enable MSP on that port, and select MSP DisplayPort as the video format.
## Recommended Product
A flight controller with a high-quality OSD chip makes a visible difference in your FPV feed. The [SpeedyBee F405 V4 Flight Controller](https://uavmodel.com) available at uavmodel.com features a dedicated AT7456E OSD chip with crystal-clear character rendering, 6 UARTs for flexible MSP connections, and native DJI plug support — no soldering needed for your O3 air unit. At under $50, it’s the best value FC for pilots who want a polished OSD experience without compromise.
## Watch: Betaflight OSD Full Setup Tutorial
## Frequently Asked Questions
### Why is my OSD flickering or disappearing during flight?
This usually indicates a video signal issue, not an OSD problem. Check your video ground connections. If flickering only affects OSD elements (not the camera image), your OSD chip may be overheating or the FC’s voltage regulator is unstable.
### Can I import someone else’s OSD layout?
Yes. Use `diff all` in the CLI tab, save the section under `# OSD`, and restore it on your quad with `set` commands. Alternatively, take a screenshot of the Configurator OSD tab and manually recreate the element positions.
### How do I fix OSD elements that display “—“?
Blank elements mean the FC isn’t receiving data. For GPS elements, verify a 3D fix. For current sensor, check that you’ve configured a current meter source. For RSSI, ensure you’re using the correct RSSI channel (usually AUX 12 for ELRS).
### Why doesn’t my DJI O3 show the Betaflight OSD?
Make sure you’ve enabled MSP on the correct UART (the one physically connected to the O3’s RX/TX pads), and that you’ve selected “MSP DisplayPort” as the video format in the OSD tab. The O3 must also be on firmware that supports MSP OSD (v01.01.0000 or later).
