Thursday 10 March 2016

WSPR from Raspberry Pi

So after my success with transmitting SSTV from my Raspberry Pi, I thought I would try WSPR. I chose to try the code from JamesP6000. This is the brief usage that I noted to download it and get it going:

  Install
    sudo apt-get update
    sudo apt-get dist-upgrade
    sudo apt-get install git
    git clone https://github.com/JamesP6000/WsprryPi.git
    cd WsprryPi
    make

  Usage
    wspr [options] callsign locator tx_pwr_dBm f1   ...
      OR
    wspr [options] --test-tone f

  Options
    -h --help
      Print out this help screen.
    -p --ppm ppm
      Known PPM correction to 19.2MHz RPi nominal crystal frequency.
    -s --self-calibration
      Call ntp_adjtime() before every transmission to obtain the PPM
      error of the xtal.
    -r --repeat
      Repeatedly, and in order, transmit on all the specified freqs.
    -x --terminate 
      Terminate after n transmissions have been completed.
    -o --offset
      Add a random frequency offset to each transmission:
        +/- 80 Hz for WSPR
        +/- 8 Hz for WSPR-15
    -t --test-tone freq
      Simply output a test tone and the specified frequency. Only used
      for debugging and to verify calibration.
    -n --no-delay
      Transmit immediately, do not wait for a WSPR TX window. Used
      for testing only.

  Example
    sudo ./wspr --repeat M6KWH IO92 10 40m
 
  Frequencies
    Hz
  or.wspr centre frequency for bands:
    LF LF-15 MF MF-15 160m 160m-15 80m 60m 40m 30m 20m 17m 15m 12m 10m 6m 4m 2m

  HDSDR->SoundFlower->WSPR
    40m Centre 7040000, dial 7038600 to get 1500hz tone out
    from 40m = 7040100 tx freq
I made a new directory and put in it:
  -rw-r--r-- 1 pi   pi   1417 Mar 10 14:40 usage.txt
  -rwxr-xr-x 1 pi   pi  69792 Mar 10 14:14 wspr
This is the command I used and the messages in the Terminal
pi@fido:~/WSPR $ sudo ./wspr --repeat M6KWH IO92 10 40m
WSPR packet contents:
  Callsign: M6KWH
  Locator:  IO92
  Power:    10 dBm
Requested TX frequencies:
  7.040100 MHz
Extra options:
  Transmissions will continue forever until stopped with CTRL-C.
Here's the received signal on HDSDR. LOTS OF HARMONICS!!! But the fundamental is readable

Screen Shot 2016 03 10 at 15 51 35
My Arduino SDR audio IQ output is viewed by HDSDR which is then piped to SoundFlower which is then the input to the WSPR program, all running on my iMac.

Screen Shot 2016 03 10 at 15 48 56


As you can see the Pi is set to transmit at 7040100Hz, but the WSPR report reception at 7040027, The problem is almost certainly that my Arduino SDR is off frequency by the difference...

No comments: