Récepteur ADS-B sur Raspberry Pi

Parce que les applications du Raspberry Pi sont illimités...

Modérateur : Francois

Avatar du membre
brandt71
Messages : 28
Enregistré le : mer. 17 sept. 2014 20:09
Localisation : Clermont-Ferrand

Re: Récepteur ADS-B sur Raspberry Pi

Message par brandt71 » mar. 28 avr. 2015 13:33

sawaguna a écrit :à noter que cette antenne sur Ebay , donne de très bon résultats, si ça t’intéresse.
Passe par les enchères, nettement moins cher qu'en achat immédiat.
C'est celle que j'utilise sur l'installation qui est sur le flanc de la colline.
Prévoir du câble coaxial (type satellite, si la distance est pas trop longue) et un adaptateur N-Male vers MCX-Male (trouvable sur ebay pour quelques euros)

y a aussi l'astuce d'utiliser un amplificateur satellite, comme décrit ICI
C'est ce que j'utilisais au tout début, avec des résultats intéressants. Mais faut prévoir un T-Bias pour l'alimenter
Je comptais effectivement à terme m'en acheter une de ce type, mais pour le moment je pense en construire une comme celle-là : http://antirez.com/news/46

Pour info je capte pour le moment dans des conditions épouvantables : utilisation d'une micro antenne TNT (une dizaine de centimètres) sur un rebord de fenêtre (deuxième étage d'un immeuble qui en compte 3, dans une rue étroite) et pourtant je capte pas trop mal vu les conditions je trouve. Donc je pense attendre de déménager avant d'acheter une vraie antenne, en attendant je pense qu'une fabrique maison fera l'affaire. :)

sawaguna
Messages : 34
Enregistré le : lun. 27 avr. 2015 13:55

Re: Récepteur ADS-B sur Raspberry Pi

Message par sawaguna » mar. 28 avr. 2015 15:22

ça me rappelle mes débuts :)

j'utilisais cette antenne, accrochée sur mon volet :
Image

Meilleurs résultats que celle fournie de base avec le dongle rtl.

Testé ensuite cet amplificateur :
Image

Mais ça m'a pas convaincu. J'ai eu de bien meilleurs résultats en utilisant l'astuce de l'amplificateur satellite.

Et ensuite j'ai profité d'une belle promo sur wimo.com l'année dernière pour prendre une "vrai" antenne amplifiée avec filtre 1090 Mhz :D

Mais c'est clair que j'aurai pas fait cet investissement si je n'avais pas été aussi bien situé. L’aéroport est à peine à 10 minutes de chez moi.
Et selon la piste utilisée, les avions atterrissent en face de chez moi. Pareil au décollage. Selon leur destination, ils passent au-dessus de la maison :
Image Image

ou alors c'est les hélicos :
Image Image

Et c'est sans compter avec les Canadair. Y a la base aérienne d'Istres aussi, mais les avions passent plutôt loin. Mais j'arrive en a repérer certains sur le système ADSB

Un autre truc sympas, si tu y arrives, c'est d’écouter les fréquences de ton aéroport. Voir ICI. J'utilises perso SDR Sharp avec mon dongle
Avec de la chance tu auras au moins l'ATIS. Qui donne les conditions météo, point de rosée, risques aviaires, pression atmosphérique, le numéro de piste à utiliser, etc...
Scanne aussi dans la plage des 440/470 Mhz. Je sais pas trop à quoi ça correspond, mais j'arrive à écouter des infos concernant l'embarquement, les navettes, le nombres de passager, nombres de bagages avec le poids total et la répartition en soute, etc...

Edit :
si i s'agit bien de LFLC pour ton aeroport, tu as de la doc ICI, ICI et ICI

sawaguna
Messages : 34
Enregistré le : lun. 27 avr. 2015 13:55

Re: Récepteur ADS-B sur Raspberry Pi

Message par sawaguna » mer. 29 avr. 2015 05:47

pour ceux que ça intéresse, modesdeco2 permet d'enregistrer les données GPS envoyées par les avions.
Faudrait tester, mais je crois que ça n'enregistre qu'un seul vol à la fois malheureusement

