Q: Running Out of UART Ports: How We Wire GPS, VTX, and ELRS on the Same Flight Controller

Updated 3 min read

Quick Answer

Most flight controllers have 3 to 5 UART ports. Each peripheral (GPS, VTX with SmartAudio, ELRS receiver) needs its own UART. If you run out, drop a low-priority peripheral, use soft-serial, or upgrade to an F7 or H7 board with more ports.

Why We Keep Running Out of UARTs

Every FPV builder hits the same wall. You have your flight controller stack mounted, motors wired, then you try to plug in GPS, VTX, and ELRS and discover you are one UART short. We have been there dozens of times in our workshop.

A UART (Universal Asynchronous Receiver-Transmitter) is a serial communication port on your flight controller. Each one is a dedicated lane between the FC and one peripheral. The F405 chip found in most mid-range boards like the SpeedyBee F405 V5 gives you 4 usable UARTs. An F722 typically offers 5, and H7 boards like the Holybro Kakute H7 give you 6. We learned this the hard way after building a long-range rig with GPS, compass, telemetry radio, and SmartAudio VTX on an F405. We were one UART short and ended up desoldering the telemetry radio.

What Connects Where

Receiver (ELRS / Crossfire)

Your radio receiver is non-negotiable. An ELRS receiver like the Radiomaster RP1 V2 uses a single UART running CRSF protocol at 420000 baud. Do not share this port with anything else.

GPS Module

A GPS like the HolyBro M10 needs its own UART running at 115200 baud with GPS protocol selected in Betaflight. The M10 is our go-to because it locks satellites fast, typically under 30 seconds from a cold start on our test bench.

VTX with SmartAudio or Tramp

If your TBS Unify Pro supports SmartAudio, it talks to the FC over a half-duplex UART line. It needs a dedicated TX pad. Some FCs share a UART between SmartAudio and another peripheral. Check your board diagram carefully before soldering.

UART Planning: Our Workshop Method

Before soldering anything, we list every peripheral and assign it a UART. Here is the priority order we use on every build:

Priority Peripheral Protocol
1 (mandatory) ELRS receiver CRSF
2 (mandatory) VTX SmartAudio SmartAudio / Tramp
3 (recommended) GPS module GPS (NMEA / UBLOX)
4 (optional) Compass / Magnetometer I2C (not UART)

Notice that compass modules use I2C, not UART. This is a common misunderstanding. I2C devices share the same two wires (SDA and SCL), so a compass and barometer coexist without consuming extra UARTs.

What to Do When You Run Out

Drop the lowest-priority peripheral. On a freestyle quad, skip GPS. On a long-range build, set your VTX channel manually and free up the SmartAudio UART.

Upgrade your FC. The jump from F405 (3 UARTs) to F722 (5 UARTs) costs roughly the same and saves headaches. For ArduPilot builds with full sensor suites, an H7 class stack with 6+ UARTs is worth it. See our F4 vs F7 vs H7 comparison for details.

Use soft-serial. Betaflight can split one physical UART into two virtual ports. It works for low-bandwidth peripherals like GPS but uses CPU cycles. We avoid it on F405 boards and only use it on F7/H7 where headroom exists.

Common Mistakes We See

The number one mistake is crossing TX and RX. Your receiver TX pad connects to the FC RX pad on the same UART, and vice versa. We see this crossed on roughly a quarter of builds that come to our workshop for troubleshooting. The second mistake is wiring a peripheral but forgetting to enable it in the Betaflight Ports tab and Configuration tab. Both steps are required, and our wiring guide covers the full process.

FAQ

Q: How many UARTs does the SpeedyBee F405 V5 have?

A: Four usable UARTs. Enough for receiver, GPS, SmartAudio, and one spare. For most freestyle builds it is plenty.

Q: Can GPS and compass share a UART?

A: No. GPS uses UART, compass uses I2C. They connect to different pads entirely. GPS goes to a UART TX/RX pair. Compass goes to SDA/SCL pads.

Q: What is soft-serial?

A: A Betaflight feature that creates virtual serial ports in software, letting you connect more peripherals than your hardware UARTs allow. It works but uses CPU resources. Use it only on F7 or H7 boards.

Q: Do I need an F7 controller for GPS?

A: Not necessarily. An F405 with 3 UARTs can handle receiver, SmartAudio, and GPS. You only need more UARTs if you are running ArduPilot with multiple sensors or need telemetry on top of everything else.