Compiling WSPR For The pcDuino

I was working my way through my pile of development boards looking for project ideas when I ran across my pcDuino. I originally bought it to put together a small Linux SDR system but set it aside since the kernel at that time didn’t contain support for my USB sound card. Since then there have been a number of updates to the kernel so I decided to have another go at it.

We all have to start somewhere and I decided to start with the WSPR software. Using the instructions provided on George Smart’s Compiling WSPR page, it was only a few hours before I had a working system.

Base System

I started with the pcDuino base Lubuntu installation on a bootable SD card. The SD card is required since the pcDuino has only 2 GB of flash memory on board, which isn’t enough to hold all the tools needed to build WSPR. Mine was a 16 GB card but I think you could do it with 8 GB.

A network connection to load the necessary tools is also necessary.

Required Software

To build WSPR the following software from the repositories is needed:

  • subversion
  • python3-dev
  • python3-numpy
  • libportaudio2
  • libportaudio-dev
  • libsamplerate0-dev
  • gfortran
  • portaudio19-dev
  • cl-fftw3
  • tk8.5-dev
  • tcl8.5-dev
  • python3-tk
  • python3-setuptools

These can all be installed using apt-get.

    sudo apt-get install < package >

The pcDuino’s version of autoconf isn’t recent enough to use with the WSPR source so it will need to be updated. However, before that, the M4 macro preprocessor needs to be installed.

To do so, download the file m4-1.4.17.tar.gz from the site and untar it to a convenient location.

    tar -xvf m4-1.4.17.tar.gz

Change to the created directory and build using the standard commands:

    cd m4-1.4.17
    sudo make install

Once that’s done repeat the process for autoconf. Download the file autoconf-2.69.tar.gz from the site, untar it, and build.

    tar xvf autoconf-2.69.tar.gz
    cd autoconf-2.69
    sudo make install

You’ll also need Pillow (a fork of the Python Imaging Library) from the python repositories:

    sudo easy_install3 pip
    sudo pip install -I --no-cache-dir pillow

Configuring The Source Code

On my system a link to the f2py utility didn’t exist so I had to create it:

    sudo ln -s /usr/bin/f2py3.2 /usr/bin/f2py

Once that’s done, check the WSPR source code out of the repository:

    svn checkout svn:// wspr

and configure the Makefile:

    cd wspr

Building The Software

When I first tried to build the software I had problems with the man pages. Since I didn’t anticipate a need for them I updated the Makefile to remove references to them. Change the line:

    all:  libwspr.a WsprMod/ fmtest fmtave fcal fmeasure 
          wsprcode wspr0 manp user-guide

to remove references to manp and user-guide so the line reads:

    all:  libwspr.a WsprMod/ fmtest fmtave fcal fmeasure 
          wsprcode wspr0

Once this is done, save the updated Makefile and perform the build.


Assuming everything completes without error, you can run the software with the command:

    python3 ./

The picture below shows the WSPR software running on the pcDuino. I like the idea of having a small, low power system running my SDR software so I think I’ll try a few more packages. I don’t think there’s enough power here to run something like gnuradio but rtlsdr and perhaps HDSDR are definite possibilities.

WSPR on the pcDuino

Comments are closed.

DuWayne's Place

Computers, Electronics, and Amateur Radio from KC3XM

QRP HomeBuilder - QRPHB -

Computers, Electronics, and Amateur Radio from KC3XM

Open Emitter

Computers, Electronics, and Amateur Radio from KC3XM

Ripples in the Ether

Emanations from Amateur Radio Station NT7S

m0xpd's 'Shack Nasties'

Computers, Electronics, and Amateur Radio from KC3XM

%d bloggers like this: