Sunday, June 28, 2015

WSJT-X and HDSDR with Softrock RXTX

Introduction - A Raspberry failure

My first (and, as it turns out, rather ambitious) plan was to use a Raspberry Pi 2 as SDR computer for my SoftRock, with Quisk, Fldigi and WSJT-X. The plan was to use VNC to connect to the Raspberry, so I could operate digital modes from all my devices; iPad, iPhone, Mac and so on.

I made all of the above almost work. Quisk was easy to get going, but I struggled to compile WSJT-X. However, after a very time consuming upgrade from Wheezy to Jesse, I managed to make it run. But due to a conflict between Qt (the GUI framework in WSJT-X) and TightVNC, I could not make it run without a display connected. Bummer.

Second bummer: I had a hard time getting my Behringer UCA-202 sound card work correctly,  It seems like that the left channel is delayed by exactly one sample relative the right channel on this card. Reading this, I gave up, and ended up purchasing a Asus Xonar U7. I made the Asus work with the Softrock RXTX, but only on 192KHz, which seemed to be to CPU intensive for the Raspberry. The sound quality was really poor. 

All in all, I gave up on the Raspberry (for now), as I was eager to get the Softrock on the air and make some QSOs.

Softrock RXTX and Asus Xonar U7 in a "Pelicase". Plenty of room for Power supply, LP-filter and SWR meter.

Going all in for Windows

Being a Mac and Linux user for many years, I finally took the plunge and purchased a Windows 7 based Lenovo machine. It was a bit painful, but I came over it.

I now use HDSDR as the SDR program communicating with the Softrock RXTX with I/Q using the Asus Zonar U7. I use 48KHz 24bit at the moment (both directions) although the Asus can go all the way to 192KHz. I do not see the wide spectrum given by 192KHz being all that necessary for digimodes, but is certainly very handy to view the band in a glance panadapter-vise if you are searching for SSB ragchewers or whatever.

To connect HDSDR to digital-mode programs I purchased "Virtual Audio Cable". It was dead simple to set up, and worked with WSJT-X straight away. I also use com0com as a virtual serial port to let WSJT-X enable TX-mode on the Softrock through HDSDR. I have not made full CAT-control working yet, so I have to dial the tuning frequency on both WSJT-X and HDSDR.

I do not know anything about logging QSOs online or shipping QSL cards, but it has came to my understanding that logging as such is important and after a quick search I installed DXKeeper. It is free and it seems to work.

DXKeeper interoperates seamlessly with JTAlert which is a must-have add-on for WSJT-X.

To make all the above interoperate, the applications have to be started in the correct order. Virtual Audio Cable and com0com seems to always work, and can be set and forget. To make HDSDR, WSJT-X, JTAlert and DXKeeper play nicely, I created a small script:

echo off
echo "Starting ham radio software"
echo "Starting DXKeeper"
start C:\DXLab\DXKeeper\DXKeeper.exe
timeout 20

echo "Starting HDSDR"
start "" "C:\Program Files (x86)\HDSDR\HDSDR.exe"
timeout 10

echo "Starting WSJT-X"
start C:\WSJT\wsjtx\bin\wsjtx.exe
timeout 15

echo "Starting JTAlertX"
"C:\Program Files (x86)\HamApps\JTAlert\JTAlert.exe" /wsjtx

I saved it as a *.bat on my desktop. By clicking the bat-file the applications starts in the correct order, and ensures that JTAlert can talk to the DXKeeper database.

HDSDR, WSJT-X and JTAlert. The radio was absent when the picture was taken.

First QSO

With all the above running on my fresh Windows computer I threw out a simple dipole antenna and tried to make some QSOs with JT9 and JT65. M0LMI, Lubomir, from England, answered one the very first CQs sent by my Softrock and minutes later I had made my first QSO! I checked the power with my scope later and it turns out I was only running about 0.5 Watts. After cranking up the power to 1 Watt I made a few more QSOs, and I have to say I am happy with the setup. I have only been running on 20m so far.

JT9 and JT65 may be an easy mode compared to CW, but with limited power and a compromise antenna (I have no idea about the SWR and resonance and all that), you sure have to be patient.

Future work

I still have not given up on Raspberry Pi2, but before working on that, I will build a low-pass filter so I can operate on 30m. I think I also need a decent power meter so I can have an idea on what is going on. It is probably going to be a power meter DIYcrap style.


  1. I had the same problem as you using the Behringer UCA-202. It was basicly like having no image rejection at all but I found the answer on this page:

    In quisk you can tell it to delay a channel by 1 sample for a softrock with a configuration parameter. I just added this to my and it was golden:
    channel_delay = channel_i

    I love this project idea. I have a few spare Raspberry PI 2's lying around and now I know what I'm going to do with one of them!

  2. Thank you. I was not aware of the possibility to delay the sample within Quisk. Please post a link here about your progress in Rpi2 and SDR as I (and possibly any other readers googling this page) will like to know.