2° CAPITOLO – COSTRUIRE UNA STAZIONE RICEVENTE WEBSDR SU RASPBERRY PI3

2° CAPITOLO

CONFIGURAZIONE DELL’HARDWARE  E INSTALLAZIONE DEI DRIVER E LIBRERIE PER RTL-SDR Blog V3 R820T2 RTL2832U 1PPM TCXO SMA

COME COSTRUIRE UNA STAZIONE RICEVENTE WEBSDR SU RASPBERRY PI3. In questo 2° Capitolo affronteremo tutte problematiche legate all’ hardware necessario e configurare correttamente il server, inoltre provvederemo ad Installare tutte le librerie e i driver necessari per il particolare Dongle RTL-SDR Blog V3 R820T2 RTL2832U 1PPM TCXO SMA per funzionare nella modalità a “Campionamento Diretto” , i driver sono compatibili anche con le classiche Dongle RTL2832, che però per funzionare in tutta la gamma di frequenze HF (al di sotto dei 25 MHz) avranno bisogno di un Up/Down Converter

.Dall’aprile 2018, il browser Chrome è riluttante a riprodurre l’audio sui siti WebSDR. Se utilizzi Chrome e non hai audio sui siti WebSDR, una soluzione alternativa è di disattivare la nuova norma di autoplay di Chrome, digitando chrome: // flags / # policy-autoplay nella barra di navigazione e modificando questa impostazione da Predefinito a Nessun gesto è richiesto all’utente. (Per rendere attive le modifiche è richiesto il riavvio del browser).

Vi occorre per iniziare un Raspberry Pi 3 con microSD da 16 Gb classe 10 un Dongle RT-SDR da collegare su porta USB (io ho preferito  RTL-SDR Blog V3 perché non gli serve il converter per la gamma di frequenza HF) consiglio di installare un plug-in in Firefox o Chrome per tradurre in italiano facilmente testi in inglese e tanta pazienza per poter studiare ed approfondire gli argomenti nuovi e di cui si conosce poco o niente.

Iniziamo con installare sulla microSD di classe 10, del Raspberry Pi 3, l’ultima versione del Raspbian 9 la versione Stretch, dal sito ufficiale a questo LINK . Una volta avviato il Raspberry Pi 3 ed eseguito le configurazioni di lingua, tastiera e Paese, editare il file /boot/config.txt presente nella cartella boot e modificare il parametro della frequenza del processore da #arm freq=800 con arm_freq=1200, inoltre per avere maggiore corrente sulle porte USB, alla fine del file config.txt aggiungere la seguente linea di comando max_usb_current=1 , che porterà la corrente massima sulle porte USB del Raspberry Pi 3 a 1000 mA (1 Ampere).

Collegare il Raspberry Pi 3 a un alimentatore in grado di erogare 2,5-3 Ampere. L’installazione di una ventola che provveda al raffreddamento del processore è consigliata, anche perché il Raspberry Pi 3 sarà acceso H24. Questa prima fase di ottimizzazione delle prestazioni hardware del Raspberry Pi è terminata.

Passiamo ora all’installazione delle librerie necessarie al corretto funzionamento dell’RTL-SDR nella modalità RTL_TCP aggiornate con un parametro che permette di configurare l’ RTL-SDR Blog V3  per funzionare nella modalità a “Campionamento Diretto” e  compatibile con le versioni precedenti RTL-SDR.

La Southampton University Wireless Society ha realizzato i driver in questione sono i librtlsdr-master che possono essere scaricati dal seguente link; https://github.com/philcrump/librtlsdr/. Aprire con il bottone verde Clone or Download e scaricare il file.zip salvandolo nella home o sul Desktop del sistema operativo e successivamente decompresso. Dal terminale posizionarsi nella cartella librtlsdr-master creata a seguito della decompressione dei driver e dalla  riga di comando del terminale digitare questa serie di comandi:

sudo apt-get update

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

Sempre con il terminale posizionato nella cartella “librtlsdr-master” digitare i seguenti comandi che creeranno i driver per l’RTL 2832U:

mkdir build

cd build

cmake ../ -DINSTALL_UDEV_RULES=ON

make

sudo make install

sudo ldconfig

Da terminale con i diritti di root (sudo su) posizioniamoci, nella cartella “/etc/modprobe.d”  e creiamo un nuovo file di testo con il nome di “no-rtl.conf”  con il comando da terminale “nano no-rtl.conf”  ed inseriamo nel file le seguenti istruzioni e salviamo il file:

blacklist dvb_usb_

rtl28xxu blacklist

rtl2832 blacklist

rtl2830

terminata l’operazione riavviare il sistema operativo e successivamente da terminale digitare la riga di comando “rtl_tcp -h”, questo dovrebbe essere il risultato:

Usage: [-a listen address]

[-p listen port (default: 1234)]

[-f frequency to tune to [Hz]]

[-l 1] lock frequency against tcp command

[-q x] enable direct sampling (input I:1, Q:2)

[-g gain (default: 0 for auto)]

[-s samplerate in Hz (default: 2048000 Hz)]

[-b number of buffers (default: 15, set by library)]

[-n max number of linked list buffers to keep (default: 500)]

[-d device index (default: 0)] [-P ppm_error (default: 0)]

