A client ask us some UART MSP protocol in drone radio link.
Q: Is OSD via UART MSP protocol supported at your drone radio link?
A: Yes, it is supported.
In the drone world, the combination of UART (Universal Asynchronous Receiver/Transmitter) and the MSP (MultiWii Serial Protocol) is a fundamental communication system that connects a flight controller to various peripheral devices. Here is a detailed explanation of UART MSP protocol.
Table of Contents
The Roles of UART and MSP
To understand how they work together, let’s break down their individual roles:
- UART (The Physical Highway): UART is a hardware interface and a protocol for asynchronous serial communication. It defines how bytes of data are turned into a serial bit stream and sent over physical wires (TX for transmit, RX for receive). In a drone, a UART is a physical serial port on the flight controller.
- MSP (The Traffic Rules): MSP is a software-based, binary communication protocol. It defines a standardized message format for exchanging data and commands between the flight controller and other devices. It specifies how to package information like battery voltage or flight mode into a known structure so the receiving end can correctly interpret it.
When we talk about the “UART MSP protocol,” we refer to using the MSP messages transported over a UART serial connection. The UART provides the physical data bus, while MSP defines the language spoken on that bus.
How UART and MSP Work Together in Drones
This combination is primarily used for bidirectional communication between the flight controller and peripherals that need to talk its language. The typical workflow is as follows:
- A peripheral device (e.g., an OSD module) is connected to the flight controller via a UART port using its TX, RX, and GND wires.
- The flight controller’s firmware (like Betaflight or iNav) is configured to use the
MSPprotocol on that specific UART. - The peripheral can then send MSP commands to request data from the flight controller. For example, an OSD constantly requests attitude and battery data to overlay on the video feed.
- Conversely, a ground station configurator (like Betaflight Configurator) can use MSP to send commands to the flight controller, such as setting parameters or requesting its status.
Key Applications and Devices
MSP over UART is crucial for connecting several key components in a drone ecosystem:
- FPV Goggles OSD: This is one of the most common uses. Goggles from DJI or FatShark use MSP to request and display OSD information like battery voltage, RSSI, and flight mode from the flight controller onto your video feed.
- On-Screen Display Units: Standalone OSD modules (like MWOSD) rely on MSP to get the data they display.
- External Sensors: Some sensors, like certain Lidar rangefinders or digital airspeed sensors, can use the MSP protocol to send their readings directly to the flight controller.
- Radio Telemetry: While high-level systems often use MAVLink, some simpler telemetry links (for example, in some Wi-Fi-based systems) can be configured to transparently transmit MSP data to a ground station.
Configuration and Practical Notes
Here’s what you need to know for practical use:
- Configuration: You must enable MSP on a specific UART port within your flight controller’s firmware (e.g., Betaflight/iNav/ArduPilot). This is often done by setting the serial port’s protocol to
MSPor, in ArduPilot’s case, settingSERIALx_PROTOCOL = 32for general MSP or33for DJI FPV goggles. - Baud Rate: A common baud rate is 115200.
- Limitations: It’s important to note that MSP is generally not used for configuring ArduPilot flight controllers; its primary role there is for OSD and sensors.

Ask A Question
Thank you for your response. ✨