WSPR Command Line

Just a few days ago I bought a Raspberry Pi with nothing but the case and SD card expecting to just have it run as a little SSH server so I could remotely login to my weechat tmux instance, and upload weather data to wunderground from my weather station with weewx. I set everything up, tinkered around with it for a day or two and had it running smooth. I got curious and had heard in the past that the Raspberry Pi could be turned into a low power FM radio. Reading further, the Raspberry Pi actually does 1-250Mhz which is a perfect range for amateur radio operators. I knew it wouldn’t provide much power (10 dBm), so weak signal modes were what I needed.

I found WSPR for the Raspberry Pi with instructions on how to actually make the thing transmit. I followed very few of the recommendations to see if I could do it straight off the GPIO pins without the low pass filter they were requesting. While this was probably going to create harmonics, I just wanted to see if this worked. I cut myself 17ft of wire, taped it to my ceiling in a random way, connected that wire to GPIO4 (Pin 7), and ran a piece of wire from my house ground to the ground on the Raspberry Pi (Pin 9).

Ceiling Antenna

I compiled WsprryPi, gave a look at the arguments, manual, and gave it a shot.

-s will self-calibrate and find the PPM error with NTP time, -r will repeat the frequency choice, and -o will generate a random offset +/- 80hz every time it transmits. You can also use the common band meter designation instead of the actual frequency and it will transmit in the WSPR designated frequencies.

I left it running for around 10 minutes with no results on 20m, and I had no antenna cut for any other band. I gave up, shut it down and thought I had too noisy of a 5V power supply, or that because I did not have the appropriate low pass filter that something was mixing or something was just plain wrong with the signal. I came back around 5 minutes later after leaving the page up for my callsign only. I refreshed and was absolutely blown away.

Long range ultra low power contact!
Long range ultra low power contact!

My tiny 10dBm signal from the Raspberry Pi had made it across the pond with G4CUI as the receiving station. That is a 3250 mile (5230 km) signal report! Although only one station reported hearing me, this has been proven absolutely doable. 

I plan to try again but on battery power (4x 1.2V rechargeable AA) for less noise than the 5V wall wart, and I will likely be building a low pass filter to make sure I am not creating a mess from 1-250Mhz.

**Warning: Please make sure you use a low pass filter as suggested in the code readme as to not be creating strong harmonics up and down the bands where you may not be allowed to transmit. I take no responsibility for your testing.

Raspberry Pi 10dBm WSPR Log:

Timestamp Call MHz SNR Drift Grid Pwr Reporter RGrid km az
 2014-06-13 10:58z K2***  14.097191  -26   0  FN32  0.01 K0GUN  EM36cu  1877 257
 2014-06-13 08:28z  K2***  14.097077  -26   0  FN32  0.01  KE7A  EM12kx  2355  251
 2014-06-13 08:16z  K2***  14.097165  -22  -1  FN32  0.01  K5XL  EM12kp  2376  251
 2014-06-13 04:16z  K2***  14.097198  -30  -1  FN32  0.01  G4CUI  IO93fi  5230  51

17 Comments on Raspberry Pi Ham Radio #1 – WSPR

  1. Long-time ham with no QRP experience here (mainly just 2m/70cm through local repeaters); what gauge wire did you use for your antenna, and how was it attached to the GPIO pin? I’ve been playing with the RPi for a couple of years now, mainly using it as a local web server for testing code. Finally, a way to really have fun with my RPi!

    • I am unsure of the gauge but I think it was 18AWG. You can see in one of the pictures I put up that I was not doing science at all (hah) and simply pushed the wire onto the GPIO pin. Before I pushed it onto the pin though, I took my pair of tweezers with pointed tips and pushed it in the ends of the wires to make room and spread the copper out inside the insulation. They eventually slide on with very little resistance. Not the best way, but it was a temporary experiment and it worked with no problems. I would really recommend using a jumper wire on the GPIO pins and attaching that to the antenna/coax instead.

  2. Hi
    Nice to know I heard you. I’ve been looking at using PI for irlp and using for wspr as well is very intetesting. My current wspr set up is Softrock running IQ mode using Acer notebook to rotary dipole.
    Greg g4cui

      • Apparently the Pi 2 can still output RF, but all the programs that ouptut RF for the Pi, hard code the low-level location. Because the Pi 2 has a different processor, that location has changed. I read this in another forum where someone got the original PiFM working on the Pi 2 by changing that hard coded location. So I’m guessing that that same thing is hard coded in all the WSPR forks.

    • It is just an Ambient Weather WS-2080 with WeeWX on the Raspberry Pi uploading weather data from my back porch, to Wunderground 🙂

  3. I was able to get this working too. You can get inexpensive low pass filter kits from QRP Labs (, but they are in the U.K. and it takes a while to arrive (about 2 weeks in my case). I built an SRI fan dipole ( for 20/30/40, but I only have a LPF for 30, but I’ve gotten signal reports up to 1000 to 1500 miles away on 30.

    I had an old computer that I pulled out the cords for the power switch, power LED and hard drive LED because they have the little jumpers that hook onto the motherboard pins. Those same jumpers fit perfectly on the GPIO pins on the Pi. I put so-239 connecter and the LPF in an altoids tin. I’ve added a link to pictures below.

  4. I’ve also seen somebody doing FM Tx with raspberry pi without any additional hardware. My question is, is it possible to use the serial port or parallel port of a pc to accomplish the same?

  5. one week ago I thought a Raspebrry Pi was a dessert! (I like apple pie!). Nobody explained to me that it is a normal computer just like your Mac or PC . You can use it just like a windows PC to browse the internet, write an email etc….The concept is as follows 1) you buy it and you plug a monitor, usb mouse and usb keyboard. 2) If the Micro SD does not have the OPERATING system (Like windows or OSX in MAC but for this contraption it’s called NOOBS/Raspbian and you go get it at and copy it into the MicroSD which is also the hard drive/ram ) After installing the operating system then it will work like a NORMAL computer with everything including the built in WIFI,THEN you go to and buy their “shield” (a little board than filters out all freqs except for the 20 meter band) you install it, connect an antenna cable to it and then you go back to the keyboard and mouse and open DOS 2.0 like window on the raspberri Pi windows desktop (it’s not windows but it looks like a windows computer display ok?) and in that window you type the commands (written on the TAPR website) and this thing will start transmitting until you type Control C to stop it. Phew! I had to learn the concept all by myself but I got some high end help from Zoltan HA7DCD and John W9DDD. THE MOST IMPORTANT PART IS GET THE COMPUTER GOING FIRST! SO YOU CAN AT LEAST USE IT AS A NORMAL COMPUTER WITH WINDOWS AND WIFI AND BROWSERS AND EMAIL… then add all the ham stuff ..Actually for 35 bucks it’s an AMAZING computer for browsing, word processing and emails and more! I hope this helps (I wish somebody had given me the simple concept that a Raspberry Pi is a NORMAL computer and to get it going FIRST before I do all the fancy Ham Radio/Astronomy stuff..) Live and learn. 73 es QRV de WA6RSV!

  6. I have noticed you don’t monetize your website, don’t waste your traffic, you can earn extra cash every month because you’ve got hi quality
    content. If you want to know how to make extra money, search
    for: Boorfe’s tips best adsense alternative

  7. I see you don’t monetize your website, don’t waste your traffic, you
    can earn extra cash every month because you’ve got hi quality content.
    If you want to know how to make extra money, search for: Ercannou’s essential tools best adsense alternative

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.