Après quelques années loin de l’ADS-B, je remets en service une station de réception autour d’une clé RTL-SDR et d’une antenne 1090 MHz. Objectif : repartir de zéro, sous Windows puis sous Raspberry Pi, pour recevoir, décoder, afficher et partager les données émises par les avions. Une reprise très pratique, entre Dump1090, ADSB.im et les inévitables petits tâtonnements du terrain.
Introduction
En 2021 et 2022, j’ai publié une série d’articles consacrés aux modes de réception SDR. Vous avez pu les retrouver dans la revue Radioamateurs-France ainsi que sur les sites Hamanalyst.org et ON5VL.org des radioamateurs de Liège, en Belgique.
Dans un but avant tout pédagogique, j’y partageais mes recherches, mes essais, mes réussites, mais aussi mes tâtonnements, afin d’aider tous ceux qui, comme moi, souhaitaient découvrir concrètement les techniques de réception SDR en les pratiquant.
Une fois cette série achevée, je me suis assez vite séparé d’une bonne partie de mon matériel pour voguer vers d’autres centres d’intérêt. Mais le passage presque quotidien, au-dessus de ma tête, des Mirage 2000 et des Rafale de la base aérienne 118 de Mont-de-Marsan, comme celui des nombreux avions de ligne qui sillonnent le ciel des Landes à haute altitude, m’a donné envie de reprendre ces expérimentations.
Je me suis donc équipé d’une nouvelle clé de réception ADS-B et d’une antenne dédiée au 1090 MHz. Toujours animé par le même désir de partager mes essais pas à pas, j’ai rouvert mon traitement de texte pour y consigner mes avancées, mais aussi les difficultés rencontrées en chemin.
Ce douzième volet reprend donc le fil de nos expérimentations aéronautiques. Nous repartirons volontairement de zéro, d’abord sous Windows avec l’installation du pilote de la clé, puis avec une version récente de Dump1090 permettant de décoder et d’afficher les trames ADS-B reçues localement. Nous reviendrons ensuite à la Raspberry Pi, avec l’image Pi24 proposée par Flightradar24, avant d’élargir notre station vers d’autres réseaux grâce à l’image ADSB.im et à la découverte d’OpenSky Network.
Comme toujours, les spécialistes du domaine relèveront peut-être ici ou là quelques approximations, voire certaines erreurs. J’espère qu’ils ne m’en tiendront pas rigueur et qu’ils accepteront, le cas échéant, de me les signaler afin que nous puissions les corriger ensemble. De même, si certains lecteurs connaissent de meilleures solutions d’installation, de réglage ou d’utilisation, qu’ils n’hésitent pas à me les faire connaître.
Nous pouvons maintenant reprendre le sujet depuis le début, avec le traitement des signaux GPS ADS-B et la remise en service d’une station de réception personnelle.
Retour sur le traitement des signaux GPS ADS-B
On repart à zéro
Après quelques hésitations je me décide finalement à acquérir le récepteur USB ADS-B AirNav RadarBox FlightStick et son antenne omnidirectionnelle extérieure.

Mon objectif premier n’est pas d’installer, sous Windows, le logiciel fourni (je n’ai d’ailleurs jamais réussi à le faire fonctionner !!), mais de disposer, à un coût raisonnable, d’une antenne et d’un récepteur de qualité, afin de reprendre dans de bonnes conditions certains essais qui ne m’avaient pas pleinement satisfait.
Ce début d’article pourra sans doute paraître redondant au regard de mes précédents textes. J’ai pourtant choisi, comme l’annonce ce titre, de repartir de zéro, afin d’accompagner pas à pas tous ceux qui souhaiteraient découvrir ce domaine.
La première étape consiste en l’installation d’un pilote pour la clé USB à l’aide du logiciel Zadig. Je reprends ma précédente méthode :
- Téléchargement du logiciel Zadig (zadig-2.9.exe) depuis https://zadig.akeo.ie/downloads/
- Téléchargement et décompression des pilotes RTL-SDR depuis https://osmocom.org/attachments/download/2242/RelWithDebInfo.zip
- Regroupement du logiciel Zadig et du pilote rtlsdr.dll qui convient (x32 ou x64) dans un même répertoire.

Répertoire de travail (RTL-SDR_Pilotes)
- Lancement de Zadig en mode administrateur depuis l’explorateur de fichiers. Sélectionnez alors Options et cochez le choix List All Devices.

Configuration de Zadig
- Installation (ou remplacement) du pilote actuel (ici NONE) par le pilote WinUSB. Dans la fenêtre Zadig, le pilote installé est indiqué à gauche, le pilote à installer à droite. Dans la liste déroulante sélectionnez Bulk-In, Interface (Interface x). Cette interface est reconnaissable à l’identifiant de notre clé (USB ID), généralement 0BDA 2838 0x1

