Ricevitori Jetvision + Raspberry Pi 3B+ = feed per PlanePlotter

Questa pagina ha lo scopo di descrivere come interfacciare i ricevitori ADS-B, della tedesca Jetvision, ad un mini computer Linux Raspberry, sostituendo così un computer sempre acceso con il programma PlanePlotter avviato, e poter operare ugualmente con la funzionalità di dati RAW attiva, verso i server del coaa.co.uk, mantenendo lo status di Ground Station per operazioni di triangolazione MLAT (anche nei Mode-A/C).

Come prima cosa bisognerà procurarsi un Raspberry. Per il nostro progetto il modello che vi suggerisco è il Raspberry Pi 3 Model B+, facilmente reperibile su Amazon, completo di case e accessori, al costo attuale di circa 80 euro.

Questo RPi a mio avviso è il giusto compromesso di velocità e stabilità. Inoltre è silenziosissimo; non ci si accorge che è acceso. Il nuovo RPi 4, invece, è molto più costoso e monta pure una ventola di raffreddamento.

L'Rpi 3 invece ha solamente dei dissipatori metallici di calore che si fissano sopra e sotto il chip principale con del biadesivo.

L'alimentazione è garantita da un mini trasformatore che eroga 5V, 3A, 15W. La spesa di energia elettrica per lasciarlo operativo H24 è quindi minima.

Con l'RPi viene spedita anche un'utilissima chiavetta usb T-Flash, sulla quale possiamo inserire, per operazioni di lettura e scrittura, la micro-sd ricevuta in dotazione.

Il Raspberry si assembla facilmente, in poco più di 10 minuti. Una volta racchiuso nel suo case, è immediatamente pronto per essere operativo.

Per ottenere il nostro obiettivo utilizzeremo come cavallo di troia un programma, già parzialmente pronto all'uso e disponibile on-line. Si tratta della piattaforma di ricezione ADS-B di Flightaware. Andremo poi manualmente a modificare questo programma, aggiungendo sostanzialmente il programma PPUP1090 che espleterà il lavoro di traslare i dati ricevuti verso i server di Planeplotter. Per scaricare Flightaware, basterà andare sul seguente link:

piaware.flightcdn.com/piaware-sd-card-4.0.img.zip

Il file in questione è un file immagine che dovremmo copiare sulla scheda micro-sd che abbiamo ricevuto in dotazione con il nostro nuovo Raspberry. Come operazione preliminare dobbiamo cancellare manualmente tutti i file del sistema operativo Raspbian che sono presenti nella micro-sd ricevuta con il Raspberry. Cancelleremo quindi tutti i files presenti sulla route del boot e poi procederemo ad una formattazione dell'intero supporto di memoria.

E' importante, quando si avvia la formattazione, selezionare > Ripristina predefinite dispositivo. Così facendo la micro-sd sarà effettivamente della capienza fisica originaria. Ultimamente le micro-sd che si ricevono con il Raspberry sono da 32GB, e quindi più che sufficienti per il nostro scopo.

Una volta formattata la schedina micro-sd bisognerà scaricare e installare sul nostro pc un programma per scrivere il file immagine linux di piaware. Vi consiglio di utilizzare il software balenaEtcher, scaricabile dal seguante indirizzo:

https://etcher.io/

Una volta installato il programma scrivente, lo apriamo e selezioniamo come file da scrivere il piaware-sd-card-4.0.img, come destinazione la nostra schedina micro-sd da 32GB e poi facciamo click su Flash! per avviare il processo di scrittura.

Teniamo d'occhio la percentuale di avanzamento dell'operazione e che non si verifichino imprevisti.

Se tutto andrà per il verso giusto, alla fine il programma ci confermerà che il processo di scrittura del file immagine è stato completato con successo.

A questo punto, se andiamo a leggere il risultato ottenuto nella micro-sd, troveremo una molteplicità di files nella root. La prima operazione da compiere sarà quella di creare un nuovo file, chiamandolo " ssh ", senza estensione alcuna. Windows ci chiederà conferma per il fatto che il file ssh, senza estensione, potrebbe non funzionare. Cliccare, SI, modificando l'estensione del file. La creazione di questo file ci consentirà di aprire una sessione di dialogo, via protocollo SSH appunto, con il nostro Raspberry per apportare le modifiche successive mediante comandi linux.

