Sinceramente non ci speravo più di scrivere questo articolo, perché per me (per il mio setup) sembrava un progetto fallimentare, poi finalmente, dopo vari tentativi sono riuscito ad individuare il problema e ricevere (dopotutto il radiantismo è sperimentazione, quindi non bisogna arrendersi alle prime difficoltà)…
Come forse avrete intuito, sono un amante dei modi digitali e su suggerimento del collega-amico Claudio, IK1ICF, ho voluto provare questo progetto per Raspberry: https://github.com/Guenael/rtlsdr-wsprd
Ritengo inutile fare la solita premessa di cosa sia il WSPR, trovate in rete migliaia di siti che ne parlano, sicuramente meglio di me, quindi passiamo subito al progetto…
Si tratta di utilizzare un Raspberry (nel mio caso mi trovavo già in casa un Pi4B), una chiavetta SDR (nel mio caso la RTL-SDR.COM v3) ed un’antenna HF (nel mio caso un’antenna loop HF MLA30+) al fine di ricevere e decodificare i beacon WSPR e, se tutto va bene, fare il reporting automatico sul sito ufficiale WSPRNET.org (avrete quindi bisogno di una connessione internet per fare il rapporto di ricezione, non è obbligatorio, ma la soddisfazione e lo scopo del WSPR sta proprio in quello). Dopotutto la R finale di WSPR sta per Reporter, quindi non avrebbe senso “ascoltare” e decodificare il beacon senza fare il rapporto di ricezione. Se la ricezione del beacon è andata a buon fine, dopo qualche minuto vedrete comparire il vostro nominativo sulla mappa ufficiale di WSPRNET.ORG ed uno “spaghetto colorato” che vi collega geograficamente in linea retta con chi ha emesso il beacon. Vi stupirete di quali distanze si potranno raggiungere con pochi watt della stazione emittente (in genere massimo 5W, da cui il nome di Weak Signal).
Procuriamoci una microsd e prepariamola col programma Raspberry Imager, scaricabile su questo sito: https://www.raspberrypi.com/software/
Di seguito vi farò l’esempio di preparazione microsd su PC Windows.
Per questo progetto, non è necessario avere un ambiente con Desktop grafico, quindi ci va bene anche scaricare la versione Raspberry PI OS Lite (32bit). Tutti i comandi si dovranno dare via terminale con ssh, quindi è importante abilitare ssh in sede di preparazione della microsd (per non avere la rogna poi di gestire il raspberry con un monitor esterno).
Clicchiamo sulla rotella impostazioni in basso a destra, abilitiamo ssh, scegliamo una password, e più avanti diamogli anche i parametri del nostro accesso WIFI (a meno che non vogliate usare un cavo ethernet):
premiamo su SALVA ed infine su SCRIVI (dopo aver selezionato la vostra scheda SD).
Una volta pronta la nostra microsd, siamo pronti per spostarla sul raspberry, a cui collegheremo fisicamente la chiavetta RTL-SDR su una porta usb libera.
Da esperimenti che abbiamo fatto (indipendentemente, ma in sinergia) io e Claudio IK1ICF, abbiamo notato una ricezione migliore (o meglio, un disturbo minore), collegando la chiavetta al raspberry, non direttamente, ma tramite una piccola prolunga usb, a cui va preferibilmente aggiunto un nucleo di ferrite in prossimità delle estremità.
Inoltre vi consiglio di aggiungere un nucleo di ferrite anche sul cavo di alimentazione del raspberry, in prossimità della porta di alimentazione (nel mio caso un connettore USB-C) e di usare una sorgente di alimentazione adeguata (meglio se stabilizzata).
Fatto questo, avviamo il nostro raspberry e tramite la pagina di configurazione del nostro router, cerchiamo di individuare quale indirizzo IP gli è stato assegnato dopo che si è avviato.
Aprite una sessione SSH (io ho usato Putty su Windows) ed entrate con l’utente “pi” e la password che avete impostato voi in fase di preparazione della microsd.
Adesso dobbiamo installare il demone WSPRD e tutte le librerie necessarie a farlo funzionare (comprese quelle customizzate della chiavetta RTL-SDR).
Sul GitHub di Guenael (l’autore del programma rtlsdr-wsprd) trovate tutti i passaggi da effettuare e non mi sembra il caso di replicarli perché abbastanza espliciti.
L’unica difficoltà che ho incontrato personalmente è che alcuni di quei comandi indicati dall’autore, non mi partivano se non facendoli precedere da sudo. Quindi vi suggerisco di dare sudo ad ogni comando indicato.
Ovviamente questi passaggi preparativi vanno fatti soltanto la prima volta.
Una volta finita l’installazione, da questo momento e per le volte successive, per avviare la ricezione dovrete lanciare questo comando:
sudo rtlsdr_wsprd -f 40m -c TUONOMINATIVO -l TUOLOCATORE -g 29
in questo modo partirà la ricezione in 40 metri (è un esempio, chiaramente potete modificarlo in 10,20,30,80…).
Per il locatore usate massimo 6 caratteri.
Il parametro -g 29 può anche essere omesso (è il guadagno di ricezione di default, ma se non ricevete nulla potere provare con altri valori, fino ad un massimo di 49 ed un minimo di 0). Locatore e nominativo servono per comparire in mappa ed inviare al database di WSPRNET il rapporto di ricezione, qualora favorevole.
Per prima cosa il programma sincronizzerà l’orologio del vs raspberry con un server ntp esterno (si sa che per i modi digitali la sincronia dell’orologio è un requisito fondamentale). Dopo un tempo apparentemente casuale (massimo 2 minuti, il tempo che serve per allinearsi alla prossima finestra temporale di trasmissione/ricezione, cioè ogni 2 minuti esatti ) partirà la ricezione e decodifica del beacon.
Nel mio caso ho notato di decodificare meglio aggiungendo -S alla fine del comando:
sudo rtlsdr_wsprd -f 40M -c TUONOMINATIVO -l TUOLOCATORE -g 29 -d 2 -S
questo sarà un ciclo infinito di ricezione, ogni 2 minuti saprete se è andato a buon fine (in quel caso vedrete nel terminale il nominativo, il QTH e il rapporto snr del segnale ricevuto da chi ha emesso il beacon) o meno (in tal caso vi comparirà la scritta NO SPOT).
Se vi compare sempre NOSPOT iniziate a cercare di capire cosa non va: state ascoltando su una banda in cui in quel momento non c’è propagazione? L’antenna è collegata bene? È posizionata bene? Ci sono possibili sorgenti di rumore?
Io stesso, per diverse settimane (chiaramente nel tempo libero, che è sempre poco), nonostante tutte le accortezze messe in campo, avevo sempre “no spot”, anche lasciandolo lavorare per ore ed ore, cambiando posizione all’antenna, tipo di antenna, confrontandomi continuamente con Claudio IK1ICF che ha una configurazione perfettamente funzionante, molto simile alla mia (stessa antenna, stessa chiavetta, stesso software) se non per il tipo di raspberry usato (e quindi ho cominciato a dubitare sul raspberry)… poi finalmente ho avuto un’illuminazione… dato che il mio raspberry Pi4, prima veniva usato in casa mia come server DNS, mi dava fastidio l’idea (ed il rumore) di una ventola che girava h24 per raffreddarlo, quindi avevo comprato un case fanless (ossia senza ventola) in alluminio… mi è venuto quindi, dopo i tanti tentativi, il dubbio che fosse proprio questo case metallico ad interferire e quindi sono tornato al vecchio case in plastica con ventola di raffreddamento … et voilà, il raspberry ha cominciato a macinare e rapportare centinaia di beacon WSPR in poche ore nonostante avessi l’antenna in casa!
Con Claudio poi ci siamo accorti di un altro problema da risolvere: se chiudiamo la sessione SSH, si uccide anche il demone wsprd, quindi la ricezione si interrompe. Chiaramente non avrebbe senso tenere un pc costantemente acceso solo per lasciare attiva la connessione ssh (tanto varrebbe fare tutto col pc).
Questo problema si può risolvere con il comando TMUX da lanciare prima di far partire il demone rtlsdr_wsprd
riepilogando quindi, una volta acceso e impostato il raspberry, entriamo in SSH, lanciamo TMUX e poi lanciamo sudo rtlsdr_wsprd…
una volta che è partita la ricezione per sganciarci da questo TMUX dobbiamo premere CONTROL+B e subito dopo D (quest’ultima senza CONTROL), in questo modo si torna al terminale ssh, che però ora potrà essere chiuso tranquillamente senza interrompere la ricezione.
Per ritornare a quella finestra in cui gira il demone bisognerà scrivere tmux a
Per uccidere il demone invece il comando da lanciare è sudo killall rtlsdr_wsprd
questo comando potrebbe tornarvi utile quando, ad esempio, vorrete cambiare la banda di ricezione.
Se siete pratici di linux potreste farvi degli script, ad esempio per cambiare le bande di ricezione ad orari prefissati oppure su vostra richiesta (so che Claudio ci sta lavorando ed eventualmente ci farà sapere).
Prossimo esperimento che mi piacerebbe fare: trasmissione di un beacon wspr, sempre con raspberry… (attualmente mi cimento di tanto in tanto in trasmissione wspr con uno rtx hf xiegu g90 QRP ma è un inutile spreco energetico oltre al fatto che mi fa scaldare parecchio la radio, nonostante i pochi watt, si tratta sempre di un ciclo di trasmissione di 2 minuti con duty cycle del 100%) … stay tuned!