Choix de l’interface avec Zadig
- Clic sur Install (ou Replace) Driver. Dans certains cas un message d’alerte signale que Windows ne peut pas vérifier l’éditeur de ce pilote. Il faut alors choisir Installer ce pilote quand même. Faites cette manipulation pour les interfaces 0 et 1.
Windows – Dump1090 – V0.4.8.0
En 2021, afin de visualiser sous Windows le trafic aérien autour de mon domicile, j’avais associé une ancienne version du logiciel Dump10902au programme Virtual Radar.3
La mise en place de l’ensemble s’était révélée assez fastidieuse, pour un résultat qui ne m’avait pas entièrement satisfait.
Pour mémoire, car nous y reviendrons plus loin, lorsque j’aborderai le code Sqwk, je reproduis ci-dessous l’écran affiché, à l’époque, par dump1090.

Les avions détectés au lancement de dump1090.bat
Mes recherches sur Internet m’ont heureusement permis de découvrir une autre version de dump1090, développée par Gisle Vanem4 et repérée sur le forum FlightAware5
Voici donc la méthode que j’ai suivie :
- J’ai téléchargé le nouveau package logiciel depuis l’URL https://github.com/gvanem/Dump1090/archive/refs/heads/main.zip puis j’en ai décompressé l’ensemble ;
- Après décompression j’ai retrouvé parmi les nombreux fichiers du package, notre exécutable dump1090.exe. Sa taille était ici de 2,04 Mo (2 143 744 octets).

Répertoire de travail (Dump1090-V2)
- Par habitude, j’ai créé un fichier dump1090.bat contenant les lignes suivantes :
dump1090.exe --interactive --net
pause- Un coup d’œil au fichier dump1090.cfg m’a montré qu’une procédure particulière se déclencherait en absence de coordonnées géographiques correctes ;

Fichier dump1090.cfg avant la procédure de setup.
- Lors du premier lancement, ma position géographique m’a effectivement été demandée.

Premier lancement de dump1090.bat
- Étant proche de l’aérodrome de Mimizan, j’en ai indiqué le code OACI6. Celui-ci a été reconnu, et ses coordonnées ont été automatiquement enregistrées dans le fichier de configuration. Je n’ai donc pas eu besoin d’ouvrir le fichier dump1090.cfg pour modifier la ligne homepos.7 7La mise à jour s’est faite d’elle-même ;

Fichier dump1090.cfg après la procédure de setup
- Alors que le processus d’initialisation s’achevait, j’ai autorisé les modifications à apporter à mon pare-feu ;

Premier lancement de dump1090.bat
- Suivant les conseils du tutoriel j’ai ensuite quitté puis relancé mon batch dump1090.bat.

Second lancement de dump1090.bat
Nous avons alors retrouvé, décodées et mises en forme, les informations contenues dans les trames ADS-B.
Un coup d’œil au fichier dump1090.log montre que le processus d’installation a également permis le téléchargement et/ou la mise à jour de plusieurs fichiers bases d’enrichissement local qui permettront à Dump1090 d’enrichir l’affichage en retrouvant l’immatriculation et le type des aéronefs :

Trame ADS-B (source : https://www.radartutorial.eu/13.ssr/sr25.fr.html)
- aircraft-database.csv : base OpenSky 8des métadonnées aéronefs : adresse ICAO/Mode-S, immatriculation, constructeur, type, opérateur, etc. Elle permet à Dump1090 d’associer un code ICAO reçu à un avion identifiable.
- aircraft-database.csv.sqlite : version SQLite locale, reconstruite à partir du CSV précédent, afin d’accélérer les recherches dans cette grosse base sans relire tout le fichier texte.
Deux autres fichiers sont présents dans le package, ils contiennent des informations associées aux aéroports et à leurs fréquences radio9 9:
- airport-codes.csv : base des aéroports : codes ICAO/IATA ou locaux, nom, type d’aéroport, pays, région, ville desservie, coordonnées, etc. Elle sert surtout à interpréter les routes, origines/destinations ou codes d’aéroports.
- airport-frequencies.csv : base des fréquences radio associées aux aéroports : tour, sol, ATIS, approche, UNICOM, etc., avec fréquence en MHz.
Revenons maintenant à la description des données affichées par dump1090 en provenance des trames ADS-B.

Trame ADS-B (source : https://www.radartutorial.eu/13.ssr/sr25.fr.html)
De gauche à droite :
- ICAO : Il s’agit — ici en hexadécimal — de l’identification OACI 24 bits de l’appareil. C’est l’identifiant unique du transpondeur de l’avion, de l’hélicoptère ou du planeur. Les 24 bits permettent plus de 16 millions de combinaisons (224) évitant que deux avions aient le même code transpondeur. Chaque pays, en fonction de son importance, gère une plage de code. Il correspond à la colonne Hex de la précédente version.
- Callsign : Identifiant de vol transmis par l’avion. Dans la pratique, il se compose le plus souvent de deux parties :
| Partie | Exemple | Signification |
|---|---|---|
| Préfixe compagnie / opérateur | AFR, RYR, IBE, EZY, TVF | Code OACI à trois lettres de la compagnie ou de l’opérateur |
| Numéro ou suffixe de vol | 88EA, 5886, 052T, 77OT | Numéro de vol opérationnel, parfois complété par une ou deux lettres |
Exemples tirés de la capture :
| Callsign | Lecture probable |
|---|---|
| AFR88EA | Vol Air France, indicatif radio AFR 88EA |
| RYR5886 | Vol Ryanair, indicatif RYR 5886 |
| IBE052T | Vol Iberia, indicatif IBE 052T |
| EZY77OT | Vol EasyJet UK, indicatif EZY 77OT |
| TRA15N | Vol Transavia, indicatif TRA 15N |
Le Callsign ADS-B n’est pas toujours identique au numéro de vol public affiché aux passagers. Les compagnies utilisent souvent des suffixes alphanumériques pour éviter les confusions radio entre deux vols ayant des numéros proches. C’est pourquoi on voit des indicatifs comme AFR88EA, EZY77OT ou TVF43MN, et pas seulement des formes très simples comme AFR1234.
Cet identifiant peut changer d’un vol à l’autre, à la différence du Reg-num.
- Reg-num : Numéro d’immatriculation officiel de l’appareil. Exemple : F-HBLC, EC-MJO, 9H-QDN. Également connu sous l’intitulé « tail number », c’est, en principe, le numéro que l’on retrouve peint sur l’avion, souvent à l’arrière du fuselage ou près de l’empennage.
| Partie | Exemple | Signification |
|---|---|---|
| Préfixe national | F, EC, G, EI, 9H, HB | Pays ou registre d’immatriculation |
| Suffixe individuel | HBLC, MJO, DNQ, DCL, QDN, JFD | Identifiant propre à l’appareil dans ce registre |
Exemples tirés de la capture :
| Reg-num | Lecture |
|---|---|
| F-HBLC | Appareil immatriculé en France |
| EC-MJO | Appareil immatriculé en Espagne |
| G-DNQ | Appareil immatriculé au Royaume-Uni |
| EI-DCL | Appareil immatriculé en Irlande |
| 9H-QDN | Appareil immatriculé à Malte |
| HB-JFD | Appareil immatriculé en Suisse |
- Cntry : Pays d’immatriculation ou d’enregistrement de l’appareil. Il est ici affiché sous forme de code pays : FR, ES, GB, IE, etc.
- DEP : Aéroport de départ : CDG, ORY, BRU, PMI, etc. Il s’agit d’une information enrichie par base de données et non une donnée ADS-B brute transmise par l’avion10.
- DEST : Aéroport de destination au format IATA à trois lettres, également issu d’une base de données de routes/indicatifs.
- Altitude : Altitude de l’appareil. Alors que l’altitude est classiquement donnée en pieds, elle est ici affichée en mètres. Exemple : 10966 correspond à environ 36 000 pieds.
- Speed : Vitesse sol de l’appareil. Normalement exprimée en nœuds, elle est ici convertie en km/h.
- Lat : Latitude de l’appareil en degrés décimaux. Le signe + indique l’hémisphère Nord.
- Long : Longitude de l’appareil en degrés décimaux. Le signe − indique l’ouest du méridien de Greenwich ; le signe + indique l’est.
- Hdg : Cap suivi par l’appareil, en degrés de 0 à 359. (0 = North, 90 = East, 180 = South, 270 = West)
- Dist : Distance entre notre station de réception et l’appareil, exprimée en kilomètres.
- Msg : Nombre de messages Mode S / ADS-B reçus pour cet appareil depuis son apparition dans la liste.
- Seen : Temps écoulé, en secondes, depuis la dernière réception d’un message pour cet appareil.
- / : Indicateur graphique d’activité ou de rafraîchissement de l’affichage console. Il ne correspond pas à une donnée aéronautique.
À la différence de l’affichage interactif classique de dump1090, cette nouvelle présentation ne montre pas le code Sqwk1111. Ce code, également appelé squawk ou Mode 3/A, correspond au code transpondeur généralement attribué par le contrôle aérien, puis émis par l’appareil. En exploitation normale, il sert à identifier un vol sur les écrans radar, afin d’associer sans ambiguïté un écho radar à l’appareil suivi. Ce code est unique dans la zone où l’avion est contrôlé, mais il n’est pas nécessairement conservé pendant tout le trajet. Il peut être modifié lorsqu’un appareil change de secteur, de centre de contrôle ou de pays.
Certains codes sont toutefois réservés aux situations d’urgence : 7500 pour une intervention illicite, 7600 pour une panne radio et 7700 pour une urgence générale. Dans ces cas, c’est le pilote qui sélectionne volontairement le code approprié sur son transpondeur afin d’alerter immédiatement les services de contrôle.
Il est temps maintenant de visualiser sur une véritable carte mes propres données en appelant l’URL localhost:8080.


Appel depuis Google Chrome de localhost:8080
Raspberry Pi – Flightradar24
Afin de poursuivre mes expérimentations, et comme le préconise le site flightradar24, je ressors ma Raspberry Pi modèle 4b, son boîtier et son alimentation.

Un ensemble Raspberry Pi

Un ensemble Raspberry Pi
Image Pi24
La première étape consiste à flasher sur une carte microSD de 8Go l’image Pi24 proposée par le site. Celle-ci est disponible depuis l’adresse https://www.flightradar24.com/build-your-own.
Plusieurs tutoriels conseillent pour cela le logiciel Etcher (https://etcher.balena.io/). Après plusieurs essais infructueux (écran bleu en milieu du traitement et/ou durant la phase de vérification), je me retourne vers le bien connu Win32 Disk Imager disponible à l’adresse https://win32diskimager.org/.

Flash de la carte microSD
Pour permettre un futur accès Wi-Fi sur le Raspberry Pi, il est necessaire de modifier le fichier wpa_supplicant.conf présent sur la carte en saisissant, entre guillemets :
- le code à deux lettres de notre pays (country=«FR»),
- le nom de notre routeur dans ssid,
- son mot de passe dans psk.
Cette modification s’effectue depuis le PC avec un éditeur de texte. Pour ma part, j’utilise Notepad++.

Fichier wpa_supplicant.conf avant modification
Le logiciel PuTTY va nous permettre d’accéder au Raspberry Pi. Il est disponible à l’adresse : https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

Site de téléchargement pour PuTTY
NOTA : PuTTY peut également vous permettre d’accèder à votre Raspberry Pi à l’aide d’un cable RJ45, sans passer par la modification immédiate du fichier wpa_supplicant.conf
. Utilisez dans ce cas le nom d’hôte de la carte : pi24-bookworm.local
puis les crédentiels par défaut : pi / raspberry.


Accès RJ45 à la carte pi24-bookworm
Une information précisant que l’accès Wi-Fi n’est pas disponible apparait en bas de la fenêtre. Il faudra alors définir une adresse IP statique (IP fixe). Notez que depuis Bookworm le système de gestion réseau a changé, c’est désormais NetworkManager qui est utilisé. Cette nouvelle manière d’attribuer une adresse IP fixe au Raspberry Pi est disponible avec ce tutoriel : https://www.electro-info.ovh/index.php?id=290
Revenons à l’accés Wi-Fi. Ma carte est maintenant en place avec son fichier de configuration wpa_supplicant.conf modifié lui permettant de rejoindre mon réseau local. Il me faut pour cela trouver son adresse IP. L’utilitaire Angry IP Scanner, un logiciel libre de balayage de port utilisé pour rechercher la présence de périphériques informatiques connectés à un réseau TCP/IP va réaliser cette recherche. Il est disponible à l’adresse https://angryip.org/.


Accès Wi-Fi à la carte pi24-bookworm
Ma Box Internet ayant comme IP 192.168.1.11212, je fais une recherche sur la plage 192.168.1.1 à 192.168.1.50

Réponse d’Angry IP Scanner
Dans mon cas, la carte a comme adresse IP 192.168.1.20. Il ne me reste plus qu’à utiliser PuTTY pour y accéder et réaliser quelques manipulations.
Vérification de l’espace attribué au système
La taille de l’espace attribué au système sur la carte MicroSD est obtenu via la commande : df -h

Résultat de la commande df -h
Mises à jour des dépôts et des versions
Exécution des deux commandes suivantes :
sudo apt-get update
sudo apt-get upgradeVersion de Raspbian
Pour trouver la version de Raspbian, il suffit de saisir la commande suivante :
cat /etc/os-releaseLe retour de la requête confirme la version 12 (bookworm).

Voir sa version système sous Raspbian OS
Versions de Python
Les commandes suivantes permettent de connaître les versions installées du logiciel Python :
python --version
python3 --versionPour ma part, le retour de ces requêtes a indiqué la version 3.11.2.
Activation des échanges
Mon flightstick maintenant en place, il reste encore à activer les échanges avec le site FlightRadar24. Depuis le bas de la page https://www.flightradar24.com/build-your-own dirigeons-nous vers le lien « following link ».

Activation FlightRadar24 – écran 1
Tout semble correct. Ma (future) station de réception est reconnue. Il ne me reste plus qu’à l’activer.

Activation FlightRadar24 – écran 2
Je dois pour cela définir ma position exacte.

Activation FlightRadar24 – écran 3
Une fois celle-ci repérée, mes coordonnées GPS (latitude, longitude) ainsi que mon altitude me sont retournées.

Activation FlightRadar24 – écran 4
Je clique alors sur « Verify application ».
Tout est OK, le site me retourne, pour information, l’aéroport le plus proche de mon habitation.

Activation FlightRadar24 – écran 5
Je choisis alors « Activate receiver ».
Je reçois en retour le nom de radar qui m’a été attribué.

Activation FlightRadar24 – écran 6
En me déplaçant à l’adresse http://ip@my_pi:8754/index.html (dans mon cas : http://192.168.1.20:8754/index.html), il est possible de vérifier l’état d’activité de sa station.

Informations sur ma station FlightRadar24
Plus de détails sont disponibles en utilisant les choix proposés à droite de l’écran.



Informations sur ma station FlightRadar24
Sur le site, la mise en place d’un filtre permet de visualiser l’étendue de sa zone de réception. Cette manipulation est possible sans abonnement dans la mesure où le site vous a reconnu comme contributeur.

Ma station sur FlightRadar24
Depuis l’accès Contributor, le choix My Data Sharing, puis Show Statistics offre divers outils précisant la qualité de votre réception.

Ma station sur FlightRadar24

Ma station sur FlightRadar24
Raspberry Pi – OpenSky Network – Image ADSB.im
Après l’installation de l’image Pi24 proposée par Flightradar24, nous disposons déjà d’une station ADS-B fonctionnelle, capable de recevoir les avions visibles depuis notre antenne et de partager automatiquement ces données avec son réseau mondial. Mais cette première approche n’est pas la seule possible. À côté des grands services commerciaux de suivi aérien, il existe aussi des réseaux plus ouverts, à vocation technique, collaborative ou scientifique. C’est le cas d’OpenSky Network, qui se présente comme une plateforme de données ouvertes sur le trafic aérien, orientée notamment vers la recherche, et collectant des données ADS-B, Mode-S, ADS-C, FLARM ou encore VHF. Pour y contribuer depuis un Raspberry Pi, OpenSky propose une image prête à l’emploi permettant de transformer notre Raspberry Pi en station de réception multi-réseaux. Son principal avantage est de ne plus limiter notre station à une seule plateforme : une même installation peut alimenter OpenSky et, si on le souhaite, d’autres agrégateurs ADS-B, le tout au moyen d’un assistant de configuration accessible depuis un navigateur, sans passage obligatoire par la ligne de commande.
Mise en place de l’image ADSB.im
Tout comme FlightRadar24, OpenSky13 13propose, pour la Raspberry Pi, l’utilisation d’une image disponible depuis le site https://adsb.im/home à flasher sur une carte microSD. Celle-ci nous arrive sous la forme d’un fichier compressé nommé : adsb-im-raspberrypi64-pi-2-3-4-5-v3.0.11.img.xz

Installation de l’image adsb.im – écran 1
La version de WinZip en version d’essai de 21 jours gratuit, disponible à l’adresse https://www.winzip.com/fr/download/winzip/, permet sa décompression. Il ne nous reste plus ensuite qu’à utiliser Win32 Disk Imager pour la graver sur la micro carte.
Activation des échanges
Après s’être créé un compte sur le site, la marche à suivre est disponible depuis la page https://adsb.im/howto.

Installation de l’image adsb.im – écran 2
Privilégiant l’accès Wi-Fi, je suis le lien indiqué vers la page https://adsb.im/hotspot.

Installation de l’image adsb.im – écran 3
Cette page explique qu’il faut maintenant démarrer le système Raspberry Pi et attendre quelques minutes afin que s’achève la séquence de démarrage. Le système ne détectant aucun réseau fonctionnel, par exemple parce qu’aucun câble Ethernet n’est connecté, et constatant que le Wi-Fi n’est pas encore configuré, il va basculer en mode point d’accès.
Dans mon cas, le Raspberry Pi fonctionne sans écran ni clavier, plusieurs minutes ont été nécessaires avant de voir apparaître dans mon environnement un nouveau Wi-Fi avec le SSID adsb.im-feeder.

Installation de l’image adsb.im – écran 4
La connexion se fait sans aucun mot de passe. Dans mon cas, la page de configuration s’est ouverte automatiquement dans mon navigateur. Si ce n’est pas le cas, rendez-vous à l’adresse http://adsb.im qui affiche également la page de configuration.
Une fois les informations d’identification inscrites, le choix Configure ouvre une fenêtre d’attente qui s’est, dans mon cas, achevée sur un succès.

Installation de l’image adsb.im – écran 5
Le logiciel Angry IP Scanner en donne une première confirmation.

Installation de l’image adsb.im Angry IP Scanner – écran 6
Accédant à la page locale adsb-feeder.local, il s’agit maintenant d’entrer les données exactes de géolocalisation de notre antenne. Ayant déjà ces données, je n’ai pas à utiliser le lien proposé (location and elevation finder tools).
Je prends comme nom de station le code IATA de l’aérodrome le plus proche de mon domicile.
Le fuseau horaire ayant été détecté automatiquement, je le maintiens à Europe/Paris.

Installation de l’image adsb.im – écran 7
Finalement, et avant de choisir APPLY, j’indique ADS-B comme données à suivre.

Installation de l’image adsb.im – écran 8
Quelques instants plus tard, la page d’accueil de notre station apparaît. Comme signalé en encart, le message d’erreur concernant la résolution des requêtes DNS disparaîtra au prochain redémarrage.
Le choix MAP (bouton bleu en haut à gauche de l’interface) affiche la carte liée à notre réception.

La carte liée à notre détection (choix MAP)
L’un des avantages de cette distribution ADSB.im est qu’elle ne limite pas notre station à un seul réseau de suivi aérien mais transforme notre Raspberry Pi en station ADS-B multi-réseaux, tout en laissant à l’utilisateur le choix des plateformes qu’il souhaite alimenter. À partir du menu Data Sharing, disponible en haut à droite de l’interface, il est possible de choisir les plateformes vers lesquelles seront envoyées nos données ADS-B.

Fenêtre Data Sharing (partie haute)
Sur la partie haute de l’écran, il est possible de choisir, individuellement ou en bloc, des agrégateurs ne nécessitant pas de compte utilisateur. Il y a là des plateformes commerciales et non commerciales. Après avoir autorisé l’envoi de mes données MLAT vers les agrégateurs qui les prennent en charge, j’accepte d’envoyer mes données vers ADSBExchange avant de me diriger vers leur site.
Lien avec ADSBExchange
ADS-B Exchange est une plateforme collaborative à base communautaire, aujourd’hui exploitée dans un cadre commercial. Il est alimenté par un vaste réseau de récepteurs ADS-B, Mode S et MLAT installés par des passionnés dans le monde entier. Sa particularité est de revendiquer une diffusion des données « non filtrée », y compris pour les appareils militaires, privés ou commerciaux lorsque leurs signaux sont reçus. Depuis janvier 2023, ADS-B Exchange appartient à JETNET, société spécialisée dans les données et l’intelligence de marché aéronautiques, et propose aussi des produits commerciaux comme des API ou des données historiques.
Depuis la page d’accueil, la procédure débute en choisissant Join.

Activation ADSBExchange – écran 1
Depuis la page Flight Deck, cliquez ensuite sur Link Receiver.

Activation ADSBExchange – écran 2
Une nouvelle page s’ouvre. Elle va vous permettre de saisir le numéro d’identification unique de notre station, appelé UID pour Unique Identifier. Avant de le renseigner, cliquez sur Feeder Status Page afin de retrouver ce numéro.

Activation ADSBExchange – écran 3
Il apparaît dans la fenêtre Feed Details.

Activation ADSBExchange – écran 4
Il ne reste plus ensuite qu’à le reporter dans la zone de saisie Feed UID de la page précédente.

Activation ADSBExchange – écran 5
Celui-ci apparaît alors au bas de cette même page dans la fenêtre d’informations Linked receivers, confirmant que votre récepteur est bien pris en compte.

Activation ADSBExchange – écran 6
Alimentation MLAT
La page qui s’affiche en suivant le lien https://map.adsbexchange.com/mlat-map/ est particulièrement intéressante. Elle montre la couverture MLAT de notre station. Dans mon cas, le récepteur est bien reconnu sous l’identifiant LFCZ, ce qui confirme son intégration au réseau.

Activation ADSBExchange – écran 7
Le sigle MLAT vient de l’anglais Multilateration, ou multilatération en français. Cette technique permet d’estimer la position d’un avion qui émet des signaux Mode S, mais qui ne transmet pas directement sa position GPS. C’est le cas de certains appareils militaires, d’avions anciens, ou encore d’aéronefs dont le transpondeur fournit des informations d’identification et d’altitude, mais pas de latitude ni de longitude.
Avec l’ADS-B classique, le principe est simple : l’avion connaît sa position grâce à son GPS embarqué, puis il la diffuse directement dans ses messages radio émis sur 1090 MHz. Un seul récepteur au sol peut alors l’afficher sur une carte, puisqu’il reçoit déjà la position complète de l’appareil.
Avec le Mode S seul, la situation est différente. Le signal radio est bien reçu, mais il ne contient pas toujours la position de l’avion. Pour la retrouver, ADS-B Exchange utilise alors les réceptions simultanées de plusieurs stations au sol. Chaque station capte le même message, mais pas exactement au même instant. Ces très petites différences de temps d’arrivée du signal sont comparées par les serveurs du réseau.
Il ne s’agit donc pas d’une triangulation au sens classique du terme. En triangulation, on mesure des angles. En multilatération, on exploite des différences de temps, donc des différences de distance. Comme les ondes radio se propagent à la vitesse de la lumière, un écart minime dans le temps d’arrivée correspond déjà à une différence mesurable de distance entre l’avion et les récepteurs.
Pour que le calcul soit possible, plusieurs conditions doivent être réunies. Les récepteurs au sol doivent être assez nombreux autour de la zone suivie. Leurs positions géographiques doivent être connues avec précision. Leur horloge doit également être correctement synchronisée, car le calcul repose sur des écarts de temps extrêmement faibles. Enfin, le serveur central doit pouvoir comparer les messages reçus par les différentes stations et en déduire la position la plus probable de l’appareil.
La page MLAT Feeder Map visualise justement cette coopération entre récepteurs. Les cercles violets représentent des stations contributrices du réseau ADS-B Exchange. Pour des raisons de confidentialité, leurs emplacements sont volontairement approximatifs, comme le précise le message affiché à gauche de la carte.
En sélectionnant ma station, identifiée ici par LFCZ, la carte affiche les autres récepteurs avec lesquels elle est synchronisée pour participer aux calculs MLAT. Les traits reliant les stations montrent ces liens de synchronisation. Leur couleur renseigne sur la qualité de cette synchronisation : plus la liaison est bonne, plus elle pourra être utile pour les calculs de position. Sur cette capture, on constate que ma station est reliée à de nombreux récepteurs situés dans le Sud-Ouest, mais aussi plus loin vers Toulouse, Bordeaux, les Pyrénées et le nord de l’Espagne.
Lien avec Flightradar24
Flightradar24 est l’un des sites de suivi aérien les plus connus du grand public. Né en Suède en 2006 comme projet de passionnés, il s’appuie aujourd’hui sur un vaste réseau mondial de récepteurs ADS-B, complété par d’autres sources de données, afin d’afficher en temps réel la position de nombreux avions civils. Aujourd’hui, le site revendique plus de 50 000 récepteurs ADS-B répartis dans le monde.
Même s’il est alimenté en grande partie par une communauté de stations contributrices, à la différence d’ADSBExchange, Flightradar24 est clairement un service commercial. L’accès de base reste largement gratuit pour l’utilisateur, mais le site propose aussi des abonnements payants, des fonctions avancées, ainsi qu’une offre d’API donnant accès à des données aéronautiques en temps réel ou historiques.
Revenons donc maintenant sur la page d’accueil de notre station ADSB.im sur laquelle nous avons autorisé l’envoi de nos données vers ADSBExchange. Sur la partie basse, une seconde liste regroupe les agrégateurs associés à un compte. Choisissons donc Flightradar24 en cochant le service. L’interface déploie alors une zone destinée à saisir l’identifiant que le site a préalablement créé. Je reprends donc ici celui utilisé dans nos manipulations Windows.

Fenêtre Data Sharing (partie basse)
De retour sur la page d’accueil, l’interface s’est enrichie de nouvelles informations. Elle affiche désormais les statistiques de réception de notre station ainsi que l’état des flux envoyés vers les agrégateurs sélectionnés. Lors des premières minutes, certains indicateurs peuvent apparaître en jaune ou en rouge, le temps que les connexions se stabilisent et que les agrégateurs valident les données reçues. Dans mon cas, tous sont passés au vert dans l’heure qui a suivi.

Page d’accueil ADSB.im
FlightRadar24 m’a attribué comme nom de station T-LFBS5. À ce titre je me suis donné comme nom d’utilisateur FP40170 (en lieu et place de Anonymous). Sur leur page de statistiques https://www.flightradar24.com/share-statistics, et après avoir restreint le pays à la France, je retrouve ma station et son rang.

Page d’accueil ADSB.im
Lien avec OpenSky Network
Le lien avec le réseau OpenSky Network se configure de manière comparable à celui des autres agrégateurs nécessitant un compte utilisateur. Depuis la page Data Sharing, nous sélectionnons OpenSky Network, puis nous indiquons le nom d’utilisateur créé lors de notre inscription préalable sur le site du réseau.
Après avoir cliqué sur Request Key, l’interface interroge le service distant. Une fenêtre d’attente apparaît quelques dizaines de secondes, puis disparaît. La clé nécessaire au partage des données est alors automatiquement ajoutée dans la zone de saisie. Il ne reste plus qu’à cliquer sur Apply pour enregistrer la configuration.

De retour sur le site OpenSky Network, le menu Account / View Sensor confirme que notre station est bien reconnue. L’activation semble donc avoir abouti.

Activation OpenSky – écran 2
Quelques points restent toutefois à signaler :
- Dans l’interface ADSB.im, le voyant Data associé à OpenSky ne passe pas au vert, contrairement à ce que l’on pourrait attendre après une configuration réussie.

Activation OpenSky – écran 2
Le point au milieu du cercle du voyant Data signifie que l’interface locale n’arrive pas à valider le retour d’API d’OpenSky. Comme notre sensor est marqué « Online » sur leur portail, c’est juste un bug d’affichage de notre image : les données partent, mais le retour n’est pas lu.
- Par ailleurs, le lien proposé vers le site OpenSky renvoie un message d’erreur : « {« message »: »This resource has been moved. »} »

Activation OpenSky – écran 2
C’est ici un problème de lien mort dans le code d’ADSB.im avec une absence de mise à jour des URL d’OpenSky. Il n’est donc pas possible d’utiliser ce raccourci pour atteindre notre tableau de bord « My Stations » sur leur site.
Enfin, je n’ai pas trouvé, sur le site OpenSky, de lien permettant de visualiser directement les données retransmises par ma station.
Prise de main à distance
Une information sur la page https://adsb.im/using attire mon attention : il est possible de prendre la main à distance sur sa station à l’aide de l’application ZeroTier.

ADSB.im – guide détaillé de l’interface Web
À noter que le lien donné sur cette page ne fonctionne pas.
Cette application permet de créer un réseau privé virtuel entre plusieurs appareils, même lorsqu’ils se trouvent sur des réseaux Internet différents. Elle installe une interface réseau virtuelle et permet à chaque machine autorisée de communiquer comme si elle appartenait au même réseau local. Les échanges sont chiffrés de bout en bout et les connexions s’établissent directement entre appareils chaque fois que cela est possible.

Mise en réseau ZeroTier – écrans 1 et 2

L’image ADSB.im que nous utilisons intégrant cette possibilité, la première étape consiste donc à créer un compte sur le site https://www.zerotier.com/ puis à choisir l’offre Personal, gratuite. En retour, nous obtenons un numéro d’identification réseau.

Mise en réseau ZeroTier – écran 3
Celui-ci doit être reporté dans la zone de saisie Add Zerotier disponible dans l’onglet Management, lui-même accessible par le choix System de la page d’accueil de notre station.

Mise en réseau ZeroTier – écran 4
De retour sur le site ZeroTier, nous constatons que notre station est désormais reconnue comme un Member Device dans my-first-network.

Mise en réseau ZeroTier – écran 5
L’étape suivante consiste à installer du client ZeroTier sur notre station de travail Windows. Pour cela, il faut télécharger le logiciel depuis https://www.zerotier.com/download puis choisir le fichier MSI Installer (x86/x64).

Mise en réseau ZeroTier – écran 6
Après installation, un second Member Device apparaît dans my-first-network. Une adresse IP est maintenant attribuée à notre Raspberry Pi, reconnue ici, en première ligne, comme un équipement Linux.

Mise en réseau ZeroTier – écran 7
Après avoir retrouvé l’icône de lancement de ZeroTier dans le sous-répertoire ProgramData/Microsoft/Windows/Start Menu/Program, j’en place une copie sur le Bureau. Le double-clic semble d’abord inopérant, mais il n’en est rien : l’application se lance et vient simplement se loger parmi les icônes cachées de la barre des tâches.

Mise en réseau ZeroTier – écran 8
Il devient alors possible, depuis le navigateur de notre station de travail, de rejoindre la station ADSB.im en indiquant simplement son adresse IP ZeroTier comme adresse à atteindre.

Mise en réseau ZeroTier – écran 9
À suivre…
Avec ce douzième volet, nous avons remis en service une station ADS-B complète : réception des signaux à 1090 MHz, décodage des trames, affichage local des avions et partage des données vers plusieurs réseaux. Le prochain article nous fera franchir une étape un peu différente. Nous nous éloignerons de la technique SDR au sens strict pour nous intéresser à l’exploitation des données déjà reçues et décodées.
Il sera alors question d’API, de fichiers JSON, de petits scripts Python et d’interrogations de services en ligne. Nous verrons comment récupérer les informations produites par notre propre station, les trier, les convertir, les enrichir, puis les comparer avec celles proposées par différentes plateformes. Après avoir appris à recevoir les avions, nous commencerons donc à faire parler les données qu’ils nous transmettent.
Notes
- VID, PID, ID pour : Identifiant du vendeur, Identifiant du produit et Rang de l’interface ↩︎
- Version V1.10.2910.14 proposée par Abdul Azzam Ajhari (https://github.com/abdazzamajhari), téléchargeable depuis : http://www.satsignal.eu/software/dump1090-win.1.10.3010.14.zip ↩︎
- Disponible depuis la page http://www.virtualradarserver.co.uk/Download.aspx ↩︎
- https://github.com/gvanem ↩︎
- https://discussions.flightaware.com/t/dump1090-for-windows-with-tar1090/97084 ↩︎
- Organisation de l’aviation civile internationale (ICAO – International Civil Aviation Organization). ↩︎
- Ce que j’ai réalisé plus tard aidé du site : https://www.coordonnees-gps.fr/conversion-coordonnees-gps afin de préciser mes coordonnées exactes. ↩︎
- https://opensky-network.org/data ↩︎
- https://ourairports.com/data/ ↩︎
- Cette est par exemple disponible depuis le site : https://www.data.gouv.fr/datasets/airports-locations-data ↩︎
- https://en.wikipedia.org/wiki/List_of_transponder_codes ↩︎
- Information disponible via la commande ipconfig lancée depuis le Terminal Windows (via le raccourci « Touche Windows ⊞ + X », puis sélectionner Terminal Windows. ↩︎
- https://opensky-network.org/feed ↩︎
Téléchargement
François Paget est aujourd’hui retraité. Membre fondateur du McAfee Labs, il y travailla de 1993 à 2016 comme spécialiste de la sécurité informatique et de la cybercriminalité. Il s’est notamment intéressé aux programmes malveillants, aux nouvelles menaces numériques, à la fraude financière et aux cyber-conflits. Longtemps Secrétaire général du CLUSIF, il anima son Panorama de la Cybercriminalité de 2002 à 2017 et publia en 2005, chez Dunod, l’ouvrage Vers & Virus.
Toujours curieux de techniques nouvelles, il s’est également passionné, à partir de 2021, pour la radio logicielle, ou SDR. Il a depuis publié plusieurs articles de vulgarisation consacrés au décodage de signaux numériques, notamment dans la revue Radioamateurs France et sur les sites ON5VL et HamAnalyst. Ses expérimentations récentes portent en particulier sur la réception ADS-B dans la bande des 1090 MHz.
Avec son épouse Yvette, il partage son temps entre la région parisienne et les Landes. Ils ont trois enfants et six petits-enfants.