Ritorniamo a visualizzare ora i files contenuti nella root della nostra scheda micro-sd, destinata ad essere fisicamente montata poi nel Raspberry. Concentriamo adesso la nostra attenzione sul file di configurazione, piaware-config.txt. Questo file è infatti fondamentale per il funzionamento del nostro Raspberry. Esso conterrà infatti tutta la configurazione dell'interfaccia, sia per quanto riguarda la connessione del Raspeberry all'interno della nostra rete domestica, sia per quanto riguarda la tipologia di ricevitore ads-b utilizzato. Il programma di Flightaware è ben concepito sotto questo punto di vista: sono supportati una moltiplicità di dispositivi riceventi. Il più semplice è funzioanle è una comune chiavetta basata sul chip RTL2832U R820T2. Sono poi contemplati tutti e tre i ricevitori semi professionali della tedesca Jetvision. E' proprio questa possibilità che ha mi spronato a sperimentare questo interfacciamento.

Selezioniamo quindi il nostro file piaware-config.txt, e lo editiamo mediante il programma Bloco note.

La prima cosa da fare è decidere la modalità di connessione del Raspberry all'interno della nostra rete domestica. E' possibile collegarlo fisicamente via cavo, quanto senza fili via WI-FI. A sua volta la connessione potrà essere con IP variabile (DHCP) o con IP fisso (statico) assegnato da noi. Io ho scelto, per ragioni di praticità, di collegare l'RPi via WI-FI (sulla rete a 5GHz) e di assegnarli un IP fisso. Il fatto dell'indirizzo fisico che non cambia è comodo sia per l'utilizzo di Planeplotter che per la normale manutenzione e collegamento via interfaccia web di Flightaware. Altro comando fondamentale sarà appunto il receiver-type. Sono riuscito a collegare il mio vecchio mode S-Beast, semplicemente scrivendo come tipologia di ricevitore "beast". Anche il nuovo AirSquitter, ed anche il consolidato Radarcape, funzionano, semplicemente assegnando come receiver-type "radarcape". Visto che sia il mio Radarcape remoto, che il mio Airsquitter di casa, hanno assegnato un IP statico, bisogna poi aggiungere la riga di comando "radarcape-host xxx.xxx.x.xxx", specificando appundo l'indirizzo IP fisso del ricevitore.

Molto bene, a questo punto siamo pronti per iniziare a dialogare con il nostro Raspberry. Togliamo la scheda di memoria dalla chiavetta T-Flash. La inseriamo nello slot del Raspberry. Alimentiamo l'RPi e lo accendiamo. Ora bisogna scaricare e installare sul nostro PC il programma PuTTY. Una volta avviato, selezioneremo una connessione del tipo SSH. Nel campo Host Name o IP address andremo a scrivere l'indirizzo IP statico assegnato al nostro nuovo Raspberry. Quando si stabilisce una connessione con un nuovo Raspberry, la prima volta comparirà questa finestra di Security Alert. Cliccare su "Si".

Cliccando poi su open, all'interno del PuTTY, si aprirà una sorta di finestra DOS mediante la quale si stabilirà la connessione con il dispositivo remoto.

Se tutto è ok il Raspberry scriverà "login as:". Noi risponderemo con "pi", seguito da un invio. A questo punto l'RPi ci chiederà la password per accedere. Quella di default è "flightaware". Se la inseriamo correttamente il prg ci darà il benvenuto, come vedete nell'immagine qui sotto. Alla fine ci sarà il prompt di comando: pi@piaware:~ $

Ok; diciamo che fino a qui abbiamo giocato. Ora arriva il bello: bisogna inserire tutti i seguenti comandi linux, facendo molta attenzione a non sbagliare ad editare nemmeno una virgola altrimenti poi... non funzionerà nulla.

sudo apt-get update

sudo apt-get install git

sudo apt-get install librtlsdr-dev



sudo apt-get install cmake

sudo apt-get install libusb-1.0-0-dev

sudo apt-get install pkg-config



cd ~

git clone git://github.com/MalcolmRobb/dump1090.git

sudo mv dump1090 ppup

cd ppup

Bene, a questo punto ci serve un file che sicuramente avremo già provveduto a recuperare, se il nostro scopo è appunto quello di creare una Ground Station per il circuito di PlanePlotter. Stiamo parlando del famoso file coaa.h che contiene la configurazione utente per la stazione RPi che andremo ad installare. Giusto per completezza... lo si richiede al seguante indirizzo:

http://www.coaa.co.uk/rpi-request.htm

Andremo ad aprire con il blocco note il suddetto file e faremo un copia di tutto il contenuto.

Ora continuiamo con i comandi linux:

