FlySpark logo
Betaflight logoBetaflightBetaflight setup guidesUpdated

Betaflight ports: MSP, serial RX, GPS and the other UART jobs

Betaflight ports are the UARTs on the flight controller. The Ports tab is one card per port: the USB virtual COM port, and UART1, UART2 and the rest of whatever the firmware reports. On each card you turn MSP on or off, and on a real UART you can turn on serial RX and pick one telemetry protocol, one sensor and one peripheral.

A port assignment does not finish the device. A serial receiver still needs its protocol on the Receiver tab. A GPS still needs the GPS feature on the GPS tab. A SmartAudio or Tramp wire still needs the Video TX tab. The Ports tab only reserves the UART and the baud. Connect over USB or Bluetooth in Chrome or Edge, or from the Android or iPhone app.

Free. Hardware connections need Chrome or Edge on a computer; phones use the FlySpark app.

  • Free
  • Nothing to install
  • Demo without hardware

In short

The Ports tab gives each UART one job per group: MSP, serial receiver, telemetry, a sensor such as GPS, or a peripheral such as a VTX. FlySpark shows a card per port, including USB, and MSP stays on for that USB port. A receiver still has to be set on the Receiver tab after serial RX is enabled.

Key facts

  • Each port is a card. USB is marked as the virtual COM port.
  • MSP on USB cannot be switched off. Other UARTs can enable or disable MSP.
  • Serial RX is a switch on every port except USB.
  • Telemetry, sensor and peripheral groups allow one function each, or Disabled.
  • Betaflight telemetry includes FrSky, HoTT, LTM, SmartPort, MAVLink and iBus.
  • Betaflight sensor input includes GPS, ESC sensor and Benewake LiDAR.
  • Baud choices include AUTO, 9600, 115200, 400000, 460800, 921600 and higher, up to 2470000.
  • Betaflight logoBetaflight
  • INAV logoINAV
  • ArduPilot logoArduPilot
  • PX4 logoPX4
  • BLHeli_S
  • Bluejay logoBluejay
  • AM32 logoAM32
  • ExpressLRS logoExpressLRS
  • EdgeTX logoEdgeTX
  • DroneCAN logoDroneCAN
  • MAVLink logoMAVLink

Try it

Share a port

Give GPS or RX to two UARTs and the line reports the clash.

UART1
UART2
UART3

No clash

Betaflight

Features

  • 01

    One card per port

    The firmware lists the ports. USB is the virtual COM port and uses a USB icon. The others use a UART icon and the name the board reports.

  • 02

    MSP

    Every card has an MSP switch and, when it is on, an MSP baud. On USB the switch cannot be turned off, so the cable you used to connect keeps working.

  • 03

    Serial RX

    A switch on every port except USB. Enable it on the UART your receiver's TX and RX wires use. SBUS on a pad that is not a UART is not this switch.

  • 04

    One function per group

    Telemetry, sensor and peripheral are each a single choice: Disabled, or one protocol. Turning one on clears the others in that group. You cannot put GPS and a rangefinder on the same UART.

  • 05

    Baud

    When the chosen function has a baud, the card shows it. Betaflight's list runs from AUTO and 9600 through 115200, 400000, 460800, 921600 and on up to 2470000.

  • 06

    Betaflight functions

    Telemetry: FrSky, HoTT, LTM, SmartPort, MAVLink, iBus. Sensor input: GPS, ESC sensor, Benewake LiDAR. Peripherals: Blackbox, VTX SmartAudio, VTX IRC Tramp, VTX MSP plus DisplayPort, RunCam device, FrSky OSD.

  • 07

    INAV functions

    INAV uses the same cards with its own list, including rangefinder, optical flow, MSP DisplayPort, DJI FPV, ESC telemetry, SBUS output, gimbal and head tracker. A SIM text function appears for telemetry when the firmware has it.

What the Ports tab is deciding

A UART has two wires, TX and RX, and it can only speak one serial stream at a time. The groups stop you assigning two jobs that would both need that stream. MSP can share the port in the way the firmware allows, which is why it is its own switch. Serial RX is its own switch too, and only on a hardware UART. USB is kept for the configurator.

The choice is stored as bits on the port. Picking a new function in a group clears the other functions in that group first, then sets the one you picked. Disabled clears the group. Baud is stored separately for MSP, GPS-class sensors, telemetry and peripherals, and the row appears only when a function in that group is active.

Serial RX and the Receiver tab

Turning on serial RX reserves the UART for the receiver. It does not choose CRSF, SBUS, iBus or the other protocols. Those are on the Receiver tab, and they have to match the receiver you actually soldered. ExpressLRS and Crossfire use a serial protocol, usually CRSF, on this UART. The binding phrase for a UART ExpressLRS receiver is not on the Ports tab. It is the ExpressLRS tool, over the receiver's Wi-Fi, in the phone app.

If the stick bars on the Receiver tab stay still, check this switch first, then the protocol, then the physical TX-to-RX crossing: the receiver's TX pad goes to the flight controller's RX pad.

GPS, ESC sensor and telemetry

GPS is a sensor-input choice. After you save it, open the GPS tab and turn the GPS feature on, then pick the protocol and baud behaviour there. The Ports baud and the GPS tab baud have to agree with the module. ESC sensor is the serial RPM wire some ESCs use instead of bidirectional DShot. Benewake LiDAR is the rangefinder choice on Betaflight.

Telemetry is the stream back to the radio: SmartPort, CRSF is not in this list because CRSF rides the serial RX port, and the radio protocols here are FrSky, HoTT, LTM, SmartPort, MAVLink and iBus. Pick the one your radio's receiver actually speaks. A second telemetry wire on a different UART is a different card.

VTX, blackbox and camera control

SmartAudio, IRC Tramp and MSP plus DisplayPort are peripherals. The VTX tab uses that UART once it is assigned. Putting SmartAudio on the wrong UART is why a video transmitter stays at the default channel. RunCam device control and FrSky OSD are the other peripheral choices on Betaflight.

Blackbox as a peripheral is an external logger on a UART, not the onboard flash chip. Onboard logging is the Blackbox tab. Do not assign the Blackbox peripheral unless you have that logger.

INAV ports

INAV's telemetry list adds a SIM text function and SmartPort master. Sensors add a rangefinder and optical flow. Peripherals add MSP DisplayPort, DJI FPV, ESC telemetry, SBUS output, a gimbal, a head tracker and a log function. The card layout is the same: one choice per group, baud when the function needs it, MSP kept on for USB.

INAV 8 drops some older function bits. FlySpark hides those bits on INAV 8 so you are not offered a function the firmware removed. If a device from an older guide is missing, it is because this firmware does not have that function, not because the port is broken.

Save the ports, then reboot when the save bar asks. A UART change often does not apply to the running firmware until that reboot, and the configurator may disconnect if you changed the port you were using. Come back on USB, open the Receiver tab, and move the sticks before you solder anything else. A Bluetooth module or a Wi-Fi MSP bridge also needs MSP enabled on the UART it is wired to, at a baud both ends share. USB itself does not need that, because its MSP switch cannot be turned off.

At a glance

Betaflight port functions

TelemetryFrSky, HoTT, LTM, SmartPort, MAVLink, iBus
Sensor inputGPS, ESC sensor, Benewake LiDAR
PeripheralsBlackbox, SmartAudio, IRC Tramp, MSP + DisplayPort, RunCam, FrSky OSD
Serial RXA switch, not on USB
USBMSP stays on

Betaflight

Put a receiver and a GPS on two UARTs

  1. Open Ports

    Connect and open the Ports tab. Find the UART printed on the silkscreen next to the receiver pads.

  2. Enable serial RX

    Turn serial RX on for that UART only. Leave it off everywhere else. Save and reboot if the save bar says to.

  3. Set the receiver protocol

    Open the Receiver tab and choose the protocol the receiver speaks, such as CRSF for ExpressLRS or Crossfire.

  4. Assign GPS on a different UART

    On a free UART, set Sensor input to GPS, set the baud the module uses, then enable GPS on the GPS tab.

Troubleshooting

Common problems and fixes

  • Problem

    Receiver tab is stuck at the centre

    Fix

    Serial RX must be on for the UART you wired, and off for the others. Then set the protocol. Check TX and RX are crossed.

  • Problem

    The configurator drops after a save

    Fix

    You turned MSP off on the port you are using, or you piled another function onto USB. On a hardware UART, leave MSP on only where you need a Bluetooth or Wi-Fi bridge.

  • Problem

    GPS shows no satellites

    Fix

    The sensor choice and the baud have to match the module, and the GPS feature has to be on. A GPS needs a clear view of the sky before it will fix.

  • Problem

    A function from an old guide is missing

    Fix

    The list is what this firmware supports. INAV 8 hides functions it removed. Pick the protocol the device actually speaks on this version.

Glossary

Glossary of terms

UART
A hardware serial port. One TX pad and one RX pad.
MSP
The protocol FlySpark uses to talk to Betaflight and INAV. USB keeps it on.
Serial RX
The port function that reserves a UART for the receiver. The protocol is chosen on the Receiver tab.

FAQ

Frequently asked questions

What is a Betaflight UART?

A serial port on the flight controller. The Ports tab lists each one the firmware reports, plus USB. Each UART can take MSP, and one choice from each function group.

Why can't I turn MSP off on USB?

USB is how the configurator is talking to the board. The MSP switch on that port stays on so you do not disconnect yourself.

Where do I set CRSF or SBUS?

Serial RX on the Ports tab reserves the UART. The protocol is on the Receiver tab. Both have to be set.

Can GPS share the receiver UART?

No. Sensor input and serial RX are separate, and a UART should not be asked to be both the receiver and the GPS. Use two UARTs.

Which baud does GPS use?

The baud on the GPS function, often 115200 or 57600, matching the module. The GPS tab has its own auto-baud switch. If the module is silent, set both ends to the same number.

Why is my VTX missing from the Video TX tab?

SmartAudio, Tramp or MSP DisplayPort has to be selected on the UART the VTX wire uses. Until that peripheral is set, the VTX tab has no port to talk to.

What is the ESC sensor port?

A serial RPM wire from ESCs that do not report RPM over bidirectional DShot. It is a sensor-input choice, not the motor signal itself.

Do INAV ports look the same?

Yes. The groups are Telemetry, Sensors and Peripherals, with INAV's own protocols, including MSP DisplayPort, DJI FPV and ESC telemetry.

References

Sources

The official documentation behind the background facts on this page.

  1. Betaflight WikiBetaflight · betaflight.com
  2. Betaflight Setup GuideBetaflight · betaflight.com
  3. Betaflight FailsafeBetaflight · betaflight.com
  4. INAV WikiINAV on GitHub · github.com

Tools

See every FlySpark tool

Ready to try it?

Free. Hardware connections need Chrome or Edge on a computer; phones use the FlySpark app.