DragonSync

June 11, 2025 ยท View on GitHub

Android CI

Find the original iOS version here

DragonSync Logo

Real-time drone detection and monitoring, powered by locally-hosted & onboard decoding. Enjoy professional-grade detection and advanced airspace awareness.

Signed APK Releases

Requirements

Use as a standalone sniffer or in conjunction with a hardware stack like WarDragon Pro.

Onboard Detection

  • Android phone with WiFi Nearest Neighbor WiFi scan capabilities & long range BT. Most are compatible, falls back to beacon if NaN is unavailable.

  • Compatibility Check image

SDR & ESP32

Refer to the iOS guide

SDR Quick Start

1. Grab the Code

  • DroneID (Required)

    git clone https://github.com/alphafox02/DroneID
    cd DroneID
    git submodule init
    git submodule update
    
  • DragonSync (CoT TAK/ATAK & Multicast)

    git clone https://github.com/alphafox02/DragonSync
    cd DragonSync
    
    # Install dependencies
    
    pip3 install -r requirements.txt
    sudo apt update && sudo apt install lm-sensors gpsd gpsd-clients
    

2. Start BT Sniffing

python3 sniffle/python_cli/sniff_receiver.py -l -e -a -z

Where sniffle is your submodule folder in the DroneID repo from above

For Sonoff, the baud -b 2000000 flag is needed

3. Start WiFi Sniffing

If using an external adapter (for ESP32 see step)

./wifi_receiver.py --interface wlan0 -z --zmqsetting 127.0.0.1:4223

You may need to put your adapter into monitor mode manually if the wifi_receiver cannot

Replace wlan0 with your interface name

4. Start Decoding

  • Example A: With WiFi Adapter
python3 zmq_decoder.py -z --zmqsetting 0.0.0.0:4224 --zmqclients 127.0.0.1:4222,127.0.0.1:4223
  • Example B: With ESP32 WiFi RID & ANT SDR
python3 zmq_decoder.py -z --uart /dev/esp0 --dji 127.0.0.1:4221 --zmqsetting 0.0.0.0:4224 --zmqclients 127.0.0.1:4222

Where /dev/esp0 is your ESP32 port

4.Start System Monitoring

(Set zmq or multicast flags)

python3 wardragon_monitor.py --zmq_host 127.0.0.1 --zmq_port 4225 --interval 30

5. Multicast: TAK/ATAK DragonSync

(Optional: Limited Data, Multiple Sources)

  • Without TAK (ZMQ & UDP)
python3 dragonsync.py --zmq-host 0.0.0.0 --zmq-port 4225 --zmq-status-port 4224 --enable-multicast --tak-multicast-addr 224.0.0.1
  • With TAK Server
python3 dragonsync.py --zmq-host 0.0.0.0 --zmq-port 4224 --zmq-status-port 4225 --tak-host <tak_host> --tak-port <tak_port>

6. Start the App

  • Open the app settings
  • For ZMQ, enter the IP of the device running the scripts above
  • For Multicast, use the default 224.0.0.1.
  • Toggle the switch on
  • Monitor the dashboard and status view

Important

Multicast will be limited to what is contained in the CoT messages, while ZMQ will provide all available decoded data points.

Overview

// TODO

Features

// TODO