WSPR daemon for RTL receivers
Clone or download
Latest commit 7e422a1 Jun 23, 2017
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore first commit, usable version Jun 11, 2016
Makefile build options Jun 23, 2017 modified: Jul 14, 2016
fano.c format Jun 23, 2017
fano.h device index selector Jun 23, 2017
metric_tables.h memory leak fix & float approx fix Jun 25, 2016
nhash.c format Jun 23, 2017
nhash.h format Jun 23, 2017
rtlsdr_wsprd.c format Jun 23, 2017
rtlsdr_wsprd.h files process & rewrite Jun 23, 2017
tab.c first commit, usable version Jun 11, 2016
wsprd.c format Jun 23, 2017
wsprd.h files process & rewrite Jun 23, 2017
wsprd_utils.c format Jun 23, 2017
wsprd_utils.h format Jun 23, 2017
wsprsim_utils.c format Jun 23, 2017
wsprsim_utils.h format Jun 23, 2017

rtlsdr-wsprd -- WSPR daemon for RTL receivers

This non-interactive application allows automatic reporting of WSPR spots on WSPRnet. The idea is to allow the use of small computer like RasberryPi or Beaglebone boards, with a simple deamon. This kind of very lightweight setup could run continuously without maintenance and help to increase the WSPR network. The code is massively based on Steven Franke (K9AN) implementation and Joe Taylor (K1JT) work. This code was originally written for AirSpy receiver.

WARNING -- Crystal stability

Most of RTL dongles use a cheap crystal, and frequency drift can avoid WSPR decoding. The use of no-name RTL dongle for VHF/UHF bands usually require crystal modification, for a better one. External clock could be also used, like GPSDO or rubidium reference clock, aligned on 28.8MHz. In some case, it's possible to use the factory crystal (usually HC49, through hole), using a good thermal isolation. I successfully used two device with no modification, but it's tricky, easy to miss the window, and RTL devices does not allows fine frequency tuning. For now, a good option is to buy a RTL device designed for SDR applications and integrating a 0.5ppm TCXO. After many tests, I would recommend this version : NooElec NESDR SMArt - Premium RTL-SDR w/ Aluminum Enclosure, 0.5PPM TCXO

Basically, this application :

- Perform a time alignment (2 mins) - Start the reception using the RTL lib - Decimate the IQ data (2.4Msps to 375 sps) - Decode WSPR signal - Push the spots on WSPRnet - Repeat...

Howto :

1. Install a Linux compatible disto on your device (ex. Raspbian for RaspberryPi) 2. Install dependencies & useful tools (ex. ntp for time synchronization) ex: sudo apt-get install build-essential cmake libfftw3-dev libusb-1.0-0-dev curl libcurl4-gnutls-dev ntp 3. Install rtlsdr library : 4. Install rtlsdr-wsprd (this app) : 5. Enjoy it with ./rtlsdr_wsprd

Tips (for Raspberry Pi):

- Use ferrite bead to limit the interferences - Cut off the display (could help to reduce QRN) : /opt/vc/bin/tvservice -o - Remove unused modules (ex: /etc/modules: #snd-bcm2835)

RTL devices & tests

- NooElec NESDR SMAr : Works fine out of the box - RTL-SDR Blog 1PPM TCXO : Works with some drift, require additional mass, or additional enclosure - Other no-name like : RT820, E4000, FC0012, FC0013, can work, but require modification and drift a lot

Raspberry devices & tests

- RaspberryPi 2, 15% of one core @1GHz (rx & decimation), and a burst during 10s on the second core), using Raspbian GNU Linux (Wheezy, 2015-02-16) - RaspberryPi 1, 23% @700MHz (rx & decimation), and a burst during 30s on a second thread, using Raspbian GNU Linux (Wheezy, 2015-02-16) - RaspberryPi 3 : TODO

Rasberian to use with a Raspberry PI

I noticed some disconnection problems with USB port while using Raspbian Jessie (2016-05-27-raspbian-jessie-lite.img). I rollbacked to Raspbian Wheezy (2015-02-16-raspbian-wheezy.img) and the problems solved by themself magically... For now, I have not investigated this issue, but if you experience some "Caught signal 11" error message, it could be this same problem. For now, I would recommend Raspbian Wheezy v2015-02-16.