Mais quel est donc cet avion qui passe au dessus de ma tête ?

… ou comment recevoir de manière facile et économique les signaux ADS-B émis par les avions de ligne via un récepteur SDR. Je vous propose aujourd’hui une bidouille absolument géniale: Vous allez pouvoir très facilement et pour un coût modique (une quinzaine d’euros – hors Raspberry -) capter les signaux de positionnement émis par les avions qui passent au dessus de votre tête (jusqu’à 400 km aux alentours !).

Pourquoi s’embêter ?

J’entends déjà certains d’entre vous me dire oui mais il y a flightradar24.com pour ça non ? Et oui vous avez raison et c’est d’ailleurs grâce à nous que ce genre de site (ou d’application iPhone/iPad/Android) fonctionne puisqu’il est possible de les alimenter avec vos données afin d’en faire profiter d’autres… mais honnêtement n’est-il pas beaucoup plus amusant et intéressant de capter vous même ces signaux ? Nous sommes d’accord !

Introduction aux signaux ADS-B

ADS-B est un acronyme signifiant « Automatic Dependent SurveillanceBroadcast« . Il s’agit d’un système « coopératif » destiné à la surveillance du trafic aérien. L’idée de base est venu du fait qu’il est beaucoup plus simple pour un avion en vol de connaitre sa propre position (via l’utilisation des signaux GPS notamment) que depuis le sol. Cette position (ainsi que d’autres informations) est donc transmise de manière régulière depuis l’avion (équipé d’une balise dédié) vers les stations au sol (notamment au niveaux des aéroports) qui peuvent alors se passer de radars bien plus coûteux et bien moins précis. La fréquence de transmission utilisée est le 1090 Mhz pour des messages d’une taille de 112 bits.

 Introduction à la SDR

