Monday, March 18, 2013

Magic with the QS1R - Two Apps at Once (Part 1)

Well, Wes, WZ7I has done it again.  This time, he has developed a way to run both Skimmer Server and the DL4RCK RTTY Skimmer application on the same receiver at the same time.  Stick with us, boys and girls, and Wes will explain how it is done.

The following block diagram explains succinctly what is involved.  It looks a little intimidating, but it really isn't hard to get going.

Over to you, Wes.

Running RCKskimmer and CW Skimmer Server on the QS1R Concurrently

When Alex, VE3NEA, introduced Skimmer Server for the QS1R it seemed to me he had accomplished two significant things.  In a display of coding virtuosity he had written compact software that used the SDR's FPGA to create 7 receivers.  Secondly, his software on the PC did an excellent job of decoding CW on each of these receivers.  More recently Petr Paryzek introduced CWSL_Tee.dll, a program that forms a "Tee" between the FPGA code and the PC code allowing you to tap into the data and feed it to other SDR applications while the PC portion of Skimmer Server skims the CW bands.  One such application is Petr's CWSL_File.exe that makes it easy to record each of these bands for later playback through SDR software.  Another application is his Extio_CWSL.dll which serves as an Extio file for Winrad or HDSDR allowing you to tune through one of these bands with headphones plugged into a computer sound card like using a conventional receiver.  The audio from this "HDSDR receiver" can be piped to any digital application like MMTTY or  RCKskimmer, DL4RCK's RTTY skimmer. 

On my QS1R SDR I have been running RTTY skimming on two HF bands while using CW Skimmer Server to skim seven bands of CW.  But nothing comes free and this arrangement introduces some limitations:

1)  During the day I no longer automatically change the bands that Skimmer Server covers using Aggregator's ini file rotation capability.  Nor can I use RCKskimmer's ability to change bands.  Each instance of HDSDR / RCKskimmer must sit on the same band around the clock unless I manually intervene to change bands (which is quite simple to do).
2)  RCKskimmer tunes the frequency in HDSDR by using com ports via Alex's program, Omni-Rig.  But Omni-Rig can control only Rig 1 and Rig 2, or two instances of HDSDR, in our case.  So we are limited to running RCKskimmer on only two of the seven Skimmer Server bands on a single computer.
3)  Finding a computer fast enough to handle contest peak decoding for Skimmer Server has been a challenge.  So how could a computer do all of that plus run two copies of HDSDR and two copies of RCKskimmer at the same time?  This turned out not to be a problem with recent computers because if the bands are full during a CW contest, there aren't many RTTY signals to spot and all this other software can be turned off.

So let's assume you have a machine currently running a QS1R and Skimmer Server.  How do we get all this other stuff going?

Installing CWSL_Tee.dll
Download the latest version of from  and carefully follow Petr's installation instructions.  Note where you put the file EXtio_CWSL.dll because later you will need it.  Start Skimmer Server and on the Skimmer tab change the receiver from the QS1R to CWSL_Tee on QS1R.  In several months of use I have found no disadvantage to using CWSL_Tee all of the time with Skimmer Server.  There appears to be no loss in sensitivity or degree of robustness.  Your Skimmer Server application should function entirely as before.

Install Virtual Audio Cables and Virtual Serial Ports
Install  the program, Virtual Audio Cable.  It costs $25 US but I have used it for years and it has a generous license agreement.  It is worth the investment for any SDR user.  You will need to set up two cables, for our example Cable 1 and 2.

Start Virtual Audio Cable Control Panel and for each cable change SR (sample rate) to 11025 to 48000 and click "Set" then "Exit".

If you are running Windows 7 you need to add an additional step.  Go to the Control Panel, Hardware and Sound, Sound, Manage audio devices.  Click on the Playback tab, select "Line 1, Virtual Audio Cable".  Then Click on Properties, Advanced, and from the pulldown menu select "2 channel, 16 bit, 48000 Hz (DVD Quality)", and then "OK".  Repeat this for "Line 2, Virtual Audio Cable".  Now repeat both steps for the two lines under the Recording Tab.  Your cables are now set up.

VSP Manager is an excellent piece of software from K5FR.  (  If you are a licensed amateur email Steven with your call letters and he will give you access to the program.  Otherwise, you will need to use another virtual com port program.  After installation of  the software you need to set up 4 virtual com ports for communication between HDSDR and RCKskimmer.  For pedagogical purposes let's call them port 11 which talks to port 12 and port 13 that talks to port 14. 

[It will help you to follow along if you use the same port numbers that Wes did in this article.  You'll need to set up one pair for each band on which you plan to run RCKSkimmer. - Ed.]

Unlike the above image, your VSP Manager screen will not yet tell you which application is using each port until we set up the applications.

Setting up HDSDR
HDSDR originally appeared as "Winrad", written by Alberto, I2PHD.  It has now developed by Mario Taeubel in Germany.  You will probably want a copy of the User Guide by I2PHD from  The program has changed some since Alberto wrote the guide but this is the best documentation available. 

First let us set up this program so it can be used as a conventional receiver with a pair of headphones.  Since you will eventually have two copies of this software running, make certain you install it in two distinct subdirectories with different names.  I find it useful to immediately create two shortcuts on my desktop with these distinctive names so I do not confuse them.  Now go to directory where you installed CWSL_Tee,  find the important file, EXtio_CWSL.dll, and copy it into each of the two HDSDR directories.  Make certain Skimmer Server is running.  

Now start one copy of HDSDR.  You will get a little window that allows you to choose which band HDSDR should demodulate.  And in this window there is this strange parameter called Scale Factor.  Petr points out that Skimmer Server produces 24 bit data but programs like HDSDR use 16 bit data so the Scale Factor specifies which bits to retain after trimming.  For our purposes you need to choose some value between 16 and about 10.  I use the highest number that gives me noise in the waterfall when the band is "dead"  Try 13 for a first attempt with an HF band. 

Please go to Part 2 for the remainder of this post.

1 comment: