Raspberry & RTL2832 DVB-T

Mentre ascolto una delle radio nazionali con questo sistema, eccomi a presentarvi l’ennesimo progetto, sperimentato e testato per verificare il funzionamento di questa accoppiata: un “mini-computer” e una “chiavetta dvb-t”.

Nonostante potrete trovare su internet mille guide,  premetto da subito, che a mio parere, i driver non sono stabili, vuoi perché siano in fase di sviluppo, vuoi perché forse un domani potremo avere un file stabile o che sia perfino abbandonato lo sviluppo.
Cosi mi cimento anche io, a scrivere una breve  guida, in maniera tale che possa essere di facile aiuto a chi vuol intraprendere questa impresa.

 Questa guida la realizzo ringraziando da subito i miei amici Andrea IZ7KMN e Leo IZ7ZKQ per il loro supporto.

Questo l’elenco del materiale necessario:
Hardware:
- RaspberryPI (io sto usando il modello B+) + alimentatore 5V, consigliato 2A;
- Chiavetta DVB-T che abbia un chip del tipo RTL2832/RTL2830 e sintonizzatore E4000 (E4K);
Software:
- SDR#SHARP per il collegamento TCP al server;
- Putty per le sessioni SSH del controllo remoto se non si usa un monitor.

Iniziamo!

Prima cosa, con una connessione veloce a internet, dobbiamo aggiornare il sistema Debian alle ultime release e repository. Se avete collegato il Raspberry a un monitor tramite l’uscita video, avviate il TERMINALE ed eseguite i comandi sotto riportarti; altrimenti, se dopo la prima configurazione lo avete connesso via ETHERNET e non avete monitor, avviate PUTTY, create una sessione SSH con l’IP del Raspberry e connettetevi inserendo le credenziali, usualmente user:pi e password:raspberry. Una volta connessi, date i seguenti comandi:

sudo apt-get update   e successivamente   sudo apt-get upgrade  e lasciamo aggiornare il sistema; ci vorranno circa 5/10 minuti, visto che l’aggiornamento non dovrebbe superare i 70 MB.

Adesso entriamo nel vivo procedendo all’installazione dei driver e dei compilatori. Diamo i seguenti comandi:

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

Questi possiamo darli anche consecutivamente, esempio sudo apt-get install git cmake etc. e lasciar lavorare il processo che porterà via circa 10 minuti.

Una volta scaricati i driver, bisogna compilarli con seguenti istruzioni di comando:

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

Una volta compilato il tutto, un bel riavvio sarebbe l’ideale.
Riavviato il dispositivo, s
e avete collegato il Raspberry a un monitor tramite l’uscita videopotete usare il FILE MANAGER, altrimenti, connettetevi nuovamente via PUTTY,  e dovete copiare il driver dalla directory principale denominata RTL-SDR nella directory dei dispositivi USB.

Eseguite passo passo i seguenti step:
entrate nella directory principale RTL-SDR tramite il comando  cd /home/pi/rtl-sdr  e successivamente copiate il file rtl-sdr.rules nella directory
etc/udev/rules.d  tramite seguente comando  sudo cp rtl-sdr.rules /etc/udev/rules.d

Fatto ciò, diciamo che siamo a metà dell’opera. Ora non rimane che collegare la chiavetta RTL2832  a un connettore USB del Raspberry; molti consigliano di connettere la chiavetta tramite un hub usb alimentato esternamente per evitare assorbimenti di corrente direttamente sul Raspberry, ma sinceramente io non ho avuto problemi e il collegamento è diretto.

Sempre da “terminale” date il comando sudo rtl_test -t e verifichiamo se il Raspberry riconosce la nostra chiavetta.
In base alle versioni potrebbe verificarsi un problema di riconoscimento hardware se nel terminale vi esce questo tipo di errore:

Found 1 device(s):
0:  Generic RTL2832U OEM
Using device 0: Generic RTL2832U OEM
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.

