How to Set Up SmartAudio and IRC Tramp VTX Control in Betaflight

# How to Set Up SmartAudio and IRC Tramp VTX Control in Betaflight

## The Problem: You’re Stuck at the Wrong Power Level Mid-Flight

You’re out in the field, powered up your quad, and your video feed is either blasting at 800mW when you only need 25mW for a proximity flight — or worse, you’re stuck at pit mode and can’t get any signal at all. You have to land, disconnect your battery, dig out the button on your VTX, and manually cycle through settings while your buddies are already in the air. Not exactly the seamless FPV experience you signed up for.

VTX control through your flight controller solves this problem elegantly. With SmartAudio or IRC Tramp protocol configured in Betaflight, you can change your VTX band, channel, and power level straight from your OSD menu, your radio’s LUA script, or even the Betaflight Configurator. No more physical VTX button pressing. No more guessing what power level you’re on. No more wasted battery from running high power when low power would do.

## The Two VTX Protocols You Need to Know

Before diving into the wiring and settings, understand that SmartAudio and IRC Tramp are the two dominant VTX control protocols in FPV. They both achieve the same goal — letting your flight controller talk to your VTX via a single UART wire — but they use different communication methods.

| Feature | SmartAudio (TBS) | IRC Tramp |
|—|—|—|
| **Developer** | Team BlackSheep | ImmersionRC |
| **Signal Type** | Half-duplex, single wire | Half-duplex, single wire |
| **Protocol Version** | SmartAudio 2.0 / 2.1 | Tramp / Tramp HV |
| **Common VTX Brands** | TBS Unify, Rush Tank, AKK | ImmersionRC, TBS (older), Matek |
| **Pit Mode Support** | Yes (via SA 2.1) | Yes |
| **Power Levels** | Up to 8 levels | Up to 5 levels (standard) |
| **Cable Color (Typical)** | White or Green | White or Yellow |

Most modern VTX units support one or both protocols. Check your VTX’s manual — it will explicitly state “SmartAudio capable” or “Tramp compatible” if the feature is available. Some VTX units, like the TBS Unify Pro32, use an auto-detection mechanism that figures out which protocol your flight controller is using.

## Step 1: Wire Your VTX to the Correct UART

This is the step where most people stumble. Getting it right the first time saves you from tearing your build apart later.

### Identifying the VTX Control Wire

Your VTX will have a dedicated wire (or pad) labeled “SmartAudio,” “SA,” “Tramp,” “T,” or “Audio.” Do not confuse this with the actual audio line — many VTX units repurpose the audio input pin for serial control.

### Choosing a UART on Your Flight Controller

Pick any free UART TX pad. The VTX control protocol only needs the TX line from the flight controller back to the VTX — it’s one-directional communication from FC to VTX.

**Important:** Do NOT use a UART that’s already dedicated to:
– Your receiver (usually UART1 or UART2 on most boards)
– GPS (if installed)
– ESC telemetry (often UART4 or UART6 on newer boards)

A common setup looks like this:

“`
Flight Controller UART3 TX → VTX SmartAudio/Tramp pad
“`

That’s it. One wire. No RX line needed. No pull-up resistors needed. The protocols are designed to work with a direct connection.

### Pro Tip: SoftSerial Backup

If you’re completely out of hardware UARTs, Betaflight supports VTX control over SoftSerial. Performance isn’t as solid as a hardware UART, but for VTX control — where data rates are very low — it works acceptably. Map a spare LED_STRIP or motor output pad and configure it in the CLI:

“`
resource LED_STRIP 1 none
resource SERIAL_TX 11 A01
feature SOFTSERIAL
“`

Replace `A01` with the actual pin identifier for your board. Use the `resource` command to find free pins.

## Step 2: Configure the Ports Tab in Betaflight Configurator

Once your wire is in place, open Betaflight Configurator and navigate to the **Ports** tab.

1. Find the UART you wired your VTX to
2. Under the “Peripherals” column dropdown, select the appropriate protocol:
– **IRC Tramp** — if your VTX manual specifies Tramp
– **TBS SmartAudio** — if your VTX manual specifies SmartAudio
3. Leave the baud rate at **Auto** (Betaflight handles this)
4. Click **Save and Reboot** in the bottom right

If you select the wrong protocol, nothing bad happens — your VTX will simply not respond to commands. Swap to the other protocol and try again.

### Verify Communication

Go to the **Video Transmitter** tab in Betaflight Configurator (it may appear as a subtab under “Power & Battery” in newer versions). If everything is wired correctly:

– You should see current VTX status populate automatically
– The “Device Ready” indicator should show **Yes**
– Band, channel, and power values should match your VTX’s current physical settings

If the tab shows “Device Ready: No,” double-check:
– Your UART TX wire has continuity
– The correct UART is selected in the Ports tab
– The correct protocol is selected (try swapping SmartAudio vs Tramp)
– Your VTX is actually powered on (check main power and 5V/7V connections)

## Step 3: Set Up VTX Tables (Betaflight 4.1+)

Betaflight 4.1 introduced VTX Tables — a structured way to tell Betaflight exactly what bands, channels, and power levels your specific VTX supports. This replaced the old hardcoded frequency tables and makes VTX control far more accurate.

### Loading a Pre-Made VTX Table

The easiest approach is loading a VTX table that someone else already prepared. The Betaflight community maintains a repository of VTX tables for nearly every popular VTX on the market.

1. Visit the [Betaflight VTX Table repository on GitHub](https://github.com/betaflight/betaflight/tree/master/docs/VTX%20Tables)
2. Find the JSON file for your exact VTX model
3. In Betaflight Configurator, go to **Video Transmitter** tab
4. Click **Load from file** and select the downloaded JSON
5. Click **Save**

### Building a Custom VTX Table

If your VTX isn’t in the repository, you’ll need to build a table manually. Here’s a sample for a generic 40-channel VTX with 4 power levels:

“`json
{
“description”: “Generic 40ch VTX”,
“vtxTable”: {
“bandsList”: [
{
“name”: “A”,
“letter”: “A”,
“isFactoryBand”: true,
“frequencies”: [5865, 5845, 5825, 5805, 5785, 5765, 5745, 5725]
},
{
“name”: “B”,
“letter”: “B”,
“isFactoryBand”: true,
“frequencies”: [5733, 5752, 5771, 5790, 5809, 5828, 5847, 5866]
},
{
“name”: “E”,
“letter”: “E”,
“isFactoryBand”: true,
“frequencies”: [5705, 5685, 5665, 5645, 5885, 5905, 5925, 5945]
},
{
“name”: “F”,
“letter”: “F”,
“isFactoryBand”: true,
“frequencies”: [5740, 5760, 5780, 5800, 5820, 5840, 5860, 5880]
},
{
“name”: “R”,
“letter”: “R”,
“isFactoryBand”: true,
“frequencies”: [5658, 5695, 5732, 5769, 5806, 5843, 5880, 5917]
}
],
“powerLevelsList”: [
{“value”: 0, “label”: “0”},
{“value”: 1, “label”: “25 “},
{“value”: 2, “label”: “200”},
{“value”: 3, “label”: “600”}
]
}
}
“`

Copy this into the CLI text area in the Video Transmitter tab, then click **Save**.

### Configuring Power Levels with dBm

For more precise power control, some VTX units support dBm-based power definitions. This is optional for most pilots but worth knowing:

“`json
“powerLevelsList”: [
{“value”: 0, “label”: “0 “},
{“value”: 14, “label”: “25 “},
{“value”: 23, “label”: “200”},
{“value”: 28, “label”: “600”}
]
“`

The values here are in dBm (14 dBm ≈ 25mW, 23 dBm ≈ 200mW, etc.).

## Step 4: Configure OSD and Radio Control

With the hardware and Ports configured, you now want to actually control your VTX without a computer.

### OSD Menu Control

In the Betaflight OSD tab, make sure the **VTX** element is present in your display layout. This enables the “VTX” submenu in your OSD menu system.

When you enter the OSD menu (typically stick command: throttle mid + yaw left + pitch forward), navigate to **Features → VTX**. From here you can change:
– Band (A, B, E, F, R, Raceband)
– Channel (1-8)
– Power level (as defined in your VTX table)

Changes take effect the moment you select them. This is incredibly useful for race day when you need to coordinate channels with other pilots quickly.

### Radio LUA Script Control

For OpenTX and EdgeTX radios, the Betaflight LUA script adds a dedicated VTX configuration page. Install the script on your radio’s SD card, and you can change VTX settings from your transmitter screen without ever going into the OSD.

1. Download the [Betaflight TX LUA Scripts](https://github.com/betaflight/betaflight-tx-lua-scripts)
2. Copy the `SCRIPTS/TOOLS` folder to your radio’s SD card
3. On your radio, long-press MENU, navigate to the TOOLS page, and run `bf.lua`
4. Navigate to the VTX page to adjust band, channel, and power

This is the gold standard for VTX control — change settings while your quad is sitting on the starting block, perfectly still, without touching anything that might trigger the accelerometer.

## Common Pitfalls and How to Avoid Them

### “My VTX Changes Don’t Persist After Reboot”

Some VTX units (especially older TBS Unify models) revert to their button-set values on power-up. Betaflight will re-apply your last-set values on arm by default, but if you’re seeing resets, check:

“`bash
# In CLI:
set vtx_channel = 0
set vtx_band = 0
set vtx_power = 0
save
“`

Setting these to 0 tells Betaflight to use whatever the VTX reports at startup. If they’re nonzero, Betaflight forces those values on boot.

### “SmartAudio Not Working on My Rush Tank VTX”

Rush VTX units ship with SmartAudio disabled by default. You need to enable it first:
1. Hold the VTX button for 10+ seconds
2. Watch the LED blink pattern change
3. Release when you see the confirmation pattern (consult Rush manual for exact pattern)

### “VTX Control Works but Power Levels Are Wrong”

This is almost always a VTX table mismatch. The JSON power level values must exactly match what your VTX expects. A Rush Tank Solo, for example, uses power indices 0=PIT, 1=25mW, 2=100mW, 3=200mW, 4=400mW — but some online tables list only four levels. Always verify your table against your VTX’s manual.

## Real-World Workflow: A Race Day Scenario

Here’s how VTX control transforms your day at the races:

08:30 — Arrive at the field. Power up your quad. Enter OSD menu → VTX → Power → 0 (PIT mode). Your quad sits on the bench without blasting anyone’s feed.

09:15 — Practice heat. OSD menu → VTX → Power → 25mW. Enough for the course. No interference.

09:45 — First qualifier. LUA script on radio → Power → 200mW. Quick change while the previous heat finishes.

11:00 — Finals. Max power. OSD menu confirms your settings are locked in. Launch.

No fumbling with buttons. No accidental wrong channel. No guessing. Total control from the moment you plug in.

## Expert Tip: Low Power Until First Arm with pitMode

For pilots who want to automate pit mode behavior:

“`bash
set vtx_low_power_disarm = ON
save
“`

This keeps your VTX at its lowest non-zero power level whenever the quad is disarmed. As soon as you arm, Betaflight ramps your VTX up to its last-set power level. It’s the best of both worlds: no overheating on the bench, and full power the moment you take off.

Paired with a well-configured VTX table, this CLI option makes your entire VTX workflow seamless — power up, arm, and fly. No menus, no buttons, no thinking.

At [UAVModel.com](https://uavmodel.com), we stock a wide selection of SmartAudio and IRC Tramp compatible VTX units, along with everything you need for a clean FPV build. Every VTX we ship includes clear documentation on protocol compatibility so you can set up control confidently on your first attempt.

## Frequently Asked Questions

**Q: Can I use both SmartAudio and Tramp on the same VTX?**

No. A VTX is either SmartAudio or Tramp, not both. Some VTX units (like the TBS Unify Pro32) auto-detect which protocol the FC is sending, but you still only use one at a time. Choose the protocol that matches your configuration in the Ports tab.

**Q: Does VTX control work with DJI FPV System?**

The DJI FPV Air Unit and Vista units do not use SmartAudio or Tramp. They communicate VTX settings over the MSP protocol on a separate UART. You need to configure “MSP DisplayPort” on the UART connected to the DJI unit and use Betaflight OSD (injected into the DJI feed) or the DJI goggle menu directly. This article covers analog VTX control only.

**Q: My VTX table loaded but the frequencies show as “—” in the OSD?**

Your VTX table’s band definitions might have incorrect frequency arrays. Double-check that each band has exactly 8 frequencies and that they’re valid 5.8GHz values (between 5600-6000 MHz). A single missing or malformed entry can cause the whole table to fail silently.

**Q: Is VTX control over SoftSerial reliable enough for racing?**

Yes. VTX control packets are extremely small (a few bytes) and are sent infrequently. SoftSerial bandwidth is low, but for VTX control specifically, it’s more than adequate. Thousands of racers use this setup without issue. The only caveat: if your flight controller is heavily loaded with other SoftSerial features, you might see occasional dropped packets, resulting in a VTX setting that takes two attempts to stick.

## Video Walkthrough

## JSON-LD Structured Data

Leave a Comment

Scroll to Top