{"id":4783,"date":"2026-03-16T10:00:00","date_gmt":"2026-03-16T09:00:00","guid":{"rendered":"https:\/\/sophie-matthieu.eu\/index.php\/2026\/10\/02\/ads-b-sur-jetson-nano-decoder-le-ciel-sur-un-ubuntu-a-la-sauce-nvidia\/"},"modified":"2026-10-02T17:52:57","modified_gmt":"2026-10-02T15:52:57","slug":"ads-b-sur-jetson-nano-decoder-le-ciel-sur-un-ubuntu-a-la-sauce-nvidia","status":"publish","type":"post","link":"https:\/\/sophie-matthieu.eu\/index.php\/2026\/03\/16\/ads-b-sur-jetson-nano-decoder-le-ciel-sur-un-ubuntu-a-la-sauce-nvidia\/","title":{"rendered":"ADS-B sur Jetson Nano : d\u00e9coder le ciel sur un Ubuntu \u00e0 la sauce NVIDIA"},"content":{"rendered":"<p>Parmi mes petites machines qui tournent en continu \u00e0 la maison, il y en a une qui regarde le ciel plut\u00f4t que le r\u00e9seau : un d\u00e9codeur <strong>ADS-B<\/strong>, construit autour d&rsquo;une cl\u00e9 <strong>RTL-SDR<\/strong> \u2014 et, plut\u00f4t que le traditionnel Raspberry Pi, port\u00e9e sur une carte qui n&rsquo;\u00e9tait clairement pas pr\u00e9vue pour \u00e7a au d\u00e9part : une <strong>NVIDIA Jetson Nano<\/strong>.<\/p>\n<h2>ADS-B : \u00e9couter les avions se pr\u00e9senter eux-m\u00eames<\/h2>\n<p>L&rsquo;<strong>ADS-B<\/strong> (<em>Automatic Dependent Surveillance-Broadcast<\/em>) est le syst\u00e8me que la plupart des avions modernes utilisent pour diffuser en permanence, sans qu&rsquo;on leur demande rien, leur position, leur altitude, leur vitesse et leur identit\u00e9 \u2014 en clair, sur la fr\u00e9quence 1090 MHz, \u00e0 la port\u00e9e de n&rsquo;importe qui \u00e9quip\u00e9 d&rsquo;une antenne et d&rsquo;un r\u00e9cepteur radio bon march\u00e9. C&rsquo;est exactement ce que fait une cl\u00e9 <strong>RTL-SDR<\/strong> : un dongle USB initialement con\u00e7u pour la t\u00e9l\u00e9vision num\u00e9rique terrestre (le chipset Realtek RTL2838, toujours vendu comme adaptateur DVB-T), mais dont la polyvalence en a fait l&rsquo;outil f\u00e9tiche de toute une communaut\u00e9 de passionn\u00e9s de radio logicielle \u2014 ADS-B compris.<\/p>\n<h2>Le choix du Jetson Nano : du mat\u00e9riel pas vraiment pr\u00e9vu pour \u00e7a<\/h2>\n<p>Les projets ADS-B grand public tournent presque tous sur Raspberry Pi, avec des distributions cl\u00e9 en main. Ici, le d\u00e9codage tourne sur une <strong>NVIDIA Jetson Nano<\/strong>, une carte pens\u00e9e avant tout pour l&rsquo;inf\u00e9rence IA embarqu\u00e9e (vision par ordinateur, robotique), avec un <strong>Ubuntu 20.04 LTS \u00ab\u00a0\u00e0 la sauce NVIDIA\u00a0\u00bb<\/strong> \u2014 le syst\u00e8me L4T (<em>Linux for Tegra<\/em>) de NVIDIA, en version R32.6.1, qui ressemble \u00e0 un Ubuntu standard en surface mais embarque le noyau et les pilotes sp\u00e9cifiques au GPU Tegra de la carte.<\/p>\n<p>Le souci, c&rsquo;est que les paquets officiels <strong>FlightAware<\/strong> (<code>dump1090-fa<\/code>, <code>piaware<\/code>) et <strong>Flightradar24<\/strong> (<code>fr24feed<\/code>) ne sont tout simplement pas pr\u00e9vus pour cette combinaison : ce sont des paquets ARM64 construits comme <em>backports Debian 10 (buster)<\/em>, en ciblant le Raspberry Pi OS classique, pas un Ubuntu Focal maison-NVIDIA. Les faire tourner l\u00e0 a demand\u00e9 son lot d&rsquo;essais-erreurs \u2014 mises \u00e0 jour de distribution, d\u00e9pendances GPS manquantes, services qui refusaient de d\u00e9marrer, red\u00e9marrages r\u00e9p\u00e9t\u00e9s pour v\u00e9rifier qu&rsquo;une connexion vers les serveurs FlightAware ou Flightradar24 passait bien.<\/p>\n<h2>Trois logiciels, une seule cl\u00e9 SDR<\/h2>\n<p>Au final, la cl\u00e9 RTL-SDR est exploit\u00e9e une seule fois, par <strong>dump1090-fa<\/strong> (le d\u00e9codeur ADS-B maison de FlightAware), qui redistribue ensuite le flux d\u00e9cod\u00e9 en local sur le port 30005. <strong>Piaware<\/strong> et <strong>fr24feed<\/strong> viennent chacun piocher dans ce m\u00eame flux d\u00e9j\u00e0 d\u00e9cod\u00e9 plut\u00f4t que de rouvrir la cl\u00e9 SDR chacun de leur c\u00f4t\u00e9 \u2014 l&rsquo;architecture classique quand on veut alimenter plusieurs r\u00e9seaux de tracking en m\u00eame temps sans conflit d&rsquo;acc\u00e8s au mat\u00e9riel. Les trois services tournent aujourd&rsquo;hui en continu, le feeder PiAware connect\u00e9 \u00e0 FlightAware, et la station Flightradar24 identifi\u00e9e sous l&rsquo;indicatif <strong>T-LFRS55<\/strong>.<\/p>\n<h2>Pas besoin de GPS pour la position \u2014 juste pour l&rsquo;heure<\/h2>\n<p>Petite pr\u00e9cision qui a son importance : la <strong>multilat\u00e9ration<\/strong> (MLAT) \u2014 la technique qui permet de localiser un avion m\u00eame quand il ne diffuse pas sa position GPS, en comparant les minuscules d\u00e9calages de r\u00e9ception du m\u00eame signal par plusieurs stations au sol \u2014 n&rsquo;a pas besoin d&rsquo;un GPS embarqu\u00e9 sur la machine pour conna\u00eetre sa propre position. La position exacte de l&rsquo;antenne (latitude, longitude, altitude) est tout simplement enregistr\u00e9e une fois, \u00e0 la main, dans la configuration de piaware et fr24feed \u2014 un point fixe qui ne change jamais, pas la peine d&rsquo;un capteur GPS pour \u00e7a.<\/p>\n<p>Ce qui compte vraiment pour le MLAT, en revanche, c&rsquo;est la pr\u00e9cision de l&rsquo;<strong>heure<\/strong> : chaque station doit dater ses r\u00e9ceptions avec suffisamment d&rsquo;exactitude pour que le calcul de triangulation ait un sens. Pas de GPS non plus sur cette machine pour \u00e7a \u2014 elle va simplement chercher l&rsquo;heure sur le <strong>serveur NTP maison<\/strong> (\u00e9voqu\u00e9 dans un autre article de ce blog), qui se trouve juste \u00e0 c\u00f4t\u00e9 sur le r\u00e9seau local, et qui lui est synchronis\u00e9 sur GPS.<\/p>\n<p>Le r\u00e9sultat : une petite bo\u00eete qui tourne sans surveillance, qui regarde passer les avions au-dessus de la maison, et qui alimente deux r\u00e9seaux de tracking mondiaux en parall\u00e8le \u2014 sans capteur GPS \u00e0 elle, juste une position connue une fois pour toutes et une heure fiable r\u00e9cup\u00e9r\u00e9e sur le r\u00e9seau local.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Parmi mes petites machines qui tournent en continu \u00e0 la maison, il y en a une qui regarde le ciel plut\u00f4t que le r\u00e9seau : un d\u00e9codeur ADS-B, construit autour d&rsquo;une cl\u00e9 RTL-SDR \u2014 et, plut\u00f4t que le traditionnel Raspberry Pi, port\u00e9e sur une carte qui n&rsquo;\u00e9tait clairement pas pr\u00e9vue pour \u00e7a au d\u00e9part : [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[28],"tags":[],"class_list":["post-4783","post","type-post","status-publish","format-standard","hentry","category-aeronautique-drones"],"_links":{"self":[{"href":"https:\/\/sophie-matthieu.eu\/index.php\/wp-json\/wp\/v2\/posts\/4783","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sophie-matthieu.eu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sophie-matthieu.eu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sophie-matthieu.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sophie-matthieu.eu\/index.php\/wp-json\/wp\/v2\/comments?post=4783"}],"version-history":[{"count":2,"href":"https:\/\/sophie-matthieu.eu\/index.php\/wp-json\/wp\/v2\/posts\/4783\/revisions"}],"predecessor-version":[{"id":4785,"href":"https:\/\/sophie-matthieu.eu\/index.php\/wp-json\/wp\/v2\/posts\/4783\/revisions\/4785"}],"wp:attachment":[{"href":"https:\/\/sophie-matthieu.eu\/index.php\/wp-json\/wp\/v2\/media?parent=4783"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sophie-matthieu.eu\/index.php\/wp-json\/wp\/v2\/categories?post=4783"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sophie-matthieu.eu\/index.php\/wp-json\/wp\/v2\/tags?post=4783"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}