SDR-DVB

Da PNLUG.


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

BOZZA IN FASE DI REDAZIONE!


Utilizzo di un'antenna efficace

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

L'antenna fornita con il dongle ricevitore TV non è ottimizzata per la ricezione dei 1.09 GHz e quindi si avranno dei risultati migliori utilizzando un'antenna dedicata.
Graham Leighton riporta degli ottimi risultati con la sua antenna auto-costruita, consigliando i modelli Moonraker e DPD.
Altre antenne autocostruite sono: la collineare coassiale e collineare filare.
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.

Il programma dump1090

Il programma dump1090 viene avviato e risiede nel Raspberry Pi, il quale può anche produrre diverse cartografie su un browser web, situato sulla tua 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 URL sul tuo browser:

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

dove l'indirizzo può essere un numero o un nome, es.:

http://192.168.0.19:8080

Preparazione del Raspberry Pi

Anche non essendo un guru di RPi/Linux, procediamo nell'installazione. Se avete delle domande su RPi/Linux, attendiamo di leggerle nella nostra ML pubblica LUG. Nelle prossime linee di comando a seguire, utilizzare i comandi Ctrl-C o tasto destro Copia per inserire i comandi sul tuo 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+).

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: http://www.raspberrypi.org/downloads Avviare il vostro RPi sarà molto semplice e lo potremo connettere ad internet attraverso la vostra rete di casa. Se non volete utilizzare tastirera e display sul vostro RPi, potete avviare il vostro hardware come descritto di seguito. Ricordatevi che durante alcuni dei seguenti comandi si dovrà rispondere a delle domande con dei Yes o No, riguardanti lo spazio del disco che dovrà essere utilizzato per i nuovi download. Senza voler dare risposte diverse dallo standard, accettate ripondendo spesso "Yes" (oppure "y"). Aprite un terminale sul RPi e scrivete:

sudo apt-get update

Questo aggiornerà la tabella degli aggiornamenti, all'ultima versione disponibile. Potebbe volerci diverso tempo per completare l'operazione.

Vi consigliamo di controllare la versione Linux a questo punto dell'installazione, 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 diversi giorni a 3.10.24+.

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 a prendervi un caffè nel frattempo! Attenzione che 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 tuo SO indica approssimativamente 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 SO, in questo caso il sistema vi avvertirà che possedete già laversione più aggiornata.

Di seguito, utilizziamo delle istruzioni per configurare sdr-rtl che serve per la pagina Web. We stop where the text says "To run the rtl server type rtl_tcp -a and the IP address of your Pi". 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  # there is a slip on the referenced page
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 installiamo il driver del dongle RTL-2832U USB e lo compiliamo:

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 è avvenuto correttamente, nno 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).

Molte persone utilizzano un HUB USB alimentato per non sovracaricare la porta del RPi, a volte non è necessario soprattutto se avete un'altra alimentazione di 5V che alimenta il vostro Raspberry Pi. Potete avere differenti risultati, ma l'uso del HUB USB è 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, quest'ultimo effettuerà spontaneamente un reboot; non sorprendetevi!

Dopo un upgrade alla versione 3.10 di Linux si è notato che è necessario avere un HUB USB per fare lavorare correttamente il dongle.

Inviare nuovamente il comando:

sudo ldconfig 

Avanziamo al prossimo step, digitando i seguenti comandi che informeranno il SO della presenza del nuovo device e successivamente riavvieranno il SO:

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

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

rtl_test -t 

La priam volta che date questo comando con inserito un dongle con il tuner R802T, il test non funzionerà, in quanto l'applicazione cerca un tuner E4000. Se siete felici possessori di un device E4000, andate oltre e utilizzatelo. Altrimenti leggete che il comando del test (-t) serve solo per trovare degli errori nella copertura di frequnza del tuner E4000. I found no need for a reboot.

In alcune versioni, si può verificare che: If you have used the more complex form of cmake in step 8.9 above when building rtl-sdr, you won't need the sudo prefix to run the dump1090 command in the future. But you will still need sudo for the other commands where shown, like apt-get.

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 driver DVB che viene aggiunto al SO, per poter permettere la ricezione TV! Questa interferenza con il lavoro del device DVB-T per la ricezione ADS-B, richiede di procedere con degli step di configurazione.

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

Editare il seguente file /etc/modprobe.d/raspi-blacklist.conf

utilizzando il vostro editor preferito, come nano o vi

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

aggiungere le seguenti linee nel file.

blacklist dvb_usb_rtl28xxu
blacklist rtl2832
blacklist rtl2830

Salvare e uscire.

È necessario il riavvio, attraverso il seguente comando:

sudo shutdown -r 0

Una volta riavviato e riconnessi al vostro RPi, rifare il test digitando nuovamente:

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.. Normalmenteper 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 di calibrazione, come descritto qui.

Il programma dump1090

ORa scaricate l'ultima versione del programma dump1090, in codice sorgente. È possibile utilizzare le inforamzioni che trovate in questa Web page. Iniziamo seguendo le istruzioni che indicano come scaricare l'applicazione, eseguendo questi comandi sul 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 could non viene trovato nel SO minimale. Installate pkg-config per eliminare questo problema, se avete avuto errori, ma 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 avrete uno schermo che vi visualizzarà degli aeroplani sopra ad una cartina, ricevuti dal vostro RPi. Comunque sia, assicuratevi che i programmi abbiamo il permesso di aprire le porte necessarie e abbiamo i provilegi necessari. Notare il doppio "--" se digitate i comandi a mano, e notare il "./" davanti alla parola "dump1090" pereseguire il comando.

./dump1090 --interactive

Se desiderate ora visualizzare l'output over the network, ricordatevi di aggiungere il sottocomando "--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, ma 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.

Ricompilare dump1090

First stop any dump1090 process which is running. You can do this with the following commands, first checking whether you have a dump1090 process, and then killing it:

ps -e | grep dump1090 sudo killall dump1090 The ps -e shows all processes, ps alone would show just your processes. Here's what the end of the list from ps -e looks like on one 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 Alternatively, if you have installed the automated start/stop script, below, enter:

sudo /etc/init.d/dump1090.sh stop Now follow these steps as you did before, with the additional step of moving (mv) the existing dump0190 directory to a safety copy, here named dump1090-001. For your next recompile when dump1090-001 will already exist, your might want to use dump1090-002, and so on. Note that if you are also running ppup1090 to send your output to Plane Plotter (and if you aren't, why not!), then you also need to copy the customised coaa.h which you have been sent to replace the newly downloaded file.

cd /home/pi/ mv dump1090 dump1090-001 git clone git://github.com/MalcolmRobb/dump1090.git cd dump1090 cp ../coaa.h . # if you are also running ppup1090 make Now you can start the program and logout. Use one of the two following commands according to your needs:

./dump1090 --quiet --net & ./dump1090 --quiet --net --net-ro-size 500 --net-ro-rate 5 & Just type logout after starting the program. Alternatively, if you have installed the automated start/stop script below, enter:

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

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