La lista dei comandi, comprende anche la voce [-q x] enable direct sampling (input I:1, Q:2)” per il particolare Dongle RTL-SDR Blog V3 R820T2 RTL2832U 1PPM TCXO SMA per funzionare nella modalità a “Campionamento Diretto”  Collegare la RTL-SDR sulla porta USB del Raspberry Pi3. Il comando da terminale con diritti di root, per avviare il driver rtl_tcp sulla rete in localhost e su porta 5904 sulla frequenza di 14400 MHz in campionamento diretto è il seguente:

rtl_tcp -a 127.0.0.1 -p 5904 -f 14400000 -q 2 -g 0 -d 0

con il seguente risultato:

Se avete ottenuto questi risultati, la parte relativa alla configurazione del server Raspbian 9 su Raspberry Pi3,  con i driver RTL_TCP attivati, può ritenersi effettuata con successo.

INSTALLAZIONE  E CONFIGURAZIONE DEL SOFTWARE WEBSDR

Il software WebSDR va richiesto direttamente a Pieter-Tjerk de Boer, i riferimenti sono sul sito web, la richiesta va inviata a PA3FWM, prima però bisogna leggere queste informazioni frequently asked questions e poi secondo le indicazioni fornite dall’autore fare richiesta via e-mail, motivando anche la richiesta, non è necessario essere radioamatori, chiunque può fare richiesta.

L’installazione del software e molto semplice, decomprimere il file ricevuto websdr-dist11.tgz sul Desktop e seguire le istruzioni presenti nel file install.txt contenuto nella cartella websdr/dist11/doc , in buona sostanza bisogna copiare i file index.html e mobile-controls.html dalla cartella websdr/dist11/pub2 alla cartella websdr/pub. Nella cartella websdr/cfg deve essere presente il file websdr.cfg di configurazione della WebSDR. inizialmente possiamo usare lo stesso che ho utilizzato io e di cui riporto di seguito il contenuto:

Il file websdr.cfg deve contenere le seguenti istruzioni (attenzione è disabilitata la pubblicazione sul sito web ufficiale parametro noorgserver attivato) :

# WebSDR server configuration file
# Lines starting with a hash (#) are comments.
# Each line consists of a keyword followed by one or more settings.
# The order of the lines is arbitrary, except that lines configuring
# a band should be together.
#
############################################################################
# first, a few generalities about the server:

# The maximum number of users.
# In most cases, the internet uplink is the limiting factor; count on about
# 100 kbit/s per user, depending on the compression level you choose.
maxusers 10

# On which port should the server listen?
# An obvious choice would be 80, so users don’t need to specify it in the URL.
# However, this requires the websdr binary to be setuid root, see install.txt.
# A common alternative choice is 8901.
tcpport 8901

# If your computer is on a 10.x.x.x or 192.168.x.x network on which there
# are no users that you do not trust, uncomment the following line.
# It enables the system administration interface in sysop.html also for computers
# on these local networks.
# dotrustlocalnet

# Set a timeout of x seconds for idle users (i.e., users who don’t
# change the frequency etc. for x seconds are disconnected).
# Can be useful if your site is popular and has limited internet
# bandwidth.
idletimeout 2800

# If you do NOT want your WebSDR to register itself on http://www.websdr.org
# site, uncomment the following line:
noorgserver

# hostname (mettere il vostro host name)
# org logo (mettere il vostro logo)
# org qth (mettere il vostro QTH)
# org description (mettere la vostra descrizione)
# org email (mettere la vostra e-mail)
allowwide
############################################################################
band 20mt
device !rtlsdr 127.0.0.1:5904 -9
samplerate 1024000
centerfreq 14000
# progfreq is the upconverter frequency (khz) plus the centerfreq (in khz)
# progfreq 100000
initial 14074 usb
antenna GP 20 meter
gain -18
############################################################################

Per provare se il tutto funziona correttamente e riusciamo ad avviare WebSDR, aprire il primo terminale e se usiamo il Dongle RTL-SDR Blog V3 R820T2 RTL2832U 1PPM TCXO SMA per funzionare nella modalità a “Campionamento Diretto”  digitare da terminale:

rtl_tcp -a 127.0.0.1 -p 5904 -f 14400000 -q 2 -g 0 -d 0

altrimenti per il Dongle RTL2832U classico (occorre l’up/down converter per usare una frequenza al di sotto dei 25 MHz) digitare:

rtl_tcp -a 127.0.0.1 -p 5904 -f 14400000 -g 0 -d 0

Poi successivamente senza chiudere il primo terminale, avviare WebSDR da un secondo terminale con i diritti di root (sudo su), spostandosi nella cartella websdr/dist11/  e digitando il comando per avviare l’eseguibile per Raspberry Pi ./websdr-rpi il risultato successivo dovrebbe essere il seguente:

Per verificare l’effettivo avvio di WebSDR, con il browser del Raspbian digitare dall’url localhost:8901 e dovremmo vedere la nostra stazione WebSDR funzionante.

Nel 3° Capitolo vedremo come personalizzare la pagina web della nostra stazione radio WebSDR, come mettere un nostro logo, predisporre un DNS (un dominio web, un host e attivarlo sul nostro modem router) per pubblicare la stazione WebSDR sul sito ufficiale websdr.org.

Un saluto a tutti i lettori da Antonio IU8CRI.