Faute de temps, il faut trouver des occupations « en pointillés »… Ainsi, malgré de nombreuses interruptions, ma poursuite radar fonctionne enfin… Non, vous n’assistez pas à la naissance d’un nouveau prestataire de contrôle aérien ! En fait, cela rejoint le projet de simulateur qui devait pouvoir être alimenté avec des vraies pistes. J’avais en effet entendu parler de petites stations « radar » « abordables ». En pratique, deux choses m’ont permis d’aller plus vite tout en limitant le coût : le Raspberry Pi et une clé USB Tuner TV.
Le Raspberry Pi pour exploiter l’ADS-B
Pour ceux qui n’en auraient jamais entendu parler, le Raspberry Pi est un ordinateur de la taille d’une carte de crédit qui s’articule autour d’un processeur ARM similaire à ceux que nous trouvons dans nos téléphones portables. Le processeur n’est pas forcément très performant (monocore) au regard de ceux de nos téléphones (4 cores) mais cela reste suffisant pour bien des utilisations… Vendu pour une trentaine d’euros, il permet de créer des petits ordinateurs aux utilisations diverses : media center, serveur, NAS… Le succès autour de cette machine, initialement à visée académique, a été purement et simplement énorme.
Tuner TNT et ADS-B
Au hasard de mes navigations sur internet, je suis tombé un jour sur des articles évoquant la notion de SDR (Software Defined Radio), c’est à dire, l’utilisation d’un logiciel pour des utilisations « radio »… Cela existe depuis longtemps déjà puisque les clés USB (ou PCI) tuner TV ou TNT ne sont pas nouvelles sauf que certains composants ont changé la donne en étant capable de recevoir un large spectre en matière d’ondes permettant d’envisager d’écouter les fréquences VHF, UHF, etc…
Combinées avec un décodage logiciel pour gérer les différentes modulations, la largeur de bande, etc, ces clés s’avèrent être capables de décoder l’ADS-B (et les fréquences de la bande aviation mais ce n’est l’objet)… Or, comme évoqué dans un autre article, l’ADS-B permet de récupérer facilement des données non cryptées transmises par les avions dont la position, la vitesse, l’altitude, etc… Toutes ces données s’avèrent suffisantes pour alimenter une petit outil de simulation ou de visualisation du trafic… Bref, cela permet de créer une sorte de « poursuite radar« [1].
Premier bilan
Ça fonctionne ! Rien d’étonnant dans l’absolu puisque de nombreuses personnes s’y sont déjà intéressées et que leurs données alimentent parfois des sites comme radarvirtuel… Toujours est-il que ça n’est pas si évident que ça pour ceux qui ne sont pas familiers avec Linux (la bidouille sur un serveur LAMP, ça aide déjà un peu). J’ai donc un Raspberry Pi fonctionnel avec un serveur transmettant soit des trames ADS-B brutes, soit des informations décodées le tout grâce à une clé Terratec utilisant son antenne d’origine donc peu performante dans la gamme de fréquence de l’ADS-B et ce d’autant plus que l’antenne est à l’intérieur ! Bref, il reste encore des améliorations à apporter…
Et ensuite ?
La suite consiste à continuer à coder le simulateur et à regrouper les différentes briques (« poursuite radar », traitement plan de vol, etc.) pour permettre de présenter quelque chose de cohérent. Autant dire qu’il reste du boulot d’autant que la sortie de Java 8 risque de me pousser à réécrire une partie du code pour exploiter ses nouveautés.
L’autre idée, c’est de voir s’il est facile d’utiliser un tel dispositif pour écouter la bande aviation… Mais chaque chose en son temps…
Pour ceux que ça intéresse… Je vous invite à consulter ces liens !
[MAJ Avril 2015] L’excellent site framboise314 a publié un tutoriel très complet sur l’utilisation de l’ADS-B via un tuner SDR et un Raspberry PI.
Un tutoriel qui m’a permis d’aller jusqu’au bout (merci à son auteur d’ailleurs)
Un bon aperçu des possibilités
Un bon guide « rapide » et en Français pour des opérations courantes sur le Pi (là aussi, merci à son auteur qui a su faire une synthèse claire des opérations « de base »).
- [1]Le terme est excessif car seuls les avions équipés ADS-B seront vus et la « poursuite » est totalement tributaire des données transmises…↩