RF-MARKET BLOG
Détection & Identification de Drones via SDR
Détection & identification automatiques de drones via SDR – panorama open source approfondi (2025)
Surveiller le spectre pour détecter un drone, reconnaître sa marque/modèle et, quand c’est possible, décoder des trames pour extraire ID, position ou télémétrie : c’est désormais réalisable avec des SDR et des briques open source robustes : Remote IDDJI DroneIDGNU Radio DragonOSURHgr-inspector.
1) Bandes & signatures RF des drones (avec pièges courants)
Les drones utilisent un éventail de liaisons selon les cas d’usage (grand public, FPV, industriel). Connaître le périmètre fréquentiel cible et les modulations probables accélère la détection et réduit les faux positifs.
- 2.400–2.483 GHz — Télécommande ↔ drone (FHSS/DSSS propriétaires, OcuSync/Lightbridge), Remote ID BLE/Wi-Fi.
- 5.725–5.875 GHz — Vidéo numérique (OFDM), FPV numérique, OcuSync.
- 868/915 MHz — Longue portée (ExpressLRS, Crossfire, Ghost), télémétrie.
- 433 MHz — Anciens modules LRS, cas spécifiques.
2) Projets open source documentés (forces & limites)
2.1 Remote ID (Wi-Fi/Bluetooth)
RemoteIDReceiver (Cyber Defence Campus) : backend Python + UI Vue.js affichant en direct les trames OpenDroneID (BLE/Wi-Fi). Attributs typiques : ID, fabricant/modèle, position drone, position pilote, cap, vitesse, altitude.
Forces : simple à déployer (Wi-Fi moniteur + BLE), très adapté aux drones conformes, export JSON/CSV, replay possible.
Limites : ne couvre pas les drones non conformes et FPV “DIY”.
OpenDroneID / DroneID (B. Kerler) : outils GPL pour écouter/simuler le Remote ID sur BLE/Wi-Fi. Idéal pour tests, validation de déploiements, et démos en labo.
2.2 DJI propriétaire (2.4/5.8 GHz)
DroneSecurity (NDSS 2023) : pipeline SDR qui décode les trames DJI DroneID (OcuSync/Lightbridge), révélant marque/modèle et données GNSS (drone & pilote) pour de nombreux modèles DJI.
Forces : identifie et localise des DJI même sans Remote ID.
Limites : besoin de SDR à bonne dynamique et BW (≥20–40 MHz utiles), tuning DSP plus exigeant.
2.3 Suite intégrée & reporting
DragonOS (WarDragon) + DragonSync : distribution “clé en main” qui agrège Remote ID BLE/Wi-Fi, DJI DroneID, ADS-B/UAT, direction-finding (KrakenSDR), et publie en CoT/ATAK + MQTT.
Forces : très complet, idéal pour un centre de surveillance multi-capteurs, compatible dashboards (Grafana).
Limites : nécessite une machine dédiée bien dimensionnée et une bonne hygiène RF (antennes/filtrage).
2.4 Détection générique & décodage “low-level”
GNU Radio – gr-inspector : détecte l’activité, segmente les bursts, estime BW, reconnaît la modulation (AM/FM/FSK/PSK/OFDM…).
Forces : base idéale pour 433/868/915 MHz et signaux inconnus.
Limites : ne fournit pas à lui seul l’identité “marque/modèle”.
URH (Universal Radio Hacker) : excellent pour décoder des protocoles simples/modérés (433/868/915 MHz), reconstituer symboles, analyser patterns, appliquer Manchester/NRZ, fuzzing.
Forces : utile pour FPV LRS (ELRS/Crossfire) et télémétries customs.
Limites : travail d’analyse nécessaire, pas de base universelle d’identités drone.
3) Architecture de référence temps réel (avec reporting)
- Acquisition RF multi-bandes : LimeSDR/BladeRF/USRP (2.4/5.8 GHz), HackRF/SDRplay (433/868/915 MHz) + réseau d’antennes adaptées (directive 2.4/5.8, colinéaires 433/868, filtres SAW, LNA si besoin).
- Scanning & détection : SDR++ / Kismet pour balayages, gr-inspector pour activity detection et classification.
- Décodage protocolaire : Remote ID → RemoteIDReceiver ; DJI → DroneSecurity ; FPV LRS → URH (+ flow GNU Radio ad hoc).
- Fusion & distribution : DragonSync pour normaliser en CoT/ATAK + MQTT, base Timeseries (TimescaleDB) pour logs, Grafana pour tableaux, heatmaps et alarmes.
- Supervision & sécurité : NTP/PTP, export JSON/CSV, ACL réseau, cloisonnement Docker/Podman, sauvegardes SigMF des trames marquantes.
250–800 ms (cible)
1–2 s (DJI/RID)
< 1% en 2.4 GHz hors zones Wi-Fi saturées
> 500 h (avec watchdog & supervision)
4) Mise en œuvre guidée (pas-à-pas)
A. Base OS + dépendances DSP
sudo apt update && sudo apt install -y gnuradio gr-osmosdr soapy* \
python3-numpy python3-scipy python3-pip git cmake build-essential
# SDR++ pour balayage multi-bandes
flatpak install -y org.sdrpp.SDRPlusPlus
# Docker si tu containerises RemoteIDReceiver/DragonSync
sudo apt install -y docker.io docker-compose
B. RemoteIDReceiver (BLE/Wi-Fi)
- Carte Wi-Fi compatible monitor mode + dongle BLE (ex : CSR8510).
- Cloner le repo, installer dépendances, lancer backend puis UI.
- Vérifier la remontée d’objets RID (drone/pilote) et exporter JSON/CSV.
C. DJI DroneID (2.4/5.8 GHz)
- SDR à largeur de bande utile ≥ 20–40 MHz (Lime/Blade/USRP) + antenne directive.
- Lancer le pipeline DroneSecurity, caler la fréquence sur l’activité (2.4/5.8), régler gain/AGC.
- Publier les événements vers DragonSync (REST/MQTT) pour centralisation et carto.
D. 433/868/915 MHz (ELRS/Crossfire)
- Scanner avec SDR++ ou
hackrf_sweeppour repérer l’activité. - Capturer les bursts I/Q, analyser dans URH (symboles, horloge, encodage).
- Écrire un flow GNU Radio dédié si un protocole récurrent est identifié.
5) Comparatif opérationnel
| Catégorie | Détection | Identification | Décodage | Outils conseillés | Notes |
|---|---|---|---|---|---|
| DJI (OcuSync/Lightbridge) | ✔︎ 2.4/5.8 | ✔︎ modèle | ✔︎ DroneID | DroneSecurity, DragonOS, DragonSync | Demande BW SDR >= 20–40 MHz utiles |
| Drones conformes Remote ID | ✔︎ BLE/Wi-Fi | ✔︎ type/modèle | ✔︎ RID | RemoteIDReceiver, OpenDroneID | Simple matériel (Wi-Fi moniteur + BLE) |
| FPV (ELRS/Crossfire/Ghost) | ✔︎ 433/868/915 | ~ (RF fingerprint) | ~ (cas par cas) | URH, gr-inspector, GNU Radio | Pas d’ID standard ; privilégier signature/télémétrie |
| DIY/atypiques | ✔︎ scan générique | ✖ | ~ | gr-inspector, URH | Investigation nécessaire selon protocole |
6) Matériel & antennes (avec tuning RF)
SDR recommandés
- LimeSDR / BladeRF : excellent compromis pour 2.4/5.8 GHz, BW utile, dynamique convenable.
- USRP (B2xx/N2xx) : labo / production, décodage robuste, chaines MIMO possibles.
- HackRF One : polyvalent budget pour 433/868/2.4/5.8 (scan/POC).
- SDRplay RSPduo : double tuner, utile pour veille simultanée (hors 5.8 GHz).
Accessoires
- Filtres SAW 2.4 GHz / 5.8 GHz pour limiter le bruit Wi-Fi/ISM.
- LNA faible bruit (en respectant la dynamique du SDR).
- Commutateurs RF (relais coax) pour basculer rapidement d’antenne/bande.
Antennes
- 2.4 / 5.8 GHz directives : patch, yagi, panel sector (DF + portée).
- 868 / 433 MHz colinéaires : 5–9 dBi, soigner la hauteur dégagée.
- Multi-antenne pour TDOA/DF (ex : KrakenSDR) si besoin de localisation passive.
Tuning & implantation
- Éviter proximité de sources bruyantes (AP Wi-Fi, LTE small cells).
- Garder les câbles RF courts, utiliser des coax faibles pertes (LMR-240/400).
- Calibrer fréquences (TCXO) & synchroniser temps (NTP/PTP).
7) Qualité, KPIs & tuning de performance
- Sensibilité & SNR : viser SNR > 8–10 dB pour décodage stable DJI/RID.
- Largeur de bande SDR : 20–40 MHz utiles recommandés pour OcuSync/Lightbridge.
- Latence end-to-end : 1–2 s avec fusion (détection → ident → affichage carto).
- Faux positifs : réguler via filtres de persistance & seuils RSSI/occupancy.
- Résilience : watchdog, auto-restart, logs structurés, export SigMF pour forensics.
8) Cadre légal & bonnes pratiques
En environnement sensible (sites SEVESO, aéroports, événements), coordonner avec les autorités compétentes.