Monitor de WSPR com raspberry pi + dongle RTL-SDR

Uma ideia simples e que permitirá receber spots de WSPR (Weak Signal Propagation Reporter Network) e registá-los na rede, utilizando apenas um dongle USB, o RTL-SDR v3 RTL2832U, um raspberry pi 2 B+ ou superior, em linha de comandos.

O modo WSPR utiliza uma largura de banda de 6Hz numa transmissão durante 110,6s. A duração de cada tom é de 0,6827s com um desvio máximo de 1Hz. Permite assim a escuta de sinais até -30dB!
Esta técnica pode ser utilizada também em testes de comunicação EME sem grandes antenas ou recursos especiais…

Depois de ter construído o kit da qrp-labs Ultimate3S para o envio de beacons em "whisper" fiquei com a sensação de não estar a contribuir para a comunidade também com a recepção e registo de spots na http://wsprnet.org

Para isso era necessário uma solução que se revelasse barata, sem a necessidade de um receptor por cada banda, ou a utilização de equipamento caro e redundante aos rádios de HF que por cá tenho. Teria de ser um sistema autónomo!

Finalmente encontrei algumas páginas a falarem sobre o tema e experimentei. Apesar de só ouvir sinais fortes, fica a ideia… Pode ser que alguns de vós façam algumas experiências e consigamos este projecto, do qual me limitei a traduzir do nosso colega VK6FLAB, Onno Benschop, e testar.

Não me vou perder em detalhes, de como instalar o sistema operativo, configurar acessos por SSH ou a rede wireless, fi-lo noutros posts mais antigos e há muita documentação online.

Não demora mais que 15 minutos a configurar tudo…

Instalar o software WSPR

Segue o conjunto de instruções que deve executar,

Configurar o dongle RTL-SDR

Se já tiver ligado o dongle ao raspberry, desligue-o e aguarde uns 10s.
Execute as seguintes instruções na linha de comandos,

Ligue agora o seu dongle RTL-SDR…

Primeiros testes

Para reduzir consumos desnecessários, supondo que tem acesso ao raspberry por SSH, desligue o port HDMI, evita também algum ruído fundamental eliminar na escuta de sinais fracos,

Execute a aplicação rtlsdr-wsprd substituindo na expressão seguinte o seu indicativo e o QRA locator com 4 ou 6 digitos,

Os parametros possíveis são,

-f dial frequency [(,k,M) Hz], check http://wsprnet.org/ for freq.
-c your callsign (12 chars max)
-l your locator grid (6 chars max)

Receiver extra options:
-g gain [0-49] (default: 29)
-a auto gain (default: off)
-o frequency offset (default: 0)
-p crystal correction factor (ppm) (default: 0)
-u upconverter (default: 0, example: 125M)
-d direct dampling [0,1,2] (default: 0, 1 for I input, 2 for Q input)
-n max iterations (default: 0 = infinite loop)
-i device index (in case of multiple receivers, default: 0)

Decoder extra options:
-H use the hash table (could caught signal 11 on RPi)
-Q quick mode, doesn't dig deep for weak signals
-S single pass mode, no subtraction (same as original wsprd)

Nota final: é muito importante que o seu raspberry pi tenha a data e hora rigorosamente certas, pois o protocolo WSPR começa ao minuto exacto e prolonga-se por cerca de 2 minutos mais.

Se pretender pode automatizar o processo. Onno criou 3 simples scripts para o fazer. Se fizer login com o user "pi" devem ser guardados nas directorias indicadas no nome de cada um deles.

Cada frequência é lida aleatoriamente e escutada por 15 minutos. Pode eliminar frequências para as quais não tem antena, ou utilizar uma antena activa de banda larga.

Execute o WSPR

Depois de criar cada um destes ficheiros faça,

Referências:
https://projects.vk6flab.com/projects/rtl-sdr-projects/wspr-monitoring-node
https://lms.onnocenter.or.id/wiki/index.php/WSPR:_pakai_raspberrypi_dan_RTL2832U
https://libraries.io/github/Guenael/rtlsdr-wsprd
http://wsprnet.org/drupal/node/6215
https://www.rtl-sdr.com/rtl-sdr-blog-v-3-dongles-user-guide/