Ricevitore OpenWebRX

Avendo piacere di presentarvi anche questo progetto open source, che stiamo utilizzando per le nostre ricezioni.

Per l’installazione abbiamo desiderato utilizzare il fork del progetto originale, modificato da András Retzler HA7ILM, che trovate descritto in questa pagina di GitHub, apportando a questa versione qualche piccola modifica; questa volta è stato utilizzato un dispositivo Raspberry Pi versione 3 B+.

Di seguito, vi spieghiamo l’evoluzione e la realizzazione di questo progetto, che verrà utilizzato a gestito da noi per le nostre ricezioni.

Questo progetto già riscuote molto interesse nell’ambito radioamatoriale, in quanto OpenWebRX è un ricevitore SDR multiutente che può essere utilizzato da qualsiasi browser web senza la necessità di alcun software client aggiuntivo. È la soluzione ideale per fornire ad un vasto pubblico l’accesso allo spettro HF-VHF e UHF nella località prescelta. Tutto ciò di cui avrete bisogno è un computer (in questo caso un dispositivo Raspberry), un ricevitore SDR e l’accesso alla rete internet.

OpenWebRX mira a supportare quante più modulazioni e codifiche possibili, concentrandosi comunque su un’interfaccia facile da usare, in modo che anche gli utenti meno esperti possano esplorare lo spettro delle frequenze su indicate, senza la necessità di acquistare costose apparecchiature radio e le relative antenne.

Perché non costruirne uno assieme, per poi studiarne il funzionamento del sistema e relazionarlo agli interessati?

Il progetto originale

Benvenuto in OpenWebRX, diventerà il vostro “coltellino svizzero” per tutte le vostre esigenze SDR remote. Le seguenti informazioni, sono state tradotte ed adattate da noi, prelevandole dal sito GitHub, da questo link

Continuate a leggere la documentazione utente [TODO] se desiderate saperne di più su come utilizzare un ricevitore OpenWebRX.

Continuate a leggere la guida alla configurazione se desiderate saperne di più su come realizzare e configurare voi stessi un ricevitore OpenWebRX.

Licenza di distribuzione

GNU AFFERO GENERAL PUBLIC LICENSE, Version 3.19 – November 2007

Installazione dell’immagine del progetto nella memoria SD

Il vostro Raspberry Pi (che da ora in poi chiameremo per comodità RPi) funzionerà  installando un apposito file immagine contenente sia il sistema operativo (Raspbian) e anche il software del ricevitore OpenWebRX; potete proseguire l’installazione seguendo la guida originale (in lingua inglese), leggendo queste informazioni descritte nel sito GitHub. Se desiderate utilizzare le informazioni tradotte in italiano da Paolo, proseguite con la lettura di questo articolo.

Il modo più conveniente è configurare un sistema utilizzando un Raspberry Pi, tutto ciò di cui avete bisogno è una scheda SD di riserva. Potete sfogliare le immagini disponibili a questo link.

Di seguito, eccovi alcune note sulle immagini (tutte valide anche per il sistema operativo Raspberry Pi):

  • L’utente predefinito “pi” non esiste più. Utilizzate il terminale del Raspberry per creare il nuovo utente e la vostra combinazione utente e password. Il primo avvio del Rpi va fatto con video e tastiera connessi, dove arriverete sulla bash del terminale. Da li, darete i successivi comandi, indicati di seguito.
  • Il layout predefinito della tastiera è “gb“, quindi la corrispondenza dei vostri tasti potrebbe essere insolita.
  • Il server ssh è disabilitato per impostazione predefinita. Se desiderate abilitarlo, inserite un file nominato ssh (senza alcun contenuto e nessuna estensione file) nel volume di “boot”, dopo aver terminato di flashareo l’immagine.
  • Potete utilizzare lo strumento ufficiale “raspi-config” per personalizzare il tuo sistema, la tastiera ed estendere la partizione su tutto lo spazio della memoria SD.
  • Il Wi-Fi è inizialmente disabilitato finché non impostate la vostra posizione Wi-Fi (IT) con  Opzioni di localizzazione > Cambia paese WLAN del programma raspi-config.

Una volta avviato il Raspberry, apparirà nella vostra rete ethernet con il nome host “openwebrx“, che dovrebbe renderlo disponibile come https://openwebrx/ sulla maggior parte delle reti. Questo può variare a seconda della configurazione specifica.

Per gestire bene l’audio digitale, il requisito minimo in questo momento sembra essere un Raspberry Pi 3B+. Il programmatore sta lavorando per ottimizzarlo ed utilizzarlo con dispositivi aventi delle specifiche hardware inferiori, ma da prove fatte non è sicuro di quanto si possa fare.

Identificazione dell’indirizzo IP del RPi

Una volta acceso il vostro RPi, attendete la sua iniziale configurazione e connessione alla vostra rete WiFi di casa (con un tempo di attesa di circa 3-5 minuti); poi dovrete trovare l’indirizzo IP che gli è stato assegnato dal servizio DHCP dal vostro router ADSL.  Per scoprire quale indirizzo IP gli è stato assegnato, sarà necessario utilizzare un programma di port scanning.

Noi abbiamo utilizzato il programma Nmap; è un software libero distribuito con licenza GNU GPL da Insecure.org, creato per effettuare port scanning, cioè mirato all’individuazione di porte aperte su un range di indirizzi IP, in grado di determinare quali servizi di rete dei client siano disponibili.
Una volta scaricato e avviato sul proprio PC, conoscendo l’indirizzo di rete assegnato al vostro PC (esempio: 192.168.1.104)  sarà sufficiente effettuare una scansione sull’intera rete utilizzata (esempio 192.168.1.0)  per trovare l’indirizzo IP assegnato al vostro RPi.

Se utilizzate un PC con Linux le cose sono più semplici, sarà sufficiente aprire un Terminale e digitare il comando:

nmap -v -sP 192.168.1.0/24

al termine della scansione, verrà visualizzato un elenco di tutti gli IP attivi trovati sulla vostra rete; tra gli indirizzi che troverete visualizzati ci sarà l’IP che è stato assegnato dal router al vostro RPi.

Nel caso usiate un dispositivo smartphone Android, vi consiglio di utilizzare l’App Network Analyzer. Una volta scaricata e installata l’App, dovrete collegare il vostro smartphone alla stessa rete domestica WiFi e da li lanciare una scansione della rete. In breve tempo troverete tutti i dispositivi connessi alla vostra rete domestica, compreso il vostro nuovo RPi.

Configurazione del software OpenWebRX

Una volta avviato con successo il ricevitore Rpi, probabilmente vorrete configurarlo in base alle vostre esigenze e ai vostri scopi specifici. Questa guida dovrebbe aiutarvi ad iniziare. Dove si trova la configurazione?

A partire dalla versione 1.0 di OpenWebRX, la maggior parte delle opzioni di configurazione sono disponibili tramite la nuova configurazione via web, accessibile direttamente dal browser facendo clic sull’icona “Impostazioni” in alto a destra nella finestra del ricevitore. Potete anche accedere alla pagina Impostazioni aggiungendo /settings all’URL del vostro indirizzo web.

NOTA: Per poter accedere alla configurazione via web, è necessario creare un account utente, accedendo con tastiera e monitor direttamente sul Rpi. NON È POSSIBILE AGGIUNGERE / GESTIRE GLI UTENTI CON UNA CONNESSIONE REMOTA, SSH O VIA ETHERNET!

Leggete la seguente documentazione sulla gestione degli utenti per conoscere i dettagli su questo importante passaggio. Connettetevi come indicato e, da riga di terminale utilizzate i seguenti comandi:

Gestione utenti

Con l’introduzione dell’interfaccia di configurazione web, OpenWebRX ver. 1.0 utilizza un database utenti per poter gestire l’accesso a tale interfaccia. Quindi, per poter accedere all’interfaccia di configurazione web, è necessario creare almeno un utente.

NOTA: Per motivi di sicurezza, non sono presenti utente e password predefiniti in nessuno dei metodi di installazione, quindi questo passaggio è obbligatorio.

La gestione degli utenti attualmente viene eseguita solo dalla riga di comando (terminale locale), quindi il primo passo è ottenere l’accesso a una shell sul ricevitore, inizialmente prevista solo tramite la connessione in locale con l’ausilio di una tastiera e di un monitor.

I comandi per gestire gli utenti vengono generalmente richiamati tramite lo strumento openwebrx, disponibile su tutte le installazioni in pacchetto (comprese le immagini RPi).

Comandi disponibili:

openwebrx admin adduser [username]            Aggiunge un nuovo utente
openwebrx admin removeuser [username]         Rimuove un utente esistente
openwebrx admin resetpassword [username]      Resetta una password utente
openwebrx admin disableuser [username]        Disabilita un utente
openwebrx admin enableuser [username]         Abilita un utente
openwebrx admin listusers                     Lista degli utenti abilitati
openwebrx admin hasuser                       Controlla se l'utente è già esistente

La maggior parte dei comandi richiedono la password per ogni [nome utente], per poter eseguire i comandi descritti.
NOTA: le parentesi quadre [ ] indicano una sintassi sostitutiva e non fanno parte del comando vero e proprio. Non copiate le parentesi quadre (a meno che tu non vogliate che diventino parte del nome dell’utente).

NOTA: a seconda della configurazione, potrebbe essere necessario eseguire questi comandi con autorizzazioni elevate (root), altrimenti verranno visualizzati errori relativi ai file che non sono scrivibili. Controllate la documentazione della vostra distribuzione su questo argomento. La maggior parte delle distribuzioni utilizzano il comando sudo per questo scopo.
Al momento non esiste alcun metodo di autorizzazione aggiuntivo, quindi tutti gli utenti attualmente attivi potranno accedere all’interfaccia di configurazione web.
Nel caso della nostra installazione, abbiamo utilizzato il seguente comando, per creare i vari utenti per l’accesso via web:

sudo openwebrx admin adduser iv3bvk       per creare l’utente amministratore, con nome   iv3bvk

e successivamente deve essere indicata la password per quell’utente.   Fatto questo, ora il vostro sistema ha il suo utente web amministratore; potete ora procedere alla configurazione web, che utilizza una serie di sezioni che vi permettono di configurare il comportamento del vostro ricevitore.

Per cambiare la password all’utente iv3abc esistente, il comando da utilizzare sarà il seguente:

sudo openwebrx admin resetpassword iv3abc

Potete autorizzare l’accesso web a diversi utenti, ma sappiate che ognuno di essi avrà gli stessi permessi di amministrazione!

NOTA: Una volta creato l’utente, questo avrà accesso al sistema anche in modalità SSH.

Avete terminato la configurazione da riga di comando. Potete riavviare il vostro sistema OpenWebRX, utilizzando il comando sudo reboot. Sconnettete la tastiera USB e il monitor dal Rpi durante il riavvio.

Posizione dei file di configurazione

Per chi volesse accedere ai file di configurazione via terminale, vi informo che solo alcune parti della configurazione del sistema sono ancora archiviate nei file di configurazione. A seconda dell’installazione, i file di configurazione si troveranno in una delle seguenti posizioni:
/etc/openwebrx (questa è la posizione predefinita durante l’installazione da pacchetti, sulle immagini  del sistema operativo Raspbian e funziona anche con installazioni manuali)

Configurazione del ricevitore OpenWebRX da web

Avviate il Rpi già connesso (tramite una presa USB) al ricevitore SDR che vorrete utilizzare.

Una volta completato l’avvio, conoscendo l’IP del Raspberry Pi, connettetevi tramite un browser (noi abbiamo utilizzato sia Firefox che Chrome).
Esempio: http://192.168.1.70

Visualizzerete la seguente pagina, in colore grigio, dove vi si chiederà di avviare il ricevitore:

Premete con il mouse sopra alla scritta Start OpenWebRX, per avviare il vostro ricevitore.
Non soffermatevi a provare i comandi del pannello del ricevitore in basso a destra, ma andate a selezionare il comando Settings (icona Ingranaggio), presente in alto a destra della finestra del ricevitore.

vi si aprirà una nuova pagina del browser, contenente il pannello di Login:

In questa pagina, inserite le credenziali del vostro utente amministratore, creato in precedenza e premete il pulsante Login. Vi si aprirà la pagina principale di configurazione del ricevitore.

Utilizzando queste sei aree principali (l’ultima è solo informativa), riuscirete a configurare a dovere il vostro ricevitore web.

  • l’area General setting vi permette di configurare le informazioni, la visualizzazione web e altre configurazioni riguardanti l’audio, la compressione e la gestione web della mappa;
  • l’area SDR devices and profile, vi permette di configurare (in modo molto accurato) i vari dispositivi SDR connessi al Rpi via USB;
  • l’area Bookmark editor, vi permette di configurare un elenco con la pre-selezione delle frequenze che desiderate monitorare;
  • l’area Demodulation and decoding, vi permette di configurare tutte le possibilità di demodulazione e decodifica previste dal ricevitore;
  • l’area Background decoding, vi permette di abilitare e configurare i servizi di decodifica in background (FT8, FT4, WSPR, Packet, ed altri…);
  • l’area Spotting eand reporting, vi permette di configurare diversi servizi che possono inviare degli spot in rete, riguardanti i sistemi APRS, il PSK e il WSPR;
  • l’area Feature report (rapporto sulle funzionalità) serve solo a visualizzare tutti i moduli disponibili in questa versione del software del ricevitore).   

NOTA: Per motivi di prestazioni del sistema, le immagini ed alcuni dati contenuti nell’area General setting vengono memorizzate nella cache. Potrebbero essere necessarie alcune ore prima che vengano visualizzati aggiornati sul vostro sito.

Impostazioni di un dispositivo SDR

Selezionate il pulsante SDR devices and profile, vi apparirà una schermata simile a questa, dove troverete elencati i dispositivi SDR già configurati nel sistema:

Come potete vedere, il dispositivo che è connesso e sta già funzionando, è il primo (lo si vede dal parametro Connections: 1). Nel nostro caso, si tratta di un ricevitore SDR USB, NooElec NESDR Smart. Per spiegare e visualizzare degli esempi, seleziono questo dispositivo, per farvi vedere i dettagli della sua configurazione.

Come potete vedere, possiamo nominare l’interfaccia a nostro piacere e abilitarla all’uso. Di seguito, si possono inserire degli ulteriori parametri di avvio dell’interfaccia (che qui abbiamo omesso…).

Questa interfaccia SDR (il ricevitore suddetto) ha due profili già configurati: 70cm Repeaters e 2m .  Ci limiteremo a descrivere e visualizzare solo i parametri del profilo 2mt .

Come vedete in questa particolare configurazione, sono stati inseriti i seguenti valori:

  • il guadagno del dispositivo è stato impostato in manuale, assegnando il valore di 29.0 dB;
  • il valore del centro frequenza del pannello di visualizzazione è stato impostato a 145,500 MHz.;
  • il valore della frequenza di campionamento (è il numero di campioni audio prelevati ogni secondo) è stato impostato a 2,048;
  • il valore della frequenza iniziale del pannello di visualizzazione è stato impostato a 145,000 MHz.;
  • il valore iniziale della modulazione del pannello di visualizzazione è stato impostato su FM;
  • NON è stat0 aggiunt0 alcun valore ulteriore di configurazione.

NOTA: Ricordatevi di salvare e applicare le modifiche apportate, premendo il pulsante Apply and save, che trovate in fondo alla pagina di configurazione.

Avete terminato, ora dovete solo vedere se il vostro ricevitore funziona a dovere e se le vostre modifiche sono state apportate.

Pannello principale del ricevitore

Come potete vedere, selezionando nel pannellino in basso a destra il profilo RTL-SDR USB Stick 2mt, visualizzerete il ricevitore impostato con i dati della configurazione, ma potrete sempre cambiare le varie impostazioni (modi di ricezione, Squelch, livello Waterfall, Volume, Zoom dello schermo). In questa schermata, avevo già cambiato il modo di ricezione, passando da FM a WFM.
Il valore della frequenza di ricezione si può modificare sia variando il numero presente nel pannello in basso a destra, sia puntando e cliccando con il mouse su display. Lo scroll della rotella del mouse, cambia lo span del ricevitore.

Collegamento continuo al vostro sistema da remoto, tramite DDNS

Utilizzando la seguente procedura, potrete connettere da remoto, via Internet, il vostro sistema OpenWebRX, utilizzando il servizio gratuito DDNS di Duck DNS.

Duck DNS vi regala un nome a dominio dinamico nella forma miopc.duckdns.org che, grazie ad un apposito client, verrà risolto sempre nell’indirizzo IP del PC al quale è stato associato. In questo modo, ci si potrà collegare sempre al nome scelto e “vedere” il proprio computer, indipendentemente dall’indirizzo IP assegnato.

NOTA: Duck DNS è solo uno dei moltissimi servizi di questo tipo. Il leader “storico” del settore, DynDNS.org, richiede oggi un account a pagamento. Il “numero due”, NoIP.com, impone altre limitazioni agli account gratuiti. Di conseguenza, Duck DNS è, attualmente, uno dei migliori in quanto ad offerta gratuita e non ha davvero nulla da invidiare ai concorrenti commerciali.
In questo caso abbiamo scelto di utilizzare un account Gmail ed immediatamente abbiamo raggiunto il pannello di controllo del servizio.

Scelta del nome a dominio

Dal semplicissimo pannello di controllo del nostro account (duckdns.org/domains) dobbiamo scegliere il nome desiderato per comporre il nostro indirizzo dinamico. Abbiamo immesso il testo openwebrx, di modo da registrare openwebrx.duckdns.org; ma potete usare un po’ più di fantasia non guasta.

Registrazione sul server di DuckDNS.org

La prima cosa da fare per ottenere un nome a dominio dinamico gratuito è collegarsi all’indirizzo DuckDNS.org ed eseguire il login tramite uno dei pulsanti presenti nella barra in alto. Non è prevista una registrazione “locale”; piuttosto, è necessario utilizzare un account Twitter, Facebook, Reddit oppure Google. Ricordate solamente di scegliere qualcosa di semplice e facile da ricordare.
Dalla stessa pagina, in alto, prendete nota del token assegnatovi: è rappresentato da una lunga stringa alfanumerica da utilizzare, in seguito, come “password” per l’aggiornamento dell’IP associato al nome appena scelto.

È tutto pronto (quasi…)

Il nome a dominio scelto risolve già verso il computer dal quale avrete svolto l’operazione di associazione, ma non approfondiremo qui l’argomento.

Per confermarlo, da Windows avviate il Prompt dei comandi (cercate cmd nella schermata Start) e utilizzate il comando nslookup openwebrx.duckdns.org (impostando lo specifico nome appena scelto, ovviamente). Senza chiudere il prompt, chiedete a Google di mostrarvi l’indirizzo IP corrente e confrontate le due informazioni; se tutto ha funzionato correttamente, gli indirizzi IP devono combaciare!

Mantenere il nome e l’ IP “sincronizzati”

Il nome dinamico scelto risolve nell’indirizzo IP corrente, ma rimane un problemino: alla prima disconnessione/riavvio del router ADSL o del raspberry, il provider vi fornirà un IP differente. Questo accadrà senza informare /aggiornare il server di Duck DNS, il nome continuerà a risolvere sul “vecchio” indirizzo, impedendovi quindi di raggiungere il vostro computer / raspberry.

La soluzione al ‘problema’ con Windows è un programmino, da installarsi sul PC, che contatti Duck DNS ogni 5/10 minuti, comunicandogli l’IP corrente sul quale “puntare” il nome a dominio. Nel sistema operativo ARM di Raspberry utilizzerete uno script asssieme al servizio cron, già presente.

Setup del client per Linux (raspberry)

Alla pagina duckdns.org/install.jsp sono elencati tutti i software analoghi per le altre piattaforme, compatibili con Windows, Mac, Linux, Android e anche molti specifici modelli di router.

Visualizzando le informazioni presenti nella pagina dedicata ai sistemi linux, possiamo trovare:

linux servizio cron

se la vostra installazione Linux esegue un crontab, potete utilizzare un processo cron per rimanere aggiornati; possiamo vederlo con il comando:

ps -ef | grep cr[o]n

Se questo non vi restituisce nulla, andate a leggere come installare cron per la vostra distribuzione di Linux.
Per avere la conferma di aver installato curl, verificatelo cercando di eseguire il programma, con questo comando:

curl

se questo restituisce un “comando non trovato” come errore, scoprite come installare curl per la vostra distribuzione.
Altrimenti iniziate e create una directory in cui inserire i file, spostandovi al suo interno e creando il vostro script principale, con i seguenti comandi:

mkdir duckdns
cd duckdns
vi duck.sh

ora copiate il seguente testo e inseritelo nel file (utilizzando il comodo editor nano), ricordandovi di cambiare il valode della variabile del ‘token’ e il nome del vostro dominio, in modo che siano quelli che desideri aggiornare. Potete passare un elenco di domini separati da virgole (senza spazi). Potete (se ne avete bisogno) di codificare un IP (meglio non farlo: lasciate il valore vuoto e il sistema rileverà il vostro IP remoto).

echo url="https://www.duckdns.org/update?domains=exampledomain&token=a7c4d0ad-114e-40ef-ba1d-d217904a50f2&ip=" | curl -k -o ~/duckdns/duck.log -K -

una volta ultimata la scrittura,  salvate il file ed uscite dall’editor. Questo script che avete appena creato effettuerà una richiesta https e registrerà l’output ottenuto nel file duck.log .
Ora rendete eseguibile il file duck.sh , con il seguente comando:

chmod 700 duck.sh

Successivamente, utilizzerete il processo cron per eseguire questo script ogni 5 minuti.

Editate il file di configurazione del servizio cron, con il seguente comando:

crontab -e

copiate il seguente testo, e incollalo in fondo al crontab:

*/5 * * * * ~/duckdns/duck.sh >/dev/null 2>&1

ora salvate il file che avete editato (CTRL+O poi CTRL+X)

Provate ad eseguire lo script, con il seguente comando:

./duck.sh

dopo l’invio di questo comando, dovrebbe semplicemente tornare a un prompt.
Potete anche vedere nel log se l’ultimo tentativo di esecuzione dello script è andato a buon fine (se è OK oppure un pessimo KO), visualizzando il log con il comando:

cat duck.log

se è KO, controllate che il vostro token e il vostro nome di dominio siano scritti correttamente, nello script duck.sh

E adesso?

Beh, probabilmente (forse…) dovrete impostare il port forwarding sul vostro router per utilizzare il tuo nuovo nome DDNS. Nel caso del Raspberry Pi, connesso alla rete interna, non è stato necessario farlo!

Conclusioni

Stiamo utilizzando con soddisfazione Duck DNS da qualche mese ormai: il servizio è affidabile, veloce, gratuito e consente di collegarsi al computer da remoto senza problemi. Questo è tutto, vi auguriamo una buona sperimentazione!!
Se desiderate ulteriori informazioni riguardanti gli argomenti descritti in questo articolo, o sui vari ricevitori SDR da poterci abbinare, contattateci agli indirizzi descritti (o tramite il modulo) che trovate nella nostra pagina Contatti.  

’73 de il gruppo IV3 RadioLab

Fonti:

(Liberamente tradotte e revisionate da noi, per questo sito)


Scopri di più da IV3 RadioLab

Abbonati per ricevere gli ultimi articoli via e-mail.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

IN EVIDENZA

Scopri di più da IV3 Radiolab

Abbonati ora e continua a leggere e avere accesso all'archivio completo.

Continua a leggere il sito