UAV Drone Academy
← Back to Blog

FPV Drone Building

Published on March 14, 2026

Chapter 22: Betaflight Ports and Configuration: Setting Up the Flight Controller

Chapter 22: Betaflight Ports and Configuration: Setting Up the Flight Controller

In the previous chapter, we connected the drone to Betaflight for the first time.

That was an important milestone.

We confirmed that:

  • the flight controller connects to the computer
  • Betaflight detects the board
  • the Setup tab opens correctly
  • the gyro reacts when the drone moves
  • the basic software connection is working

Now we are ready to begin the real configuration process.

The first major step is understanding and configuring:

Betaflight Ports

The Ports tab tells the flight controller which devices are connected to which communication ports.

This is extremely important because the flight controller needs to communicate with several components, including:

  • the ExpressLRS receiver
  • the VTX control wire
  • possible telemetry systems
  • possible GPS modules later
  • other serial devices

For beginners, the Ports tab can look confusing at first.

You may see terms like:

  • UART1
  • UART2
  • MSP
  • Serial RX
  • Telemetry Output
  • Sensor Input
  • Peripherals
  • SmartAudio
  • IRC Tramp

Do not worry.

In this chapter, we will break everything down slowly and focus only on what our beginner 5-inch FPV build actually needs.

Our goal is simple:

configure the flight controller communication ports correctly so the receiver and VTX control can work later.

What Is a UART?

Before using the Ports tab, we need to understand one important concept:

UART

A UART is a communication port on the flight controller.

It allows the flight controller to exchange data with other devices.

Common devices that use UARTs include:

  • radio receivers
  • GPS modules
  • VTX control systems
  • digital FPV systems
  • telemetry devices

You can think of each UART as a communication channel.

If a device is wired to UART2, Betaflight must also be configured to use UART2 for that device.

Physical wiring and software configuration must match.

Understanding RX and TX Pads

UARTs usually have two important pads:

TX

TX means transmit.

It sends data out from the flight controller.

RX

RX means receive.

It receives data into the flight controller.

For UART communication, devices usually connect crossed:

TX goes to RX

RX goes to TX

For example, if your ExpressLRS receiver is wired to UART2:

  • receiver TX → flight controller RX2
  • receiver RX → flight controller TX2

Then, in Betaflight, UART2 must be configured for the receiver.

Why Ports Configuration Matters

If the Ports tab is configured incorrectly, components may be wired correctly but still not work.

For example:

If the receiver is physically connected to UART2 but Serial RX is enabled on UART1, Betaflight will not read the receiver correctly.

The wiring may be good.

The receiver may be powered.

The radio may be bound.

But Betaflight will still not see stick movement because the wrong port is enabled.

That is why this chapter matters.

Before Changing Ports

Before changing anything, confirm:

  • propellers are removed
  • drone connects to Betaflight by USB
  • LiPo battery is disconnected unless needed
  • you know which UART your receiver is wired to
  • you know which pad your VTX control wire is connected to
  • you have the flight controller wiring diagram available

Do not guess.

Always use the wiring diagram for your exact flight controller.

The Ports Tab

Open Betaflight and go to:

Ports

This tab displays the available communication ports on the flight controller.

Depending on your board, you may see:

  • USB VCP
  • UART1
  • UART2
  • UART3
  • UART4
  • UART5
  • UART6
  • or more

Not every flight controller has the same number of UARTs.

This is normal.

Understanding USB VCP

USB VCP is the USB connection between the flight controller and your computer.

This is what allows Betaflight to communicate with the board through USB.

In most normal setups, you should leave USB VCP alone.

Do not disable MSP on USB VCP.

If you disable the wrong USB communication setting, you may make it harder to reconnect to the board.

For beginners:

do not change USB VCP settings

Understanding MSP

MSP means:

MultiWii Serial Protocol

In simple beginner terms, MSP is used for communication between Betaflight and external devices or configuration tools.

On the Ports tab, MSP is usually enabled for USB VCP.

Some advanced systems also use MSP on UARTs, but our beginner analog build does not need advanced MSP configuration right now.

Important:

do not enable MSP randomly on UARTs

Enabling MSP on the wrong UART can create conflicts.

Important Warning About MSP and Serial RX

Betaflight documentation warns that MSP and Serial RX should not be enabled on the same UART because this creates a conflict. Betaflight may refuse to save incompatible port settings to prevent unintended behavior.

For beginners, the rule is simple:

each UART should have one clear job

If UART2 is used for the receiver, do not also use it for MSP.

Keep the configuration clean.

Setting Up the Receiver Port

Our build uses:

ExpressLRS

Most ExpressLRS receivers communicate with Betaflight using:

CRSF

This is a serial receiver protocol.

That means we need to enable:

Serial RX

on the UART where the receiver is physically connected.

How to Know Which UART to Use

Look at your wiring.

If the receiver is soldered to:

  • RX1/TX1, it is UART1
  • RX2/TX2, it is UART2
  • RX3/TX3, it is UART3
  • RX4/TX4, it is UART4

Betaflight’s setup guide explains the same logic: RX2/TX2 correspond to UART2, RX1/TX1 to UART1, and Serial RX should be enabled on the UART where the receiver is connected.

Example:

If your receiver wires are connected like this:

  • receiver TX → RX2
  • receiver RX → TX2

then your receiver is connected to:

UART2

In the Ports tab, enable:

Serial RX on UART2

Then save and reboot.

What Not to Do

Do not enable Serial RX on multiple UARTs.

Do not enable Serial RX on a UART that has nothing connected.

Do not enable Serial RX on the same UART used for another device.

For our beginner build, only one UART should be assigned to the receiver.

Setting Up VTX Control

Our analog VTX may have a control wire.

This control wire allows Betaflight to control VTX settings such as:

  • band
  • channel
  • power level
  • pit mode

Common analog VTX control protocols include:

  • SmartAudio
  • IRC Tramp

Betaflight documentation explains that SmartAudio or IRC Tramp should be selected on the correct UART in the Ports tab, usually through the Peripherals dropdown.

How VTX Control Is Wired

Usually, analog VTX control uses one wire connected to a flight controller TX pad.

For example:

  • VTX SmartAudio wire → TX3

If the VTX control wire is connected to TX3, then in Betaflight, you configure UART3 for VTX control.

You do this in the Ports tab under:

Peripherals

Then select:

  • TBS SmartAudio
  • IRC Tramp

depending on your VTX.

Example VTX Control Setup

If your VTX SmartAudio wire is connected to TX3:

  • go to Ports tab
  • find UART3
  • go to Peripherals
  • select TBS SmartAudio
  • save and reboot

If your VTX uses IRC Tramp:

  • go to Ports tab
  • find the correct UART
  • go to Peripherals
  • select IRC Tramp
  • save and reboot

Do not select both.

Use the protocol supported by your specific VTX.

What If You Do Not Connect VTX Control?

The VTX can still transmit video without SmartAudio or Tramp, depending on the model.

But without VTX control, you may need to change settings manually using:

  • buttons on the VTX
  • LEDs
  • manufacturer-specific procedures

For beginners, VTX control through Betaflight is much easier.

That is why we recommend wiring and configuring it when possible.

What About GPS?

Our beginner build does not include GPS yet.

So do not configure GPS in the Ports tab now.

GPS can be added later as an upgrade.

For now, keeping the build simple is part of the strategy.

Do not enable GPS on random UARTs.

Unused features should stay disabled.

What About Telemetry Output?

ExpressLRS can provide telemetry through the receiver link.

However, beginners do not need to overcomplicate telemetry settings at this stage.

For a basic ELRS setup, the most important thing is:

  • receiver wired correctly
  • Serial RX enabled on the correct UART
  • receiver protocol configured correctly later
  • radio link working

Telemetry details can be refined later if needed.

Save and Reboot

After changing ports, click:

Save and Reboot

Betaflight will restart the flight controller.

After reconnecting, return to the Ports tab and confirm that your settings were saved.

This is important.

If settings do not save, there may be a conflict.

For example:

  • MSP and Serial RX enabled on the same UART
  • incompatible functions selected on one port
  • wrong configuration combination

If settings reset after saving, inspect for conflicts.

Basic Ports Setup for Our Beginner Build

A typical beginner configuration may look like this:

USB VCP

MSP enabled.

Used for Betaflight connection.

UART for ExpressLRS Receiver

Serial RX enabled.

Example:

  • UART2 → Serial RX enabled

UART for VTX Control

Peripheral selected.

Example:

  • UART3 → TBS SmartAudio

Other UARTs

Leave disabled unless needed.

This keeps the configuration simple and clean.

Important Note About Exact UART Numbers

The exact UART numbers depend on your flight controller and wiring.

Do not copy UART numbers blindly from another build.

Always match Betaflight settings to your actual wiring.

The correct question is not:

“Which UART should everyone use?”

The correct question is:

“Which UART did I wire this component to?”

That is the UART you configure.

The Configuration Tab

After the Ports tab, the next important area is the Configuration tab.

In this chapter, we will only introduce the basic concepts.

Full receiver setup, modes, motors, OSD, and PID topics will be handled in later chapters.

Open:

Configuration

Here you will see major flight controller settings.

For beginners, do not change everything.

We only need to understand the most important sections.

Mixer

For a normal 5-inch FPV drone, the mixer should be:

Quad X

This is the standard configuration for a four-motor quadcopter.

Most modern flight controllers already default to Quad X.

Do not change this unless you know exactly why.

ESC / Motor Protocol

Betaflight uses a motor protocol to communicate with the ESC.

Modern FPV builds commonly use:

DShot

DShot is a digital ESC protocol.

For many modern 5-inch builds, common options include:

  • DShot300
  • DShot600

For beginners, the default setting on a modern stack is often already appropriate.

Do not change motor protocol randomly.

Motor protocol configuration will become more relevant when we check motor behavior later.

Receiver Mode

For our ExpressLRS receiver, the receiver mode should be:

Serial-based receiver

Betaflight’s Receiver tab documentation explains that most modern receivers communicate over serial protocols such as CRSF or SBUS.

Since ExpressLRS normally uses CRSF, this is the correct direction for our build.

The detailed receiver configuration will be handled in the next chapter.

Serial Receiver Provider

For ExpressLRS, the serial receiver provider is normally:

CRSF

This tells Betaflight how to interpret the receiver signal.

Do not select SBUS, Spektrum, or other protocols for ELRS unless you are doing something very specific and know why.

For our build:

ELRS uses CRSF

Board and Sensor Alignment

If the flight controller was mounted with the arrow pointing forward, board alignment may not need changes.

If the board was rotated during installation, Betaflight must be told about that rotation.

For beginners, this is one reason we recommended mounting the flight controller arrow forward whenever possible.

In this chapter, do not adjust board alignment unless the 3D model clearly moves incorrectly and you understand the mounting orientation.

We can verify this carefully later.

Accelerometer

For FPV drones, the accelerometer is mainly used for self-level modes such as:

  • Angle Mode
  • Horizon Mode

Many freestyle pilots eventually fly in Acro Mode, where the accelerometer is not used for self-leveling.

However, for beginners, Angle Mode can be useful during early tests.

So leaving the accelerometer enabled at this stage is reasonable.

Arming Settings

Betaflight includes safety settings that prevent arming under certain conditions.

Do not disable safety features randomly.

If the drone refuses to arm later, Betaflight usually gives an arming disable flag explaining why.

We will handle arming setup later when configuring modes and receiver controls.

Motor Stop

Motor Stop is a setting that can prevent motors from spinning at idle when armed.

For modern FPV builds, many pilots keep motors spinning at idle when armed because it clearly shows that the drone is armed.

Beginners should not change this randomly.

We will handle arming behavior later in the proper safety context.

DShot Beacon

DShot Beacon can make motors beep using ESC commands.

This can help locate a crashed drone, although it is not a replacement for a proper buzzer.

We do not need to configure this deeply now.

It can be revisited later.

Do Not Change PID or Filter Settings Yet

Beginners often become curious about PID and filters too early.

Do not change PID or filter settings at this stage.

Modern Betaflight defaults are usually good enough for a first hover and basic setup.

PID and filters will be introduced later as basic concepts, not as aggressive tuning.

For now:

leave PID and filter settings alone

Recommended Beginner Approach

For this chapter, the recommended approach is:

  1. Open Ports tab.
  2. Identify receiver UART.
  3. Enable Serial RX on receiver UART.
  4. Identify VTX control UART.
  5. Select SmartAudio or IRC Tramp on the correct UART.
  6. Save and reboot.
  7. Open Configuration tab.
  8. Confirm Quad X mixer.
  9. Confirm Serial-based receiver mode.
  10. Confirm CRSF as receiver provider for ELRS.
  11. Avoid changing advanced settings.

This keeps the setup clean and controlled.

What We Are Not Doing Yet

In this chapter, we are not yet:

  • binding ExpressLRS
  • testing stick movement
  • assigning arm switch
  • testing motors
  • changing motor direction
  • configuring OSD layout
  • setting failsafe behavior
  • tuning PID
  • installing propellers

Those steps come later.

This chapter only prepares the communication structure.

Common Beginner Mistakes

Enabling Serial RX on the Wrong UART

If the receiver is wired to UART2, enable Serial RX on UART2.

Do not guess.

Enabling Serial RX on Multiple UARTs

Only the receiver UART should have Serial RX enabled.

Enabling MSP and Serial RX on the Same UART

This creates a conflict.

Keep each UART assigned to one clear purpose.

Selecting the Wrong VTX Protocol

Use SmartAudio only if your VTX supports SmartAudio.

Use IRC Tramp only if your VTX supports IRC Tramp.

Copying Someone Else’s UART Setup Blindly

Your UART setup must match your actual wiring.

Another pilot’s build may use different pads.

Changing Advanced Settings Too Early

Do not change PID, filters, motor protocol, or advanced features without a reason.

Beginner Configuration Checklist

Before moving to the next chapter, confirm:

  • Betaflight connects correctly
  • Ports tab opens normally
  • USB VCP MSP left unchanged
  • Serial RX enabled only on receiver UART
  • VTX control selected only on correct UART, if wired
  • unused UARTs left disabled
  • settings saved successfully
  • Configuration tab shows Quad X
  • receiver mode set for serial receiver
  • CRSF selected for ExpressLRS
  • no advanced settings changed randomly
  • propellers still removed

If all of this is correct, the flight controller is ready for receiver binding and radio setup.

What We Have Completed

At this point, we have:

  • understood what UARTs are
  • understood TX and RX logic
  • configured the receiver port
  • configured VTX control, if available
  • avoided MSP conflicts
  • reviewed basic Configuration tab settings
  • confirmed the correct direction for ExpressLRS setup
  • prepared the drone for radio binding

This is an important step.

The drone is now beginning to understand which connected devices belong to which communication ports.

Our Build Philosophy Moving Forward

The configuration phase must be approached the same way as the physical build:

one system at a time

We do not configure everything randomly.

We identify the system.

We confirm the wiring.

We configure the matching software setting.

We save.

We verify.

This method prevents confusion and makes troubleshooting much easier.

Conclusion

The Ports tab is one of the most important areas in Betaflight.

It tells the flight controller how to communicate with external devices such as the receiver and VTX.

For our beginner 5-inch FPV build, the most important port settings are:

  • enabling Serial RX on the UART connected to the ExpressLRS receiver
  • selecting the correct VTX control protocol on the UART connected to the VTX control wire
  • avoiding MSP conflicts
  • leaving unused ports disabled

The Configuration tab also confirms the basic system direction:

  • Quad X mixer
  • serial receiver mode
  • CRSF for ExpressLRS
  • no unnecessary advanced changes

Now that the flight controller communication structure is prepared, we are ready to connect the pilot’s radio controller to the drone.

In the next chapter, we will bind the ExpressLRS receiver to the radio controller.

Next Chapter

How to Bind ExpressLRS Receiver to Your Radio Controller