ADS-B/FLARM/UTM Receivers: Air Traffic Avoidance
PX4 can monitor cooperative air traffic reported by ADS-B, FLARM, or UTM integrations. When it detects a potential conflict, PX4 can warn the operator or request an action such as Hold, Return, Land, or Terminate.
This page explains how to connect a supported receiver and configure traffic avoidance behavior. It is most relevant for operations in shared airspace, particularly beyond visual line of sight (BVLOS), where the vehicle must maintain safe separation from manned aviation without an onboard pilot.
INFO
PX4 can only assess cooperative traffic: aircraft that actively broadcast their position via ADS-B, FLARM, UTM, or a compatible integration. If your operation does not involve that kind of traffic data, this page is unlikely to apply.
For details on conflict-detection logic, alert volumes, notifications, testing, and extension points, see Detect and Avoid.
Supported Hardware
PX4 traffic avoidance works directly with ADS-B and FLARM products that send MAVLink ADSB_VEHICLE. DAA consumes PX4's transponder_report topic, so other traffic sources can be supported by an adapter that publishes compatible reports.
INFO
PX4 does not currently convert incoming MAVLink UTM_GLOBAL_POSITION messages into traffic reports. A UTM integration therefore needs a separate transponder_report adapter.
It has been tested with the following devices:
- PingRX ADS-B Receiver (uAvionix)
- FLARM
Hardware Setup
Any of the devices can be connected to any free/unused serial port on the flight controller. Most commonly they are connected to TELEM2 (if this is not being used for some other purpose).
PingRX Pro
The PingRX MAVLink port uses a JST ZHR-4 mating connector with pinout as shown below.
| Pin | Signal | Volt |
|---|---|---|
| 1 (red) | RX (IN) | +5V tolerant |
| 2 (blk) | TX (OUT) | |
| 3 (blk) | Power | +4 to 6V |
| 4 (blk) | GND | GND |
The PingRX comes with connector cable that can be attached directly to the TELEM2 port (DF13-6P) on an mRo Pixhawk. For other ports or boards, you will need to obtain your own cable.
The recommended port configuration for this receiver is:
| Parameter | Recommended Value |
|---|---|
| MAV_X_CONFIG | TELEM 2 |
| MAV_X_MODE | uAvionix |
| MAV_X_RADIO_CTL | Disabled |
FLARM
FLARM has an on-board DF-13 6 Pin connector that has an identical pinout to the mRo Pixhawk.
| Pin | Signal | Volt |
|---|---|---|
| 1 (red) | VCC | +4V to +36V |
| 2 (blk) | TX (OUT) | +3.3V |
| 3 (blk) | RX (IN) | +3.3V |
| 4 (blk) | - | +3.3V |
| 5 (blk) | - | +3.3V |
| 6 (blk) | GND | GND |
INFO
The TX and RX on the flight controller must be connected to the RX and TX on the FLARM, respectively.
PX4 Configuration
Port Configuration
The receivers are configured in the same way as any other MAVLink Peripheral. The recommended configuration for most devices (unless they have device-specific configuration like PingRX) is to connect to TELEM 2 and set the parameters as shown:
| Parameter | Recommended Value |
|---|---|
| MAV_X_CONFIG | TELEM 2 |
| MAV_X_MODE | Normal |
| MAV_X_RATE | 0 (default sending rate for port) |
| MAV_X_FORWARD | Enabled |
Then reboot the vehicle.
You will now find a new parameter called SER_TEL2_BAUD, which must be set to 57600.
Configure Traffic Avoidance
Traffic avoidance is included when the firmware is built with CONFIG_NAVIGATOR_ADSB. The conflict model is also selected at build time:
- Crosstrack mode is used when
CONFIG_NAVIGATOR_ADSB_F3442is disabled. It raises one conflict level and action when the current vehicle is close to the traffic's predicted track, vertically close, and within a configured collision-time threshold. This is the avoidance mode historically supported by PX4. - F3442 mode is used when
CONFIG_NAVIGATOR_ADSB_F3442is enabled. It evaluates four alert tests derived from concepts in ASTM F3442/F3442M-23 and supports a separate action for each result level.
WARNING
The F3442 mode processes cooperative traffic only and implements selected alert concepts and thresholds. It does not by itself establish compliance with ASTM F3442/F3442M-23, which applies to the complete DAA system and its compliance evidence. The implementation references the 2023 edition and has not been evaluated against the later ASTM F3442-25 edition.
For the detailed behavior of each conflict model, see Detect and Avoid > Conflict Standards and Detect and Avoid > Automated Actions.
Enable Avoidance
Use DAA_EN to enable or disable DAA at runtime.
Crosstrack
Use firmware built without CONFIG_NAVIGATOR_ADSB_F3442 if you want the single-threshold traffic avoidance behavior.
| Parameter | Description |
|---|---|
| NAV_TRAFF_AVOID | Action requested when the crosstrack threshold is breached. 0: Disabled, 1: Warn only, 2: Return, 3: Land, 4: Hold, 5: Terminate. |
| NAV_TRAFF_A_HOR | Maximum absolute crosstrack distance from the projected traffic track. |
| NAV_TRAFF_A_VER | Maximum vertical separation from the traffic aircraft. |
| NAV_TRAFF_COLL_T | Maximum conservative time-to-collision estimate. A conflict is raised only if the horizontal, vertical, and time conditions are all met. |
F3442
Use firmware built with CONFIG_NAVIGATOR_ADSB_F3442 for staged alerting based on selected ASTM F3442/F3442M-23 concepts.
PX4 evaluates four conflict levels and maps each level to an action:
| Parameter | Description |
|---|---|
| DAA_LVL_LOW_ACT | Action for the augmented well clear alert volume. |
| DAA_LVL_MED_ACT | Action for the augmented NMAC alert volume. |
| DAA_LVL_HIGH_ACT | Action for Loss of Well Clear (LoWC). |
| DAA_LVL_CRIT_ACT | Action for Near Mid-Air Collision (NMAC). |
F3442 mode evaluates four cylindrical alert tests in priority order. A test is breached when both horizontal and vertical separation are inside its combined ownship (the current vehicle) plus traffic bounds.
| Item | Parameters | Meaning |
|---|---|---|
CRITICAL | DAA_LVL_CRIT_RAD, DAA_LVL_CRIT_HGT | Per-aircraft NMAC base radius and vertical bound. |
HIGH | DAA_LVL_HIGH_RAD, DAA_LVL_HIGH_HGT | Per-aircraft Well Clear base radius and vertical bound. |
MEDIUM | DAA_LVL_MED_TIME | Expands the NMAC base volume using aircraft speed and the configured time margin. |
LOW | DAA_LVL_LOW_TIME | Expands the Well Clear base volume using aircraft speed and the configured time margin. |
| Velocity input | DAA_EN_DFLT_VEL, DAA_DFLT_VEL | Optional replacement for the reported traffic vertical speed. |
Changing an action parameter does not re-evaluate buffered conflicts immediately. The new action is considered on a later change of the overall most-urgent conflict level, and automatic mode changes are only requested when that level increases.
These parameters use the same action scale: 0: Disabled, 1: Warn only, 2: Return, 3: Land, 4: Hold, 5: Terminate.
Most users can start with the default F3442 volume parameters and tune them only if needed. See Detect and Avoid > F3442 Mode, which also includes the zone-computation equations.
Arming Check
PX4 can be configured to check for the presence of a traffic avoidance system (for example an ADS-B or FLARM receiver) before arming. This ensures that a traffic avoidance system is connected and functioning before flight.
This check only verifies that a traffic source is present. It is separate from DAA rejecting arming because active traffic already requires an automatic action; that behavior is described in Detect and Avoid > Arming, Preflight, and Ground Behavior.
The check is configured using the COM_ARM_TRAFF parameter:
| Value | Description |
|---|---|
| 0 | Disabled (default). No check is performed. |
| 1 | Warning only. A warning is issued if no traffic avoidance system is detected, but arming is allowed. |
| 2 | Enforce for all modes. Arming is denied if no traffic avoidance system is detected, regardless of flight mode. |
| 3 | Enforce for mission modes only. Arming is denied if no traffic avoidance system is detected and a mission mode is planned. |
When a traffic avoidance system is detected, the system tracks its presence with a 3-second timeout. If the system is lost or regained, corresponding events are logged ("Traffic avoidance system lost" / "Traffic avoidance system regained").
Testing
To test your DAA configuration using simulated traffic, see Detect and Avoid > Testing and Simulation.