dji-wifi-tools
This repo contains a set of tools to facilitate the analysis of the Dji wifi communication protocol. Meant for drone enthusiasts, scientific or educational purposes only.
Features
- Automatic Drone and Operator detection
- Sniffing relevant UDP network traffic
- UDP packet enumeration; including filter predicates
- UDP packet inspection (HEX/Binary) and comparison
- Export as *.pcap
- Import *.pcap
- Export as DUML for further in-depth analysis
- Camera output rendering
- Self-contained drone control
- Takeoff
- Landing
- Accelerate
- Rotate
- Elevate
Screenshots
Supported Drones
- Mavic Pro 1
- Phantom 3
- Phantom 4
Theoretical support
Those drones are theoretically supported. However, they do require a delimiter extension which won't be implemented anytime soon.
- Naza M
- Naza M V2
- Phantom 1
- Phantom 2
Supported Platforms
The application runs on all relevant platforms. It has been tested against Windows and Linux. System requirements x86/ARM:
- Windows (7 (Sp 1), 8.1, 10.1607+)
- Linux (Debian 9+, Mint, 18+, Ubuntu 18.04, RH 7+)
- Mac (10.13+)
Prerequisites
- Install the .NET 5.0 SDK
- Download FFmpeg 4.2 binaries according to your OS/CPU and place it into the root folder.
- Optional for Linux (copy function):
apt install -y xsel
- Optional for Linux (video playback):
apt install libvlc-dev
- Optional for Linux (video playback):
apt install vlc
- Optional** for Linux (video playback):
apt install gtk-sharp2
- Optional** for Linux (video playback):
apt install libx11-dev
** install when step 4-5 don't enable dji-camera output rendering
Compile + Run Instructions
Switch to the root folder and execute
dotnet restore
dotnet build
dotnet run --project Dji.Ui
Project configurations for Visual Studio 2019 and Visual Studio Code are included.
Release Instructions
For the most easy setup download the latest release and execute dotnet Dji.UI.dll
.
Usage Instructions
If you do require any usage instructions, maybe this tool isn't meant for you.
Credits
Based on OG's firmware-tools
Libraries
Avalonia
FFMpegCore
libvlcsharp