cd ~/ppup

sudo nano coaa.h

Digitando questo comando si aprirà il file coaa.h di default, nel quale andremo a sostituire tutte le righe con quelle che abbiamo copiato del nostro !

Con una serie di (Ctrl+k) concelleremo tutte le righe. Poi faremo un (ctrl+V) per copiare. Il risultato sarà così:

//coaa.h configuration file for ab cd 2018-07-11 05:58:29

#define USER_REGNO xxxxxx

#define USER_AUTHCODE xxxxxxxxx

#define USER_LATITUDE xx.xxx

#define USER_LONGITUDE xx.xxx



Ora bisognerà fare un (Ctrl+o), e invio, e poi un (Ctrl+x) per uscire dalla scrittura del file.

Riprendiamo con altri comandi:

cd ~/ppup

make -f makeppup1090

Creiamo ora un nuovo file vuoto:

cd ppup

sudo touch ppup-maint.sh

sudo chmod +x ppup-maint.sh

sudo nano ppup-maint.sh



Andiamo adesso a copiarci dentro questo contenuto:

! /bin/sh

while true

do

sleep 30

/home/pi/ppup/./ppup1090

done



Salviamo ed usciamo con la solita sequenza (Ctrl+o) e (Ctrl+x).

Apriamo ora un'altro file, con lo scopo di editarlo e apportare una aggiunta:

sudo nano /etc/rc.local

Subito sopra l'ultima riga del file, quindi sopra a " exit 0 ", andiamo ad inserire questo contenuto:

/home/pi/ppup/ppup-maint.sh &

Salviamo ed usciamo con la solita sequenza (Ctrl+o) e (Ctrl+x).

Molto bene. Abbiamo terminato ! Ora siamo pronti per verificare se... tutto funziona a dovere. Basta digitare il comando: top

Compariranno così tutti i processi che il Raspberry sta eseguando. Dobbiamo individuare che siano presenti:

dump1090, piaware, beast-spl+, e soprattutto ppup1090

Se ci sono tutti... siamo pronti per iniziare le prove on-line. Colleghiamo al nostroi Raspberry il ricevitore ads-b. Se lo facciamo fisicamente, via cavo, come ho fatto io con il Mode S-Beast, è fondamentale utilizzare sempre la stessa porta usb dell'RPi. Se la cambiano in corso d'opera il ricevitore non riuscirà più a dialogare con il Raspberry correttamente. Mi raccomando: scegliete una porta e lasciate il cavo sempre su quella!

A questo punto dobbiamo verificare la cosa più importante, obiettivo di tutto questo lavoro: vedere che effettivamente i dati ricevuti vengano ritrasmessi dal ppup1090 verso i server di Planeplotter. Lo facciamo editando la suddetta sintassi:

./ppup1090 --net-bo-ipaddr 127.0.0.1 --net-bo-port 30005

Se abbiamo installato tutto correttamente visualizzeremo nella finestra di dialogo dell'RPi i dati relativi al programma ppup1090 Uploader. Ci sarà un conto alla rovescia da 60 secondi in giù. Arrivati allo zero, visualizzeremo se, degli aerei sono stati ricevuti e ritrasmessi verso il server Apache di Planeplotter.

Ma non finisce tutto qui... se apriamo un browser web a nostro piacere, ed editiamo l'indirizzo IP statico che abbiamo assegnato al nostro Raspberry, visualizzeremo la pagina qui sopra. Si tratta dell'interfaccia web di FlightAware, il nostro cavallo di troia, il programma ospite che siamo andati a modificare per aggiungere i feed verso Planeplotter. Funziona come una specie di semaforo, solo che le luci sono quattro: 1090 Radio, PiAware, FlightAware e MLAT. 1090 Radio riguarda il nostro ricevitore. Luce verde significa che è ok, collegato e riceve dati. PiAware è il programma che fa l'upload dei dati verso la piattaforma di FlightAware. Idem, verde significa che funziona. FlightAware verde significa che stiamo ricevendo e visualizzando correttamente del traffico. MLAT verde significa che anche la triangolazione è abilitata. Se qualcosa invece non funziona le luci del semaforo variano e diventano gialle o rosse. Sarebbe un problema !

Se clicchiamo su " Go to 1090 SkyAware Map ", si aprirà la visualizzazione in carta di FlightAware. Facciamo un passo indietro, ritornando alla pagina iniziale delle quattro luci verdi. Se clicchiamo sul link " View your site statistics online ", si aprirà una pagina dell'utente dalla quale è possibile gestire anche una moltiplicità di installazioni FlightAware. E' proprio il mio caso. Io infatti ho installato tre diverse stazioni H24 collegate ad altrettanti Raspberry. Come potete vedere dall'immagine qui sotto, posso gestire tre SITE diversi, con i miei tre ricevitori Jetvision: AirSquitter!, Radarcape e Mode S-Beast.

A questo punto, saranno già passati alcuni minuti da quando il Raspberry a iniziato a mandare dati verso i server di Planeplotter. E' giunto quindi il momento di lanciare un test di auto-diagnosi per vedere se i dati RAW sono funzionanti.

Nell'immagine qui sopra vedete che il mio AirSquitter, con identificativo ZJ, rispondeva correttamente alla richiesta via UDP di dati RAW. Per fare ciò è inderogabile aprire la porta 9742, con protocollo UDP, sul nostro modem-router di casa, sull'indirizzo IP statico che abbiamo assegnato al Raspberry. Potremmo così procedere con l'invio di una mail al supporto coaa per richiedere la validazione della nostra nuova Ground Station.

Qui sopra altro test, questa volta interrogando il codice di autenticazione che corrisponde al mio Radarcape. Come potete vedere questa installazione, con identificativo Z7, è già una Ground Station approvata/validata.

Una volta messa in funzione la nostra Ground Station, ci potremo collegare al Raspberry mediante il programma PlanePlotter.

Qui di seguito vi riporto il settaggio necessario utilizzando come ricevitore il Mode S-Beast.

Molto semplicemente bisognerà dire a PlanePlotter di collegarsi al Beast via protocollo TCP/IP collegandosi all'indirizzo statico assegnato all'RPi e "ricevere" dalla porta 30005.

Gli impianti ADS-B che trasmettono i propri dati verso il circuito di PlanePlotter sono pochi rispetto ad altre piattaforme. Il fatto si spiega perchè Planeplotter non è certamente un programma facile. E' quanto di più professionale e completo esista attualmente. Nell'immagine precedente potete vedere le stazioni di PP presenti in Europa. Il paese dove il programma è più diffuso è notoriamente il Regno Unito.

In Italia le persone che si cimentano con questo sistema si possono contare sulle dita di due mani ! E pensare che Planeplotter è veramente l'unico programma in circolazione che, con la presenza di almeno 3 ground station, è in grado di trovare la posizione di un velivolo che non la trasmette, grazie alla nuova modalità MLAT anche per i Mode-A/C. Le numerose stazioni che vedete a nord-est, sono per lo più merito mio e di due amici che sono riuscito a stregare con la magia di Planeplotter. Auspico che le stazioni possano numericamente crescere sempre di più perchè quasta piattaforma incredibile se lo merita !

Non è il caso adesso di entrare nel merito delle funzionalità di PlanePlotter. Qui di seguito però voglio inserire solo un esempio di MLAT, grazie alla presenza di quattro Ground Station. Dall'elenco dei velivoli senza posizione, seleziono I-ELLY. Come vedete è verde perchè ricevuto contemporaneamente da più di 3 stazioni a terra (fz, Z4, Z7, dm).

In pochi secondi si apre la schermata principale, si visualizzano le ipercurve e la posizione del velivolo viene scovata e riportata in carta.

Se fate due click sull'immagine la potete ingrandire.

Facendo un passo indietro, per concludere, se al posto di accedere al nostro Raspberry mediante PC (e programma PUtty), optiamo per un collegamento diretto del Raspberry con un monitor esterno e cavo HDMI...

Al posto dell'interfaccia web visualizzeremo questa finestra di dialogo che ci riporterà in ogni caso lo status del feeder, ricevitore, feed FlightAware e MLAT.

Nelle immagini precedenti potete vedere la configurazione della mia stazione remota dove il protagonista è il ricevitore Radarcape.

Qui invece un'altro Raspberry è collegato all'ultimo arrivato in ordine di tempo, il nuovo ricevitore AirSquitter!.

Voglio ringraziare l'amico Denis IV3PGQ , che mi ha fatto conoscere l'esistenza della SD Image di PiAware per il Raspberry, grazie al quale ho iniziato a sperimentare l'interfacciamento con i miei ricevitori della Jetvision. Altra persona che ringrazio di cuore è il Signor Bev M Ewen-Smith, del supporto Coaa, che con pazienza mi ha aiutato da remoto a risolvere qualche strano problema di configurazione "raw data time tag" :-)