commencer par installer socat, pour avoir des ports COM virtuels :

Code : Tout sélectionner

sudo apt-get install socat
ensuite, faut récupérer le code ICAO de l'avion qui nous intéresse (le code comprend que le strict minimum) :

Code : Tout sélectionner

./modesdeco2  --gain 49.6 --agc --web 8081
Image

Dans mon cas, j'ai choisis le vol 39644D

Ensuite, créer un script (par exemple nmea.sh, et le rendre exécutable) :

Code : Tout sélectionner

killall -SIGINT modesdeco2
killall socat
socat -d -d PTY: PTY: &
./modesdeco2 --nmea 39644D:/dev/pts/0:4800 --nmea-logfile /root/essai.nmea --gain 49.6 --agc --freq-correction 21 --web 8081 &
donc, ce qui nous intéresse :

Code : Tout sélectionner

--nmea 39644D:/dev/pts/0:4800 --nmea-logfile /root/essai.nmea
remplacer 39644D par le code ICAO qu'on souhaite avoir.
le "/dev/pts/0" est le port COM virtuel crée par socat
socat crée normalement "/dev/pts/0" et "/dev/pts/2"
et la connexion au terminal (via putty par exemple) crée normalement "/dev/pts/1"
Attention de ne pas envoyer les données sur le mauvais port (ça m'est arrivé, avec toutes un tas de données et d'erreurs qui s'affichaient dans putty)

suffit ensuite de lancer le script :

Code : Tout sélectionner

./nmea.sh
ça va créer un fichier essai.nmea-XXXXXXXX-XXXXXX.log (les X correspondent à la date et l'heure) dans /root

ensuite installer Google Earth et charger le fichier log (dans outils => gps => importer depuis le fichier et importer)
faire un clic droit sur GPX Périphériques GPS => Propriétés => Altitude et choisir "Absolue" et ok
Image

de nouveau faire un clic droit sur GPX Périphériques GPS et cliquer sur "Afficher le Profil de dénivelé"
Ce qui donne ceci :
Image

J'ai utilisé mon raspberry de test, dans de mauvaises conditions. Ceci explique les pertes de données qu'on peut voir dans la capture, ainsi que la vitesse parfois fantaisiste de l'avion (presque du 50 000 km/h :lol: :mrgreen: )

Enjoy :)

Avatar du membre
brandt71
Messages : 28
Enregistré le : mer. 17 sept. 2014 20:09
Localisation : Clermont-Ferrand

Re: Récepteur ADS-B sur Raspberry Pi

Message par brandt71 » mer. 29 avr. 2015 09:08

Merci pour ces infos, il faudra que je teste tout ça (le problème maintenant c'est plus QUOI tester mais QUAND :D)

sawaguna
Messages : 34
Enregistré le : lun. 27 avr. 2015 13:55

Re: Récepteur ADS-B sur Raspberry Pi

Message par sawaguna » mer. 29 avr. 2015 22:13

Bon, j'ai testé les options d'enregistrements GPS de modesdeco2, de manière à suivre un avion en temps réel dans Google Earth, au lieu d'attendre d'avoir les logs.
C'est bien galère :| , et le résultat est moyen au final. Les logiciels plantant pas mal.
C'est plus simple de tout faire sous windows, mais vu qu'on est sur un forum consacré à la framboise....

Pour ceux qui veulent tester (enfin, y a quelqu'un d'autre sur ce topic hormis brandt71 et moi :?: ) :

Faut télécharger com0com : ICI . Première galère, les pilotes ne sont pas signés. Donc sous windows 7 faut démarrer en mode test (voir ICI) et pour windows 8 voir ICI.

Une fois com0com installé, celui-ci a créé des ports COM virtuels :
Image

Ensuite, télécharger com2tcp : ICI. Décompresser, et créer un fichier .bat (essai.bat par exemple), à la racine du répertoire, avec :

Code : Tout sélectionner

com2tcp --baud 500000 \\.\COM5 192.168.0.XXX 3009
Remplacer le port COM par un de ceux créés par com0com. Dans mon cas le port COM5. Et remplacer l'adresse IP par celle de votre raspberry.
Vous pouvez changer la vitesse du port si désiré, mais faut qu'elle soit identique avec celle utilisée dans socat par la suite
Faire sur le raspberry :

Code : Tout sélectionner

socat -?? |grep ' b[1-9]' 
, pour connaitre les vitesses supportées.

Ensuite sur le raspberry, c'est plus ou moins la même procédure que précédemment. Suffit de modifier le script :

Code : Tout sélectionner

killall -SIGINT modesdeco2
killall socat
socat -d -d PTY: PTY: &
./modesdeco2 --nmea 39644D:/dev/pts/0:500000 --nmea-logfile /root/essai.nmea --gain 49.6 --agc --freq-correction 21 --web 8081 &
socat tcp-l:3009 /dev/pts/2,raw,echo=0,b500000 &
Attention à choisir les ports COM virtuels créés par Socat. Ils sont au nombre de 2. C'est les commandes : /dev/pts/X
1 pour l'entrée (enregistrement des données GPS par modesdeco2) et 1 pour la sortie (qu'on envoie en tcp)
Si vous avez un doute, dans la console putty vous devriez avoir quelque chose de similaire à ça :

Code : Tout sélectionner

2015/04/29 21:13:58 socat[3836] N PTY is /dev/pts/0
2015/04/29 21:13:58 socat[3836] N PTY is /dev/pts/2
Ne pas oublier de changer le code ICAO (voir message précédent).

Lancer le script sur le raspberry.
Lancer le fichier .bat qui est dans le répertoire de com2tcp
Vous devriez avoir quelque chose comme ça, dans l'invite de commande Windows :

Code : Tout sélectionner

com2tcp --baud 500000 \\.\COMX 192.168.0.XXX 3009
OpenC0C("\\.\COMX", baud=500000, data=8, parity=no, stop=1) - OK
Lancer Google Earth => Outils => GPS => Temps Réel
Interval d'interrogations : 2s
Cocher "Suivre automatiquement le trajet" et cliquer sur "Démarrer"
Il devrait se connecter sur le port COM qui va de paire avec celui choisis (dans mon cas c'est le COM6)
Google Earth devrait ensuite zoomer directement sur l'avion suivi.
Pour désactiver la vue auto, cliquer sur "lieu temporaire", faire un clic droit sur "Real Time GPS" => Propriétés => Actualisation et décocher "Accès direct à la vue lors de l'actualisation" et OK

Par contre la fenêtre de dénivelés ne semble pas pouvoir être activée :(

Avatar du membre
brandt71
Messages : 28
Enregistré le : mer. 17 sept. 2014 20:09
Localisation : Clermont-Ferrand

Re: Récepteur ADS-B sur Raspberry Pi

Message par brandt71 » mer. 29 avr. 2015 23:41

Je ne sais pas mais depuis quelques jours nous avons l'air d'être en tête à tête en effet :P .

Donc j'ai testé l'export des données GPS dans Google Earth (merci pour le tuto) et c'est effectivement sympathique, ce qui l'est moins c'est de devoir relancer systématiquement modesdeco2 en précisant le code ICAO, et de pas pouvoir le faire "à la volée". Du coup je n'ai pas poussé le vice à le faire en temps réel.

Je découvre petit à petit le logiciel donc je ne comprend pas encore tout (je viens juste de découvrir que pour voir le départ et la destination il suffisait de survoler les codes aéroports), par contre peut-on voir les compagnies aériennes (sans les déduire du numéro du vol) ?

Et deuxième question, concernant basestation.sqb tu le "laisse vivre" en ne l'alimentant que de tes données (enfin modsdeco2 le fait pour toi) ou de temps en temps tu repars sur une version que tu télécharge sur internet ?

Quand j'aurais un peu de temps il faudrait que j'essaye de faire un script qui met à jour tout seul flightroute.sqb (pas facile à cause de l'authentification) mais cela serait assez pratique quand même. En attendant d"ici la fin de la semaine je vais essayer de fabriquer mon antenne maison et voir ce que cela donne comme résultat.

sawaguna
Messages : 34
Enregistré le : lun. 27 avr. 2015 13:55

Re: Récepteur ADS-B sur Raspberry Pi

Message par sawaguna » jeu. 30 avr. 2015 00:47

pour les compagnies aériennes, je crois que le logiciel ne supporte pas encore les "OperatorLogos"
Mais vu que l'auteur du logiciel rajoute énormément de fonctionnalités de manière régulière, ça devrait arriver tôt ou tard

Sinon, si l'avion a une photo, tu clic dessus. ça te rediriges sur http://www.airport-data.com , où tu peux avoir pas mal d'infos

Pour basestation.sqb , c'est en fait PlanePlotter et VirtualRadar qui s'en charge chez moi, et non modesdeco2/modesmixer2
Et j'y touche pas

L'avantage de VirtualRadar étant que tu peux avoir des rapports complets à partir de ce fichier, ce qui est plutôt sympas.
Ou tu peux utiliser BaseStationReporter (inclus dans BaseStation)
Faut mettre basestation.sqb dans C:\Users\TonNom\AppData\Local\VirtualStore\Program Files (x86)\Kinetic\BaseStation et lancer BaseStationReporter

sawaguna
Messages : 34
Enregistré le : lun. 27 avr. 2015 13:55

Re: Récepteur ADS-B sur Raspberry Pi

Message par sawaguna » jeu. 30 avr. 2015 14:35

un petit tuto pour ceux qui veulent utliser leur dongle sur leur framboise comme serveur pour écouter les fréquences radio.

Télécharger SDR Sharp : ICI. Décompresser et cliquer sur le fichier "install.bat", ce qui créer un répertoire "sdrsharp"
Suffit de cliquer sur "SDRSharp.exe" pour lancer le logiciel

Sur votre framboise, faut d'abord couper dump1090 ou modesdeco2

Code : Tout sélectionner

killall -SIGINT dump1090
ou
killall -SIGINT modesdeco2
ensuite taper :

Code : Tout sélectionner

rtl_tcp -a 192.168.0.109
L'adresse IP est à remplacer par celle de votre raspberry

Dans SDR Sharp :
Image

Sélectionner dans source : RTL-SDR / TCP
Dans les réglages indiquer l'adresse IP du raspberry
Et ensuite lancer via le bouton "Start". Une fois connecté, vous aurez accès à la partie "RF Gain" dans les réglages (Tuner AGC)
La partie "RTL AGC" a tendance à faire planter "rtl_tcp" chez moi. A tester
Suffit de cliquer sur les chiffres pour choisir la fréquence voulue

Note : Les fréquences aériennes sont en modulation "AM"

Sinon, un tutorial sympas : ICI
Il s'agit d'utiliser rtl_udp en combinaison de ezstream et de icecast2
Ce qui permet de streamer en continue une fréquence, accessible depuis n'importe quel navigateur

Une petit modif dans la ligne de commande, qui fonctionne mieux chez moi :

Code : Tout sélectionner

rtl_udp -A fast -M -f 125350000 -o 2 -s 22000 | lame --scale 2 -r -s 22.0 -m m - - | ezstream -c mystream.xml
L'option M indique une modulation AM
l'option "-o 2" (oversampling) donne un meilleur résultat chez moi que "-o 4"
et l'option "-f" permet d'indiquer la fréquence. Ici 125.350 Mhz qui est la fréquence de l'ATIS pour Marseille-Provence (LFML)

Un enregistrement, pour les curieux : ICI
Faudrait affiner les réglages pour un meilleur résultat
en passant le sample rate à 44100

Code : Tout sélectionner

rtl_udp -A fast -M -f 125352000 -o 2 -s 44100 | lame --scale 2 -r -s 44.1 -m m - - | ezstream -c mystream.xml
C'est meilleur, mais j'ai une autre fréquence en fond sonore (raspberry de test, mauvaise réception)

L'auteur du Tuto fourni également une appli Android pour contrôler le tout (mais pas pu tester, elle ne supporte pas ma tablette)

Edit 03/05 =>
Quelques enregistrements en plus :
120.200 Mhz (Approche) : ICI et ICI
125.350 Mhz (ATIS): ICI
127.725 Mhz : ICI
128.850 Mhz (Contrôle): ICI
131.225 Mhz (Approche): ICI et ICI

A part l'ATIS, les fréquences n’émettent pas en continue. Donc pas mal de static entre deux communications

Edit 2 :
Après avoir fait d'autres essais, un sample rate de 9.0K donne de meilleurs résultats sur les fréquences aériennes (fréquence de l'ATIS Marseille-Provence dans le code, à changer).

Code : Tout sélectionner

rtl_udp -A fast -C -M -f 125.350M -s 9.0k | lame --scale 8 -r -s 9.0 -m m - - | ezstream -c mystream.xml
et pour scanner plusieurs fréquences (fréquences utilisées par LFML):

Code : Tout sélectionner

rtl_udp  -A fast -C -M -f 120.200M -f 131.225M -f 127.725M -f 121.900M -s 9k -p 8 -l 139| lame --scale 11 -r -s 9.0 -m m - - | ezstream -c mystream.xml
le plus compliqué étant de régler le squelch (le -l 139 dans le code)

sawaguna
Messages : 34
Enregistré le : lun. 27 avr. 2015 13:55

Re: Récepteur ADS-B sur Raspberry Pi

Message par sawaguna » ven. 8 mai 2015 14:42

Pour ceux qui voudraient décoder les message ACARS, l'auteur de Modesdeco2 met également à disposition le logiciel acarsdeco2

Pour le télécharger : ICI
Pour les fréquences ACARS : ICI (perso, je reçois principalement sur 131.725MHz)
Pour des infos sur ACARS : ICI et ICI

Attention à paramétrer correctement la valeur ppm de votre dongle.
le fichier readme indique la procédure pour connaitre cette valeur sur SDR Sharp.

De plus, même si le logiciel est capable d'écouter 3 fréquences en simultanées, celles-ci ne doivent pas être espacées de plus de 2mhz
Ceci étant du à une limitation du dongle.
Donc, si vous souhaitez écouter les messages sur 131.725Mhz et sur 136.900Mhz, en même temps, il vous faudra 2 dongles

voici un montage de quelques messages reçus chez moi :
Image


Sinon, niveau feeder, celui de PlaneFinder est intéressant, car il intègre un plugin Google Earth pour ceux intéressés.
Attention, il existe 2 feeder.
Le plus récent est dispo ICI. Nettement plus simple à installer et paramétrer que l'ancien, meilleur design, prend moins de ressources
Mais l'option Google Earth n'est pas dispo

Pour utiliser l'ancien, voici le tutorial à suivre : ICI
Attention, l'installation est très longue. Ne touchez à rien une fois la commande 'npm install -g pfclient-latest.tgz' lancée, même si ça ne semble pas bouger, suffit d'attendre que ça s'installe.

Une fois installé, le feeder est dispo sur le port 30053 de votre framboise
Voici 2 captures :
Image Image

Par contre, c'est un gros bordel et ça pompe énormément de ressources sur la framboise
ça mériterai d'être amélioré

Quelqu'un (j'ignore qui), met à disposition un accès à l'interface de son feeder ICI

Avatar du membre
brandt71
Messages : 28
Enregistré le : mer. 17 sept. 2014 20:09
Localisation : Clermont-Ferrand

Re: Récepteur ADS-B sur Raspberry Pi

Message par brandt71 » sam. 9 mai 2015 14:46

sawaguna a écrit :Edit :
si i s'agit bien de LFLC pour ton aeroport, tu as de la doc ICI, ICI et ICI
J'avais loupé ton édit, mais oui je suis bien proche de LFLC, merci pour la doc !

J'ai fais quelques essais avec SDR Sharp ... non concluants. Je pense (je suis même sûr) que je paye le fait d'avoir une antenne pas du tout adaptée. Je n'arrive même pas à voir les signaux ADS-B. Bref ModeSDeco2 fonctionne plutôt bien, pour le reste je pense qu'il faut que j'attende d'acheter une antenne digne de ce nom.

Merci pour les différentes infos partagées, elles me serviront quand j'aurais cette fameuse antenne.

Répondre

Retourner vers « Et tout le reste »