WSJT-X with SDRuno for WSPR Band Hopping

After testing out reception of WSPR beacons using my HF rig and WSJT-X software, I decided I wanted to run the receiver overnight or continuously for long periods of time. Dedicating an HF rig to WSPR decoding is less than ideal, so I decided to put my SDRplay RSPdx to use. While there may be plug-ins for SDRplay that will perform WSPR decoding, at the time of the writing of this post, there was not a plug-in that would band-hop and report spots.

If you are not familiar with the WSPR digital mode, watch David Casler’s video on WSPR

I decided to use WSJT-X in WSPR mode, enabling the “band hopping” feature. This allows you to specify the band(s) you wish to monitor for WSPR and when. WSJT-X will also report WSPR spots to WSPRnet. WSJT-X is most commonly connected to your HF rig for example if you are familiar with FT8. However, in this setup I wanted to connect it to my SDR instead of the HF rig.

I’m using Windows for this setup, and there may be equivalent utilities that I mention here for different platforms such as MacOS or Linux.

In order for this setup to work, I would need to run SDRuno (the receiver app that is designed for the SDRplay line of SDR products) and route the audio over to WSJT-X for decoding. In order for band hopping to work, I would need to have WSJT-X be able to change the VFO on the SDR when it is time to switch bands, exactly like it can do with the HF rig.

SDR Audio Output to WSJT-X Audio Input

I used VB-CABLE, the Virtual Audio Cable to route the audio output from SDRuno to WSJT-X. To accomplish this, on SDRuno, I set the output device to CABLE Input which is the device that VB-CABLE provides as a virtual device.

On WSJT-X, I configured the audio device similarly, choosing CABLE Output as the input device. The output device in WSJT-X in this case is not relevant, since I am receiving WSPR and not transmitting.

CAT Control to SDRuno

In order for WSJT-X to be able to change the VFO in the SDR for band hopping, I used a virtual null modem driver to connect WSJT-X CAT control to SDRuno. SDRUno has a CAT feature which allows external devices or software to control the VFO among other things. The tool I used to connect WSJT-X to SDRUno was com0com.

After installing com0com, I created a Virtual Port Pair, which creates 2 virtual COM ports which are connected via software. I chose 2 serial ports that do not exist on my PC (to avoid a conflict with any real ports).

In WSJT-X, I selected the Kenwood TS-480 (this is the rig SDRuno simulates for CAT control), and COM12 for the serial port. Note that I did not configure the PTT method as I will not be transmitting.

On SDRuno, I configured the CAT settings to COM11 for the port and clicked the Enable and Connect checkbox.

Because COM11 and COM12 are virtual ports and connected, this will allow WSJT-X to change the VFO on SDRuno.

You can confirm the audio connection by monitoring the waterfall in WSJT-X. Assuming your VFO is on a band that you can currently receive one or more WSPR stations, you should see the signals between 1400 and 1600 hz from the “dial frequency”:

To confirm WSJT-X is able to change the VFO in SDRuno, you can either wait for it to band hop, or, manually select a different band from the drop down.

After a few band hops, I was able to confirm reception and decoding of several WSPR beacons:


I ran this configuration for several days, 24 hours each day, and monitored my received stations on WSPR Watch, an iPhone app. I was able to confirm that I was receiving stations on multiple bands and the receiver on the SDR was close to performance as the HF rig for WSPR. In this case the comparison is on the same antenna (an MFJ-2012 OCFD in the attic with the MFJ-969 tuner in bypass mode).

I can now free up the HF rig for other uses (assuming I use a different antenna for WSPR than the HF rig) and participate in the WSPR spot reporting.

Leave a Reply