Ubiquiti Bullet M2 Pictured: Ubiquiti Bullet M2 connected to a USB-C PD cable, powered via a USB battery bank.

OpenWRT Remote ID Receiver

This guide describes the process of creating a FAA Remote ID broadcast receiver using commercial off the shelf components and open-source software. The receiver captures & analyzes Remote ID broadcasts from compliant UAV, UAS, Drones & other unmanned and uncrewed aircraft. Captured Remote ID broadcasts contain pertinant telemetry about the airborne object, including position, operator location, speed, heading & more. Remote ID data is viewed within the Wireshark packet capture software.

There are many RF waveforms for Remote ID. This receiver uses the 2.4 GHz WiFi Remote ID waveform - additional waveforms and frequencies are possible with further development.

CONOP

Prerequisites

  1. An OpenWRT compatible device with a WiFi chipset that supports Monitor Mode.
  2. A computer with Wireshark software.
  3. A LAN IP network connecting the Wireshark computer & the OpenWRT device.

Compatible & Verified devices:

Other compatible/unverified devices

Steps

OpenWRT device

  1. Install OpenWRT.
  2. Install tcpdump OPKG (via Internet access or manual copy):

    opkg update
    opkg install tcpdump
    
  3. Enable monitor mode:

    uci set wireless.@wifi-device[0].disabled=0
    uci commit
    iw phy phy0 interface add mon0 type monitor;
    ifconfig mon0 up
    

Wireshark computer

  1. Install Wireshark.
  2. Install the Wireshark Remote ID Dissector.
  3. Ensure network connectivity to OpenWRT device: ping 192.168.0.1
  4. Run tcpdump on the OpenWRT host and pipe output to Wireshark, using ssh:
    ssh -o StrictHostKeyChecking=no root@192.168.0.1 tcpdump -i mon0 -U -s0 -w - 'not port 22'|\
    /Applications/Wireshark.app/Contents/MacOS/Wireshark -k -i -
    

Results

Within Wireshark you should begin to see OPENDRONEID packets in the Protocol column. You can filter for these packets by using the filter: opendroneid

Wireshark displaying Remote ID packet

Remote ID packet details

Wireshark displaying Remote ID packet details

Capture Remote ID with tshark

tshark is Wireshark's command-line tool.

tshark displaying a decoded Remote ID packet

Capture Remote ID as JSON with tshark

tshark can transform (serialize) Remote ID packets as JSON by adding the -T json flag.

tshark displaying Remote ID packet serialized as JSON

Analyze Remote ID with Node-RED

Options:

  1. Remote ID can be saved to a JSON file using the -T json transform and read-into Node-RED using the file-in Node.
  2. Remote ID can be transformed to JSON using -T json and piped to Node-RED with Netcat & a tcp-in Node.
  3. Remote ID can be transformed to JSON using -T json and piped into Node-RED via an exec Node.

Node-RED displaying Open