INAV OSD HUD and ESP32 Radar
I. OSD HUD Function
HUD is a feature of INAV OSD that displays various points of interest (POI) as "3D" markers on the screen, allowing pilots to visually see the direction to relevant locations. Currently supported display items include:
- Home point (return point)
- Nearby aircraft (other aircraft information transmitted via ESP32 LoRa module)
- Next waypoint in mission (when executing autonomous route flight)
HUD Configuration Process
1. Enable Crosshair
Go to INAV Configurator → OSD → Enable crosshairs
2. Enable HUD Content (CLI Commands)
Can be set in CLI, recommended parameters as follows:
set osd_crosshairs_style = DEFAULT # 十字准星样式(默认样式)
set osd_horizon_offset = 0 # 水平线偏移量
set osd_camera_uptilt = 0 # FPV 摄像头抬头角度(多旋翼常用 +5 ~ +30 度,固定翼常为负)
set osd_camera_fov_h = 135 # 摄像头水平视角(可根据镜头实际焦距微调)
set osd_camera_fov_v = 85 # 摄像头垂直视角
set osd_hud_margin_h = 3 # HUD 左右边距
set osd_hud_margin_v = 3 # HUD 上下边距HUD Visible Items Configuration (CLI)
| Item | Description | CLI Parameter Example |
|---|---|---|
| Homing Arrows | Enable small arrows around crosshair indicating return direction | set osd_hud_homing = ON |
| Home Point | Enable 3D display of home point "H" | set osd_hud_homepoint = ON |
| Radar Aircrafts | Maximum number of nearby aircraft to display (A/B/C/D, max 4) | set osd_hud_radar_disp = 3 |
| Radar Range Min | Minimum distance for radar display (meters) | set osd_hud_radar_range_min = 10 |
| Radar Range Max | Maximum distance for radar display (meters) | set osd_hud_radar_range_max = 4000 |
| Waypoints | Number of next waypoints to display (0-3) | set osd_hud_wp_disp = 2 |
HUD View Key Parameter Explanations
- osd_camera_uptilt: Camera tilt angle setting (positive values point up, negative values point down)
- osd_camera_fov_h / v: Camera horizontal/vertical field of view angle, appropriately increase 5-10° depending on lens focal length
- osd_hud_margin_h / v: Safe distance between HUD content and OSD edges to avoid overlap
- osd_crosshairs_style: Crosshair style (7 options available)
- osd_horizon_offset: Vertical offset of the entire horizon line + AHI + roll bar
Example Application Scenarios
- Fixed-wing mission flight: Real-time visualization of home point/waypoint positions via HUD
- Multi-aircraft formation: Display surrounding aircraft positions with ESP32 LoRa module
- High tilt angle camera configuration: Setting correct tilt angle and view ensures HUD proper alignment
2. Radar Description
2.1 Craft Radar Layout Description
Craft Radar has the same layout for both Analog and Digital video transmission. However, note:
- The Digital version supports color display but must use a video system that fully supports the INAV font set.
- For example, DJI systems currently do not support the complete font set, so not all OSD elements can be fully displayed.
Accuracy and Limitations
Craft Radar, while very useful, is not completely accurate. The main sources of error are:
| Source | Description |
|---|---|
| Aircraft heading error | During aggressive aircraft turns, heading deviation occurs. The more stable the flight, the more accurate the heading. |
| POI position depends on attitude and heading | The position of the HUD tracking point is affected by the aircraft's current attitude and heading. A deviation of a few degrees can cause display offset. |
| Roll angle not considered | The current tracking logic does not consider aircraft roll angle to maintain speed and simplify calculations, so tracking becomes inaccurate during high bank angles. |
| OSD display is character grid-based | Since OSD is displayed based on a character grid (not pixel-based), radar elements are limited by character alignment and cannot be precisely positioned. |
| Analog video transmission center offset | Because the OSD grid has even columns/rows, the crosshair cannot be strictly centered in analog video transmission. |
| Position update frequency | The ESP32 module updates at 2Hz (10Hz in FormationFlight mode). During high-speed flight, delays occur due to relative motion. |
Recommendations
- It is recommended to use the radar with the FormationFlight module, which can significantly improve position update frequency.
- Stable flight effectively improves radar accuracy, especially for POI markers and target orientation.
- HUD accuracy decreases during high bank angle flights; it is not recommended to rely on its positioning function during aggressive rolls.
- When using DJI OSD, note that some radar elements may not display correctly.
2.2 ESP32 LoRa Module
INAV Radar is a long-range "aircraft radar" system implemented using an ESP32 LoRa module that can:
- Display the position of up to 4 nearby aircraft in real-time
- Mark other aircraft on the HUD (3D Head-Up Display) with symbols A/B/C/D
- Form aerial "traffic awareness" when used with INAV flight controller and OSD display system
1. Hardware Connection Method (Cannot use SoftSerial!)
Connect the ESP32 module to an available hardware UART port on the flight controller as follows:
| ESP32 Pin | Flight Controller Pin |
|---|---|
| TX | UART_RX |
| RX | UART_TX |
| 5V | 5V |
| GND | GND |
📌 Notes:
- Cannot use SoftSerial because the speed is insufficient and data delay is high
- It is recommended to use hardware UART ports with number 2 or higher
2. INAV Configurator Settings
In the 📍 Ports tab:
- Find the UART port where you connected the ESP32
- Enable MSP (Multiwii Serial Protocol)
- Set baud rate to 115200
- No need to set other protocols (such as GPS/SBUS)
3. Enable Display in CMS Menu
Go to OSD menu → HUD settings:
OSD > HUD > Displayed items
Radar max aircraft = 4This will allow the OSD to display up to 4 telemetry aircraft on the screen.
4. Startup Verification
When you power on the flight controller:
- If the connection is correct
- The ESP32 will output the detected flight controller version number on its serial terminal (e.g., INAV 7.1)
Display Effect
On the OSD HUD, you will see:
- Icons A/B/C/D representing other aircraft
- Their relative direction (calculated via compass)
- (Recommended) Combine directional arrows with clock direction indicators for a more intuitive understanding of the other aircraft's flight path
2.3 FormationFlight Project Introduction
FormationFlight is another formation communication solution independent of the INAV ESP32 Radar project:
| Comparison Point | INAV ESP32 Radar | FormationFlight |
|---|---|---|
| Communication Protocol | ESP32 + LoRa | ELRS hardware (smaller and lighter) |
| Supports INAV OSD Display | ✅ | ✅ |
| Update Frequency | 2Hz (radar) | Up to 10Hz (more real-time) |
| Cost and Size | Slightly higher | Lower, more lightweight |
| Communication Features | Multi-aircraft marking | Multi-aircraft + stronger real-time capability |
| Support Tools | INAV Configurator | Independent FormationFlight Discord community support |
⚠️ The two options are not mutually exclusive; INAV supports both schemes simultaneously, allowing users to choose independently.
2.3.1 OSD Display Content Analysis
Regardless of which radar method is used (ESP32/FormationFlight), the HUD contains the following information:
1. Home Icon (Home/Letter H)
- Represents the recorded home point
- Displays according to system units: meters/kilometers or feet/miles
- Only appears after the flight controller is armed
2. POI Icon (Letters A, B, C...)
- Represents nearby aircraft or ground nodes
- Displayed content:
- Letters: A/B/C/D (maximum 4)
- Distance: Same units as above
- Signal quality: 4 bars = 100%, 3 bars = 75%, 2 bars = 50%, 1 bar = 25%, X = severe packet loss
- Relative heading arrow: Up = flying in same direction, Down = flying in opposite direction, Left/Right = flying laterally
3. Waypoint Icon (Numbers 1, 2, 3...)
- Represents the current mission waypoints
- Icon displays as: Number + mission icon
2.3.2 Troubleshooting Guide
ESP32 Displays "NoFC"
Indicates that the flight controller cannot be detected. Check the following:
- Confirm wiring (4 wires total): 5V, GND, TX (connected to FC RX), RX (connected to FC TX)
- Correct UART serial port settings: Enable MSP, set baud rate to 115200
Display Prerequisites
| Display Item | Requires GPS? | Requires Arming? | Real-time only with Magnetometer? |
|---|---|---|---|
| Home Point | ✅ | ✅ | No |
| A/B/C Enemy Radar | ✅ | No | No (Heading can be calculated via GPS during flight) |
| Waypoint | ✅ | No | No |
📝 Note: Without a magnetometer (e.g., flying wing), the HUD can only determine azimuth during aircraft flight; 3D markers will not appear when stationary.
Missing Character Icons?
If you find that some characters are missing or displaying as garbled in the HUD or OSD:
- Go to INAV Configurator → OSD page
- Click Upload Font in the upper right corner
- Upload the latest font file that supports HUD (recommended to use official INAV font)
————This article is referenced from the INAV official website; https://github.com/iNavFlight/inav/wiki/OSD-Hud-and-ESP32-radars