OpenOSD-X is a project that integrates analog OSD and VTX functionality.
- Enables the use of 5.8GHz analog video when combined with digital-only FCs (without analog OSD)
- Provides both an SD version (same resolution as MAX7456) and an HD version capable of displaying more information
- Supports font updates directly from the Betaflight Configurator
- Uses a compact and affordable STM32G431KBT MCU, allowing OSD to run standalone
-
Connect the camera, OpenOSD-X, FC, and PC.
-
Power all devices. Connect a battery if needed.
-
Launch Betaflight Configurator.
-
Configure serial ports:
- Set the port connected to OpenOSD-X as VTX (MSP+DisplayPort).
- After rebooting all devices, OSD and VTX parameters will be detected.
-
Configure OSD:
- Select HD (not NTSC/PAL).
- Resolution is automatically configured based on the camera and firmware.
-
Configure VTX:
- The VTX table is built-in and automatically configured.
- Set the channel and output power as needed.
You can update the firmware via FC (SerialPassthrough) or USB-Serial (FTDI).
-
Connect the OpenVTX board, FC, and PC.
-
Run the Python script (automatically detects COM port and flashes):
python flashOpenOSD-X.py hex-file
⚠ The Betaflight serial port (DisplayPort-VTX) must be enabled.
The latest HEX files are available here: https://github.com/OpenOSD-X/OpenOSD-X/actions
Releases are provided per hardware and resolution:
openosd-x_breakoutboard_sd.hex…… Standard-resolution version for breakout boardsopenosd-x_breakoutboard_hd.hex…… High-resolution version for breakout boards
Font updates can be done directly from the Betaflight Configurator.
- Requires Betaflight 2025.12.0 or later
- Use Betaflight firmware built with the custom define
"USE_MSP_DISPLAYPORT_FONT" - Make sure your Configurator version supports this feature
https://github.com/OpenOSD-X/OpenOSD-X/tree/main/doc
You can test the OSD portion using ST Nucleo or WeACT development boards. Although the target MCU is STM32G431KBT, it has also been confirmed to work on STM32G431C and G473.
Use an ST-LINK to flash the following two HEX files:
- Application firmware:
openosd-x_***.hex - Bootloader:
openosd-x_bootloader.hex
A lookup table for VTX PA (Power Amplifier) voltage settings. Not required if you don’t use the VTX function. Example (for breakout board):
| 5600MHz | 5650MHz | 5700MHz | 5750MHz | 5800MHz | 5850MHz | 5900MHz | 5950MHz | 6000MHz | |
|---|---|---|---|---|---|---|---|---|---|
| 14dBm(25mW) | 1300mV | 1330mV | 1345mV | 1400mV | 1480mV | 1590mV | 1670mV | 1710mV | 1760mV |
| 20dBm(100mW) | 1910mV | 1970mV | 1980mV | 2120mV | 2270mV | 2430mV | 2540mV | 2620mV | 2750mV |
If you design your own board, you’ll need to create a custom VPD table to match your PA and components. Use the dev firmware to measure and generate the correct values.
The development firmware is used for TX tuning and VPD table creation.
[PC (Terminal)] --- UART (115200bps) --- [OpenOSD-X (dev build)] --- 5.8GHz --- [Measurement Device]
> vtx_set 5800 1000 ...... Frequency 5800MHz, VPD target voltage 1000mV
Adjust the voltage until the desired TX output is achieved, and summarize the results into a VPD table.
Build using standard cmake procedures.
-
Install
srecordin advance:$ sudo apt-get install -y srecord
-
Build:
$ mkdir -p build && cd build $ cmake -DTARGET=breakoutboard .. $ make
-
Example cmake options:
$ cmake -DTARGET=novtx # build without VTX feature $ cmake -DRESOLUTION_HD=ON # build HD version
| Address | Description |
|---|---|
| 0801F800–0801FFFF | Per-device VPD table (optional) |
| 0801B800–0801F7FF | Font data |
| 0801B000–0801B7FF | Configuration storage |
| 08004200–0801AFFF | OpenOSD-X application |
| 08004000–080041FF | OpenOSD-X application header |
| 08000000–08003FFF | Bootloader |
| Address | Description |
|---|---|
| 08004000–08004003 | Application size |
| 08004004–08004007 | Application CRC (STM32) |
| 08004080–0800408F | Board name (string) |
| 08004090–0800409F | Version (string) |
Official Discord Server: https://discord.gg/YtnWQyGRB6
OpenOSD-X is open-source software provided free of charge and without warranty. Parts of the source code are based on the following projects:
- Betaflight
- OpenVTx
- OpenPixelOSD