SDR est un acronyme (encore un…) signifiant « Software Defined Radio » soit Radio Logicielle en français.  Traditionnellement un récepteur Radio est en effet constitué de beaucoup d’électronique (oscillateurs, filtres….) permettant de réaliser les différents traitements nécessaires à l’écoute des signaux sur un haut-parleur. Une radio dite « Logicielle » restreint l’électronique au strict minimum à savoir la numérisation des signaux par un convertisseur analogique-numérique et délègue tous les autres traitements (filtrage, démodulation…) au Logiciel. Cette approche présente de nombreux avantages avec une électronique réduite (donc moins chère et plus fiable) et surtout une capacité d’adaptation par simple mise à jour du logiciel. Vous l’ignorez peut-être mais c’est justement une technique de radio logicielle qui est utilisée par les stations de bases GSM… c’est ce qui permet aux opérateurs, simplement en mettant un jour un « firmware » de mettre à niveau leurs équipements vers de nouvelles normes (et qui au passage occasionne parfois certains bugs 🙂

Et donc ?

Et bien figurez-vous que des petits malins ont trouvé le moyen de bidouiller une simple clef USB permettant à l’origine de recevoir la télévision en TNT pour la transformer en un récepteur radio (ou scanner) permettant de couvrir une plage de fréquence allant de 24 Mhz à 1,7 Ghz ! Et pour couronner le tout une tel clé se négocie aux alentours de 15 Euros sur eBay.fr

Pour cela il est nécessaire d’utiliser une clef basée sur le chipset Realtek RTL2832U. Au niveau du Tuner il est possible d’utiliser le Rafael Micro R820T ou R828D qui couvrent tous les deux une large gamme de fréquence.

J’ai pour ma part opté pour un modèle en provenance de NooElec (sur eBay) qui serait (j’utilise le conditionnel..) modifié avec une diode de protection antistatique (ESD) au niveau de l’entrée « Antenne »… de quoi a priori augmenter la durée de vie potentielle lors de manipulation…

La clé DVB-T utilisé pour cette bidouille...

La clé DVB-T utilisé pour cette bidouille…

C’est parti !

L’introduction étant terminée, passons à la réalisation. Vous allez avoir besoin des composants suivants:

Un Raspberry Pi (une version « 2 » dans mon cas mais un B ou B+ devrait également convenir).

Notre clé USB DVB-T équipée du chipset Realtek RTL2832U et du tuner R820T.

Commençons par le traditionnel « update » de nos paquets:

pi@raspberrypi ~ $ sudo apt-get update && sudo apt-get upgrade

Il est nécessaire dans un premier temps de désinstaller le package « PulseAudio« :

sudo apt-get remove --purge pulseaudio
sudo apt-get autoremove
rm -rf /home/pi/.asoundrc /home/pi/.pulse

Si vous recevez un message d’erreur à la première étape du type (« Package ‘pulseaudio’ is not installed ») pas la peine d’insister vous pouvez passer à l’étape suivante. PulseAudio n’est normalement plus installé par défaut sur les dernières images de la Raspian.

L’étape suivante consiste à « black-lister » les drivers du Tuner TNT afin que la fonction de base soit désactivée lorsque la clé est insérée.

Cette opération se réalise tout simplement en éditant (ou créant) un  fichier de la manière suivante:

sudo nano /etc/modprobe.d/raspi-blacklist.conf

Et en y ajoutant les lignes suivantes:

# desactivation des drivers par defaut du dongle RTL
blacklist dvb_usb_rtl28xxu
blacklist rtl_2832
blacklist rtl_2830

Terminez cette session en cliquant sur Ctrl+O puis Ctrl+X.

Passons désormais à l’installation des softs nécessaires à savoir RTL-SDR:

sudo apt-get install git build-essential cmake libusb-1.0-0-dev
sudo git clone git://git.osmocom.org/rtl-sdr.git
cd rtl-sdr
sudo mkdir build
cd build
sudo cmake .. -DINSTALL_UDEV_RULES=ON
make
sudo make install
sudo ldconfig

Un petit « reboot » à ce stade peut-être une bonne précaution. Et vous allez enfin pouvoir brancher votre clé USB

sudo reboot
L'installation au froid dans mon garage...

L’installation au froid dans mon garage…

Lançons désormais un test afin de vérifier que tout a bien été pris en compte:

pi@raspberrypi ~ $ rtl_test

Si tout se passe bien vous devriez voir apparaitre quelque chose du genre:

Found 1 device(s):
  0:  Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Supported gain values (29): 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6 
Sampling at 2048000 S/s.

Info: This tool will continuously read from the device, and report if
samples get lost. If you observe no further output, everything is fine.

Reading samples in async mode...

Tout va bien ! Un petit Ctrl+C pour quitter et vous voici de retour dans la console.

Passons désormais à l’installation du soft spécifique à la réception des signaux ADS-B, il s’agit de dump1090:

pi@raspberrypi ~ $ git clone https://github.com/antirez/dump1090.git
pi@raspberrypi ~ $ cd dump1090/
pi@raspberrypi ~/dump1090 $ make
pi@raspberrypi ~/dump1090 $ chmod +x dump1090

Facile non ?

Il ne vous reste plus qu’à lancer l’application:

pi@raspberrypi ~/dump1090 $ ./dump1090 --interactive

Et si tout se passe bien, vous devriez voir apparaitre au bout de quelques secondes vos premiers aéronefs:

Hex    Flight   Altitude  Speed   Lat       Lon       Track  Messages Seen .  
--------------------------------------------------------------------------------
3c60d6          38000     449     48.752    2.269     54    30        1 sec
3922f3 FPO666B  4075      185     48.978    2.257     84    96        1 sec

On distingue aussi un avion en altitude de croisière (38 000 pieds d’altitude) et un second en phase d’approche vers Roissy CDG (à 4075 pieds soit un plus de 1 000 mètres d’altitude).

Bien que l’antenne d’origine ne soit absolument pas adapté pour ce type de fréquence on arrive tout de même à capter les signaux des avions proches… y compris depuis un garage comme dans mon cas !

Vue du mode interactif depuis une fenêtre Terminal Mac OS X

Vue du mode interactif depuis une fenêtre Terminal Mac OS X

Ce petit programme peut même se transformer en serveur Web afin d’afficher sur une carte la position des aéronefs:

pi@raspberrypi ~/dump1090 $ ./dump1090 --interactive --net

Il ne vous reste plus ensuite qu’à vous connecter sur votre Raspberry Pi depuis un navigateur connecté sur le même réseau (sur le port 8080 par défaut),en rentrant l’URL suivante http://<IP de votre Raspberry PI>:8080/

dump1090 sait également se transformer en serveur Web

dump1090 sait également se transformer en serveur Web…

Aller plus loin (ou plus haut ?)

Si vous avez été séduit par cette petite réalisation je vous montrerai dans un prochain article comme réaliser une antenne maison adaptée à cette fréquence permettant d’espérer atteindre plus de 400 km de portée (edit: c’est par ici) !

Amusez-vous bien !

5 Responses to “Mais quel est donc cet avion qui passe au dessus de ma tête ?”
  1. sem says:
    • Jerome says:
  2. Jean-Philippe says:

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *