SDR-DVB-aereo

Da PNLUG.


Ricezione del traffico aereo tramite radio SDR con il DVB-T RTL820T e Raspberry Pi

Rasp-dvbt.png


Utilizzo di un'antenna efficace

Oltre alla corretta installazione e compilazione dei programmi, non dimenticatevi di utilizzare una buona antenna di ricezione!

L'antenna fornita con il dongle ricevitore TV non è ottimizzata per la ricezione dela frequenza di i 1.090 MHz e quindi si otterranno dei risultati migliori utilizzando un'antenna dedicata.
Graham Leighton, sul suo sito, riporta degli ottimi risultati ottenuti con la sua antenna auto-costruita, consigliando anche l'utilizzo dei modelli Moonraker e DPD.
Altre antenne autocostruite molto valide sono: la collineare coassiale e collineare filare.
Ricordatevi di posizionate la vostra antenna il più in alto possibile e con un ampio spazio libero attorno ad essa, idealmente all'aperto invece che in un luogo chiuso.

Lavorare in remoto

Potete lavorare liberamente in remoto sul vostro RPi, senza la necessità di aver connesso la tastiera, il mouse e il display video sul RPi. Per far questo dovrete abilitare alla prima configurazione il servizio SSH sul Rpi.
Utilizzerete il servizio SSH attraverso la connessione LAN, utilizzando il terminale o più facilmente con l'uso del programma PuTTY, installato sul vostro PC. Una volta installato PuTTY sul vostro PC per lavorare via connessione di rete LAN, potrete successivamente configurare velocemente il vostro Raspberry Pi ad utilizzare un'interfaccia USB Wi-Fi e quindi far lavorare il device via wireless.

Il software NOOBS, comunque, richiede per la prima installazione una tastiera e un video HDMI, ma solo per la prima configurazione di base. Selezionate l'uso del sistema operativo Raspbian, da installare al primo avvio.

La configurazione con PuTTY viene descritta qui.

La configurazione WiFI attraverso la linea di comando viene descritta qui.

La modalità per connettere via cavo Ethernet il Raspberry Pi direttamente al vostro netbook o PC laptop, è stata descritta qui.
Questo vi permetterà di avere altre porte LAN disponibili sul vostro router o switch LAN e di abbassare il consumo elettrico dovuto al dongle WiFi connesso al vostro Raspberry Pi. Connessi in questo modo anche il vostro PC potrà accedere ad Internet attraverso il link in Wi-Fi. Grazie a Fred Hillhouse N7FMH per aver segnalato la pagina.

Preparazione del Raspberry Pi

Anche non essendo un guru di RPi/Linux, procediamo con l'installazione. Se avete delle domande su RPi/Linux, attendiamo di leggerle nella nostra ML pubblica LUG.
Nelle prossime linee di comando a seguire, potete utilizzare i comandi Ctrl-C o tasto destro Copia per inserire i comandi sul vostro teminale, e se usate PuTTY potete inviare i comandi copiati al vostro Raspberry attraverso il click destro del vostro mouse. (Questo work-around è stato testato su Linux 3.6.11 e NOOBS/Raspbian 3.12.22+).

Vi suggeriamo di partire con una SD card nuova/pulita. Scaricate l'ultimo software NOOBS aggiornato (oppure Raspbian Wheezy OS), e seguite le seguenti istruzioni per preparare la vostra SD card, indicate nel sito http://www.raspberrypi.org/downloads.
Successivamente alla prima installazione del SO sul RPi con NOOBS e dopo aver attivato il servizio SSH di RaspBian, potete procedere alle seguenti operazioni.
Avviare il vostro RPi sarà molto semplice e lo potrete connettere ad internet attraverso la vostra rete di casa, via WiFi.
Consigliamo di seguire le indicazioni per il primo avvio veloce del SO, descritte in questo documento.

Una volta che avrete terminato le operazioni di base della configurazione del vostro Raspberry, abilitato il servizio SSH, avrete connesso in rete il vostro RPi, proseguite come segue.

Connettetevi in SSH con il vostro device;

ssh pi@<indirizzo-del-RPi> 

(esempio: ssh pi@192.168.1.101)
la password di default è: raspberry

Aprite una sessione terminale sul RPi e scrivete:

sudo apt-get update

(Questo comando aggiornerà la tabella dei pacchetti software all'ultima versione disponibile. Portebbe volerci diverso tempo per completare l'operazione).

Vi consigliamo di controllare la versione Linux presente sul RPi, digitando il comando:

uname -a command

Inizialmente, dopo l'installazione di NOOBS, la versione dovrebbe essere la 3.6.11+, passando dopo il secondo riavvio e dopo l'ultimo upgrade a 3.10.23+, e successivamente dopo l'ultimo aggiornamento alla versione 3.10.24+ o superiore.

Digitate ora il comando:

sudo apt-get upgrade

Questo comando aggiornerà il sistema operativo all'ultima versione disponibile. Dovendo attendere un po di tempo per vedere il termine dell'aggiornamento, andate pure a prendervi un caffè nel frattempo!

Attenzione: dopo l'aggiornamento del 2013-Dec-13 i driver occorrenti per il DVB-T USB stick verranno sovrascritti.

Se, dopo ogni upgrade, tramite il comando uname -a la versione del vostro Sistema Operativo indica approssimativamente ancora la versione 3.6.11+ , vi suggeriamo di mantenerla senza fare altri aggiornamenti.

Successivamente, date i seguenti comandi:

sudo apt-get install git-core

(Questo comando installerà il repository di git. Potreste averlo già presente nel Sistema Operativo; in questo caso il sistema vi avvertirà che possedete già la versione più aggiornata).

Di seguito, utilizziamo delle istruzioni per configurare il programma sdr-rtl che serve per la visualizzazione della pagina Web. Per convenienza, le istruzioni sono state copiate di seguito, e sono state disposte nell'ordine corretto di esecuzione.

sudo apt-get install git
sudo apt-get install cmake
sudo apt-get install libusb-1.0-0-dev  # questo viene spiegato nella pagina di configurazione del programma
sudo apt-get install build-essential 

Potete anche dare i seguenti comandi attraverso un'unica linea di istruzione: (grazie a Sam Reed per questo appunto):

sudo apt-get install git git-core cmake libusb-1.0-0-dev build-essential

altrimenti è preferibile dare un comando alla volta, anche per vedere se il terminale vi ritorna degli errori di procedura, bloccando l'installazione normale.

Ora installate il driver del dongle RTL-2832U USB e lo compilate con i comandi:

git clone git://git.osmocom.org/rtl-sdr.git
cd rtl-sdr
mkdir build
cd build
cmake ../ -DINSTALL_UDEV_RULES=ON
make
sudo make install
sudo ldconfig

se tutto è si è svolto correttamente, non sarà necessario ritornare ai comandi precedenti.

Connettere SOLO ORA il dongle RTL-2832U USB attraverso un HUB esterno alimentato (non obbligatorio, ma evita le sovra-correnti sulla porta USB).

Molte persone utilizzano un HUB USB alimentato per non sovra caricare la porta USB del RPi; questo a volte non è necessario soprattutto se avete un'altra alimentazione di 5V che alimenta il vostro Raspberry Pi. Potreste avere differenti risultati, ma l'uso del HUB USB è altamente raccomandato.
Per il buon funzionamento del RPi è necessario disporre di una corrente di alimentazione di almeno 1.5A, ma un alimentatore da 2A è vivamente consigliato nel caso in cui si usino abitualmente periferiche USB ad alto consumo. Se inserite il dongle RTL direttamente sulla USB del RPi a sistema avviato, quest'ultimo effettuerà spontaneamente un riavvio (reboot); non sorprendetevi!

Dopo un aggiornamento alla versione 3.10 di Linux si è notato che è necessario avere un HUB USB per fare lavorare correttamente il decoder DVB-T.

Inviare nuovamente il comando, via terminale:

sudo ldconfig 

Avanzate al prossimo step, digitando i seguenti comandi che informeranno il SO della presenza della nuova interfaccia USB e successivamente riavvieranno il SO:

cd ~
sudo cp ./rtl-sdr/rtl-sdr.rules /etc/udev/rules.d/
sudo reboot 

A riavvio avvenuto e riconnessi nuovamente al RPi, controllate la presenza del dongle USB sul RPi, con il comando:

rtl_test -t 

La prima volta che date questo comando con inserito un dongle con il tuner R820-T, il test non funzionerà, in quanto l'applicazione cerca di default un tuner E4000. Se siete felici possessori di un device E4000, andate oltre e utilizzatelo senza problemi.
Altrimenti sappiate che il comando del test (-t) serve solo per trovare degli errori nella copertura di frequnza del tuner E4000.

Su versioni con Raspian Linux vecchi come la versione 3.6.11, si possono avere dei messaggi di errore simili a questo: Found 1 device(s): 0: Generic RTL2832U Using device 0: Generic RTL2832U Kernel driver is active, or device is claimed by second instance of librtlsdr. In the first case, please either detach or blacklist the kernel module (dvb_usb_rtl28xxu), or enable automatic detaching at compile time. usb_claim_interface error -6 Failed to open rtlsdr device #0.

Accade questo perché viene trovato un modulo per utilizzare il DVB da far utilizzare al kernel per poter permettere la ricezione TV! Questo non deve avvenire se abbiamo deciso di utilizzare device DVB-T per la ricezione ADS-B o come ricevitore SDR. Si richiede di procedere con degli step di configurazione, per ovviare al problema.

Se ottenete questo errore, occorrerà editare un testo di configurazione per mettere in blacklist i moduli interessati e quindi riuscire a risolvere il problema.

Editare il seguente NUOVO file /etc/modprobe.d/raspi-blacklist.conf, utilizzando il vostro editor preferito, (come nano o vi, ecc..):

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

aggiungere le seguenti linee nel file.

blacklist dvb_usb_rtl28xxu
blacklist rtl2832
blacklist rtl2830

Salvate e uscite dall'editor.

È necessario riavviare il RPi, attraverso il seguente comando da terminale:

sudo reboot

Una volta riavviato e riconnessi nuovamente al vostro RPi, effettuare ancora il test di connessione all'interfaccia USB, digitando il comando da terminale:

rtl_test -t

Se ottenete un messaggio di errore come "cb transfer status: 1, canceling." significa che il dongle sta prelevando troppa corrente dal Raspberry Pi. Questo non si verifica con tutti i dongle provati, ma per procedere è necessario disporre di un HUB USB esterno, alimentato.

A questo punto il vostro dongle RTL verrà identificato e connesso normalmente.

Ora è necessario configurare il dongle RTL per conoscere la sua frequenza di offset.. Normalmente, per la ricezione ADS-B, gli errori di lettura presenti non sono critici, andando verso i 100 ppm (parti per milione) dove su 1 GHz l'errore è di 100 KHz. Comunque, i migliori risultati si ottengono calibrando il dongle e utilizzando l'offset misurato per avere i migliori risultati. Il modo più semplice per effettuare la calibrazione è quello di utilizzare un programma adatto, come descritto qui.

Il programma dump1090

Ora scaricate l'ultima versione del programma dump1090, in codice sorgente. È possibile utilizzare le informazioni che trovate di seguito. Iniziamo seguendo le istruzioni che indicano come scaricare l'applicazione, eseguendo questi comandi dal terminale del vostro RPi:

cd /home/pi/ 

oppure

cd ~ (va alla tua home directory)
git clone git://github.com/MalcolmRobb/dump1090.git
cd dump1090
make

Potrebbero venir segnalati degli errori di compilazione perché il programma pkg-config non viene trovato nel Sistema Ooperativo minimale. Installate quindi pkg-config per eliminare questo problema, se avete avuto errori di compilazione. Se non ne avete avuti, passate al punto successivo.

sudo apt-get install pkg-config
make

Quando inviate il comando ./dump1090 --interactive, se avete installato correttamente tutti i software, compilati e connessi correttamente, allora riuscirete ad avere una schermata web che visualizzerà degli aeroplani sopra ad una cartina geografica, con i dati ricevuti dal vostro RPi. Comunque sia, assicuratevi che i programmi abbiamo il permesso di aprire le porte necessarie e abbiamo i privilegi necessari. Notare il doppio "--" se digitate i comandi a mano, e notare il "./" davanti alla parola "dump1090" per eseguire il comando.

./dump1090 --interactive

Se desiderate ora visualizzare l'output over the network, ricordatevi di aggiungere il sotto-comando "--net" alla fine del comando:

./dump1090 --interactive --net

Ci è stato riportato da Marco Haakmeester che il file rtl-sdr.h e dump1090.c richiedono dei cambiamenti per essere compilati correttamente; comunque Malcolm non è più riuscito a riprodurre il problema che portava a ciò. Contattate Marco per altri dettagli, nel caso in cui aveste dei problemi nella compilazione - È possibile inviargli una mail contenente la vostra richiesta di aiuto.

Web remoto del programma dump1090

Il programma dump1090 viene avviato e risiede nel vostro Raspberry Pi; questo programma può anche produrre diverse cartografie utilizzando un browser web, che gira all'interno della vostra rete locale (PC, Linux or Mac). Può essere utilizzato anche per verificare se il programma dump1090 sta funzionando correttamente e se il link TCP/IP è stato avviato sul vostro Raspberry Pi. Per fare ciò, digitate semplicemente questo indirizzo URL sul vostro browser, connesso alla stessa rete del RPi:

http://<indirizzo-o-nome-del-Raspberry-Pi>:8080

dove l'indirizzo può essere un numero o un nome, ad esempio: http://192.168.0.19:8080

Ecco un esempio della visualizzazione del traffico aereo con dump1090 via web, effettuata da una postazione in Inghilterra:

Dump109-web-plot.png

Installare dump1090 su Ubuntu 14.04

Allo stesso modo scaricate l'ultima versione del programma dump1090, in codice sorgente. È possibile utilizzare le informazioni che trovate in questa pagina. Iniziamo seguendo le istruzioni che indicano come scaricare l'applicazione, eseguendo questi comandi sul vostro PC:

cd /home/<vostro-utente>/ 

oppure

cd ~ (va alla tua home directory)
git clone git://github.com/MalcolmRobb/dump1090.git
cd dump1090
make

Potrebbero venir segnalati degli errori di compilazione perché il programma libusb-1.0 non viene trovato nel vostro Sistema Operativo. Installate libusb-1.0 da terminale per eliminare questo problema, se avete avuto errori; se non ne avete avuti, passate al punto successivo.

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

Ricompilare dump1090

Se dovesse essere necessario ricompilare il programma in esecuzione, innanzitutto fermare ogni processo dump1090 avviato. Per fare questo, eseguire i seguenti comandi dal vostro Raspberry Pi, controllando prima l'esistenza di processi dump1090 avviati, e successivamente uccidendoli:

ps -e | grep dump1090
sudo killall dump1090

Il comando ps -e visualizza tutti i processi, il comando ps da solo visualizzerebbe solo i processi dell'utente. Di seguito, ecco i processi che potrebbero venir visualizzati dopo aver utilizzato il comando ps -e sun vostro RPi.

1870 tty5     00:00:00 getty
1871 tty6     00:00:00 getty
1980 ?        00:00:00 sudo
1981 ?        10:43:09 dump1090
13832 ?        00:00:02 kworker/0:0
14209 ?        00:00:13 kworker/u:2

Diversamente, se avete installato gli script automatici di start/stop o il demone di dump, digitate:

sudo /etc/init.d/dump1090.sh stop

Ora seguite questi passaggi come indicato di seguito, assieme a quello aggiuntivo che muoverà la copia (mv) esistente di dump1090 in una posizione sicura, nominandola dump1090-001. Per le prossime ricompilazioni esistendo già dump1090-001, potrete utilizzare il nome dump1090-002, e così di seguito.

cd /home/pi/
mv dump1090 dump1090-001
git clone git://github.com/MalcolmRobb/dump1090.git
cd dump1090
cp ../coaa.h . # solo se avete avviato anche il programma ppup1090
make

Ora potete avviare il programma e fare il logout da RPi. Uno dei seguenti comandi potrebbe fare al caso vostro:

./dump1090 --quiet --net &
./dump1090 --quiet --net --net-ro-size 500 --net-ro-rate 5 &

Ricordatevi solo di digitare logout dopo aver avviato il programma. Diversamente, se avete installato gli script automatici di start/stop script, digitate:

sudo /etc/init.d/dump1090.sh start

Pagina di riferimento: http://www.satsignal.eu/raspberry-pi/dump1090.html

Tutti i comandi di dump1090

Per poter utilizzare al meglio questa applicazione, è necessario conoscere tutte le sue possibili applicazioni e variabili di configurazione. Per vedere la lista dei parametri di configurazione, aprire un Terminale e digitare:

dump1090 --help