Article

Betaflight VTX control: SmartAudio or IRC Tramp, VTX tables, pit mode and low power disarm

If the flight controller can talk to the video transmitter, you can change band, channel and power from the Configurator, the OSD or a Lua script on the radio. That needs one control wire, the right peripheral on a UART, and a VTX table that matches the hardware. Without the table, Betaflight 4.1 and newer will not drive the VTX correctly.

This guide covers analog and HDZero transmitters that speak SmartAudio or IRC Tramp. The Video Transmitter tab documentation says to ignore that tab for DJI and Walksnail air units.

What you need on the wire

SmartAudio and IRC Tramp both use a single control line from a free UART TX pad on the flight controller to the VTX control pin.

  • SmartAudio (TBS Unify and many clones): wire UART TX to the SmartAudio input on the VTX. In the Ports tab, set that UART's Peripheral to VTX (TBS SmartAudio). Speed can stay on AUTO.
  • IRC Tramp: wire the Tramp T (telemetry) wire to a free hardware UART TX. In Ports, set Peripheral to IRC Tramp.

The Betaflight SmartAudio and IRC Tramp wiki pages describe the same Ports-tab steps. Software serial can work for SmartAudio, but a hardware UART is the simpler first choice.

After wiring, connect USB and a battery (the VTX needs pack power). Open the Video Transmitter tab. Device ready should read Yes, and VTX Type should show SmartAudio or Tramp. If Device ready stays No, the UART, the peripheral selection or the wire is wrong. Fix that before chasing table settings.

Why the VTX table matters

From Betaflight 4.1, bands, channels and power levels are no longer hardcoded. They live in a vtxTable that you load or build yourself. The official VTX wiki is clear: the table must match the hardware, local regulations and what you actually want enabled.

You can load a ready-made JSON from the Configurator (Video Transmitter tab: Load from file), paste one from the clipboard, or build it in the tab and Save. Pre-built tables on the wiki are split by protocol and region (USA / EU), including IRC Tramp, SmartAudio 1.0 / 2.0 / 2.1 and onboard RTC6705.

Two ideas matter more than memorising every frequency:

  • FACTORY vs CUSTOM. With FACTORY, Betaflight sends a band and channel number and the VTX uses its own built-in frequency table. The frequencies in your vtxTable are then mainly for OSD display, so they must match what the VTX actually uses. With CUSTOM, Betaflight sends the frequency in MHz. IRC Tramp and rtc6705 only support CUSTOM.
  • Zero means blocked. Set a frequency to 0 to disable that slot. That is how you strip illegal channels from a FACTORY table without lying to the VTX about the remaining ones.

Power values are protocol-specific

The label you see in the OSD (25, 200, 800) is not always the number sent to the VTX. The wiki's reference values:

Protocol Power levels Values sent to VTX Typical labels
IRC Tramp 5 25 100 200 400 600 25 100 200 400 600
SmartAudio 1.0 4 7 16 25 40 25 200 500 800
SmartAudio 2.0 4 0 1 2 3 25 200 500 800
SmartAudio 2.1 model-dependent dBm values (e.g. 14 20 26 30) e.g. 25 100 400 1W
rtc6705 2 1 2 MIN MAX

SmartAudio 2.1 devices vary by model. The wiki suggests the vtx_info CLI command to list available levels, and gives examples for TBS Unify Pro32 Nano, Pro32 HV and Unify EVO. You may omit higher power levels entirely if your local rules do not allow them. Labels can be short custom strings; values cannot be invented.

A wrong SmartAudio version is a common reason power changes look like they work in the OSD but do nothing on the air. The wiki's debug key for SmartAudio version (Debug[0]: 100/116 = SA 1.0, 200/216 = SA 2.0, 300/316 = SA 2.1) helps when you are unsure which table to load.

Pit mode is not a power level

Pit mode is a separate ultra-low power state so you can bench the quad without blasting other pilots. The Video Transmitter tab notes a typical range under about 5 m. Do not add a "pit" row to the power table. The VTX wiki says pit mode is controlled from the OSD, AUX switches or Lua, and stays outside vtxTable.

Limits that catch people out:

  • SmartAudio V1.0 and V2.0 can enter pit mode only at power-up. Betaflight can take them out of pit mode, but cannot put them into it after boot.
  • rtc6705 boards that support pit mode usually turn the VTX off completely rather than running a true micro-power pit mode.

Low Power Disarm

In the Video Transmitter tab, Low Power Disarm has three behaviours:

  • Off - the VTX stays at the selected power whether you are armed or not.
  • On - when disarmed, the VTX drops to the lowest available power (except after a receiver failsafe; then power is not lowered).
  • On until first arm - lowest power until the first arm, then the configured power for the rest of the session.

The older CLI name is vtx_low_power_disarm. The same failsafe exception appears there: after failsafe, power is not reduced. That keeps you from quietly dropping to 25 mW while the link is already in trouble.

Low Power Disarm is useful at the field when you want the pack plugged in for OSD and radio checks without running full milliwatts between flights. It is not a substitute for pit mode at a crowded race event.

A practical setup order

  1. Solder the control wire to a free UART TX and the matching VTX pad. Fit the antenna before any powered test.
  2. In Ports, enable SmartAudio or IRC Tramp on that UART and Save.
  3. Power the VTX from a pack (through a smoke stopper on a new build). Confirm Device ready: Yes.
  4. Load a VTX table for your protocol and region, trim illegal channels and excess power levels, Save.
  5. Set band, channel and flight power. Enable Low Power Disarm if you want quiet bench and pit time between arms.
  6. Change channel or power from the OSD or Lua once, and confirm the goggles follow. If the OSD moves but the picture does not, the table values or the SmartAudio version are wrong.

Keep local rules in mind when you leave high-power rows enabled. The wiki puts that responsibility on the pilot, and the ready-made EU tables exist for a reason.