Ciò sta a significare che la chiavetta è stata riconosciuta ma il driver kernel non la riconosce. Niente paura: risolviamo con la seguente procedura; sempre nel “terminale”dobbiamo editare un file di configurazione, e lo facciamo cosi, eseguendo questo comando 
sudo nano etc/modprobe.d/raspi-blacklist.conf (nb: potete editare il file sia con “nano” o “vi”).

Una volta aperta la finestra, nell’editor inserite i seguenti valori:

blacklist dvb_usb_rtl28xxu
blacklist rtl2832
blacklist rtl2830

salvate e chiudete l’editor. Qui si necessita di un riavvio e potete darlo tramite il comando
sudo reboot.

Una volta riavviato, come sempre, avviate il “terminale” o “Putty”.

 

Ci siamo quasi! Diamo nuovamente il comando sudo rtl_test -t per testare la compilazione del driver. Se tutto è andato a buon fine avrete una lista di informazioni così simile:

Found 1 device(s):
    0:  Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Lifeview LV5TDeluxe
Found Elonics E4000 tuner
Supported gain values (14): -1.0 1.5 4.0 6.5 9.0 11.5 14.0 16.5 19.0 21.5 24.0 29.0 34.0 42.0
Sampling at 2048000 S/s.
Benchmarking E4000 PLL...
[E4K] PLL not locked for 51000000 Hz!
[E4K] PLL not locked for 2189000000 Hz!
[E4K] PLL not locked for 1095000000 Hz!
[E4K] PLL not locked for 1229000000 Hz!
E4K range: 52 to 2188 MHz
E4K L-band gap: 1095 to 1229 MHz

A questo punto non ci resta che avviare il server RTL TCP tramite il seguente comando:
rtl_tcp –a 192.168.1.xxx dove l’indirizzo IP è quello che avete deciso voi tramite ETH o chiavetta WIFI; comunque vi sarà facile capirlo in quanto se avete creato le sessioni SSH tramite Putty, l’indirizzo IP è lo stesso.

Lo screen che vi comparirà sarà il seguente:

Ora, da un computer, avviate SDR# e inserite l’indirizzo IP del Raspberry, ovvero quello che avete lanciato con il comando rtl_tcp .. Impostate i parametri di sample rate, che vi consiglio di iniziare dal più basso per poi salire in base alle capacità del Raspberry, della velocità LAN-WIFI e dalla capacità del vostro PC. Assicuratevi che abbiate la porta 1234 aperta nel vostro router; ora non ci resta che premere PLAY e iniziare la sperimentazione di ascolto..


N.B.: Una volta stoppata la riproduzione da SDR# potrà essere necessario riavviare il server.

Inoltre, potrete utilizzare anche altri software che supportano la modalità RTL TCP, e per di più, anche sugli smartphone con l’app SDR TOUCH.. Qui un esempio da me eseguito:


In questa maniera, potrete fare radio ascolto da una stanza remota della vostra casa, o perfino quando siete fuori casa, adottando sistemi di DNS dinamico come NO-IP..

I problemi riscontrati

Sono stati riscontrati alcuni problemi durante la fase di test.

Il primo, si è verificato nella connettività WIFI. La trasmissione del segnale, la risoluzione, sembra non sia “supportata” da molti router, che durante la riproduzione sui vari software client, fa si che l’ascolto sia fastidiosamente interrotto da numerosi lag che si creano rendendo inaccettabile l’audio.
Le prove sono state fatte su comuni router con WIFI a 54 MB/S. Effettuare prove con router a WIFI esteso con protocollo N a 300 MB/S.

Il secondo, si è verificato con il file .config e le righe blacklist. A quanto sembra, alcuni dongle DVBT necessitano delle righe nel file di configurazione, altre no!

Il terzo, se problema possiamo definirlo, riguarda la copia dei driver nella directory /ETC/UDEV. Alcune guide ne parlano, altre sembrano non porgersi il problema.



Fiducioso nell’esser stato chiaro e quanto più esaustivo nella stesura di questa guida, attendo vostri pareri e riscontri nell’installazione e prove di questi dispositivi.


I migliori 73, Angelo IZ7QEB.