Monday, March 18, 2013

Two Apps at Once (Part 2)

[Sorry about the bifurcation - the Blogspot editor balked at publishing such a large post.

So, we're back to setting up HDSDR. But first, a quick note on computer requirements to accomplish all this magic.  On my anemic E2200 dual-core Pentium, CW Skimmer is the big load - currently about 30 percent at 96 KHz bandwidth.  RCKSkimmer is burning about 6 percent, and HDSDR is burning about 4 percent.  The rest of the stuff is negligible.  If you want to do what Wes does, and Skim 192 KHz on 7 bands during a contest, you will definitely need more CPU - something with a Passmark of ~9000 is probably about right.  I hope to have one soon.  73, N4ZR] 

Setting up HDSDR
HDSDR originally appeared as "Winrad", written by Alberto, I2PHD.  It has now been further developed by Mario Taeubel in Germany.  The best documentation may be the User Guide by I2PHD as updated by Alan, G4ZFQ.

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 the directory where you saved CWSL_Tee, copy the important file, EXtio_CWSL.dll, and paste 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 at the upper right 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 since some programs can use only 16 bit data CWSL trims the data to 16 bit.  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

 Go to Sound Card, ignore the "RX Input (from Radio) since the input from the radio is controlled by the EXtio_CWSL file.  For "RX Output (to Speaker)" select the sound card you use for audio from the internet, for example.  Select Bandwidth.  If you are using 192 khz bands in Skimmer Server you should get something like this:

 You may want to temporarily select a different Output Sampling Rate for the soundcard you use for your headphones but eventually it is best if the Input rate can be evenly divided by the Output rate.  For use with RCKskimmer select an Output Sample Rate of 48000 Hz, not 12000 as illustrated above.

Click Options / Select Input.  It should already read "CWSL".  Now you should be able to start the program and tune the frequency by clicking on the waterfall or clicking on the digits in the LO frequency and then the Tune  digits.  Some "gotcha's" -- clicking on the S-meter determines where the squelch level is set so be careful you don't squelch the receiver and then wonder what is wrong.  I also have spent hours trying to solve problems when it was squelched or the Mute button or the wrong mode button was pressed inadvertently.  After you have played with the program, perused the User Guide, figured out how to set the filter width, etc., we can go on. 

Our next tasks are the same as we would face installing RCKskimmer on any conventional HF receiver.  We need to get the audio out of the HDSDR receiver and into the RTTY decoder.  Also we need to set up Omni-Rig and its com ports so RCKskimmer can change the frequency within HDSDR's selected band. 

Installing RCKskimmer
Go to Walter's web site at and download the program as well as his "Predefined Search-Frequency Setup" files.  While you are there you probably will want to join his email forum where the program is supported.  Install the software in two differently named subdirectories and put distinctive shortcuts to the two instances on your desktop.   When the installation program asks whether it should install Omni-Rig say "Yes".

Installing the plumbing
Return to your first instance of HDSDR and select Soundcard.  Ignore the "RX Input" but change "RX Output" to Line 1 (Virtual Cable).  Make certain that HDSDR is in LSB mode with a filter bandwidth that is appropriate (2.6 to 3 khz). 

Now go to "Options".  This is a confusing step.  We don't  want "CAT to RADIO (Omni-Rig)".  That is because we are not using Omni-Rig to send controls from HDSDR to the QS1R -- that is the job of  the EXTio_CWSL file.  We do want to set "CAT to HDSDR" because we need CAT control between RCKskimmer and HDSDR.  Here set the port to Port 11, the Baud rate to 9600, PTT Activation to "None", and then, importantly, click "activated" to turn it on.  (Note that the Port sub-menu goes "grey" when the "activated" button is pressed

 Now let's go to RCKskimmer.  Under "Setup / Program Setup / Digi Module" you will see

UNLIKE the illustration, unclick the "Enable Telnet Server" and the "Send your received spots to RCK-Cluster" until you have everything working and are confident your spots are correct --  another "gotcha".  Fill out the information to the left and select as the Sound Card Device, Line 1 (Virtual Audio Cable).  UNLIKE the illustration, set the Soundcard Sample Rate to 48000, not 12000.

Change the check marks to correspond with the illustration in the lower left.  Since telnet port 7300 is probably being used by Skimmer Server, change this Telnet Server port to 7200.   Eventually the second instance of RCKskimmer might use port 7100.

Note that it is important to have the check in the box for "Additional use Master Call data for detection."  A check here lowers the validation requirement for call-signs that are in the database but does not prevent detection of calls not in the database.

Now let's go to the tab "TRX Control".  Under "Omni-Rig Control" click "Use Rig 1" and then "Settings"


HDSDR emulates a Kenwood.  So select that in the "Rig type" menu and fill in the rest of the Window.  Then click "OK"

IN the "Search Options" tab I use the following parameters

On "Jump Stepp (Hz)" select 2400 hz.  Even though you can select a wider bandwidth Walter says the program does a poor job of decoding the edges and he says to leave it here.   It may be my imagination but I think HDSDR seems to introduce some latency and I think I get better results when I use the values of 5, 7 or 8, and 20 seconds instead of the default dwell times.  

Now go to the "Search Frequencys" tab.

Here select a frequency range that lies within the band that HDSDR is demodulating.  The "Use Advanced Search Mode" changes the bands as the propagation changes during a day so we can't use that feature because we can't conveniently change bands. To use your customized dwell times instead of the default values you must select "customized" under "Search Type"

The illustration above shows only one frequency range chosen.  But you could easily add the 14070  BPSK range as well if you wanted to skim for both modes on the same band.  If there is a lot of US domestic RTTY traffic around 7.08mhz  I often have two RTTY frequency regions in my 7mhz  RTTY skimming.

OK.  You should be ready to press "Start" and watch the waterfall decode RTTY signals. 

Remember, once again, Skimmer Server must be started and the FPGA loaded before you start HDSDR.

Install a second instance of HDSDR and RCKskimmer
Now repeat this process, configuring your second instance of HDSDR and RCKskimmer using the com port 13-14 pair, virtual audio cable line 2 and telnet port 7100.  Another "gotcha" --  in HDSDR the settings for Sound Card and CAT to HDSDR port sometimes get confused when you close an instance of HDSDR and then restart it.  Always check these settings when starting the program so you don't send the audio to a copy of RCKskimmer that thinks it is scanning a different band.

Calibrating the frequency in HDSDR
Eventually if you are as compulsive as I am you will want to calibrate your receiver to make certain the RTTY spots report correct frequency.  If you have been running Skimmer Server you undoubtedly have arrived at a FreqCalibration number in your ini file that gives you respectably accurate CW spots.   For example, on my QS1R this value is currently 1.0000085 which is the ratio of the Displayed Frequency divided by the True Frequency.  If I understand things correctly, this correction is applied in the PC after the CWSL_Tee so your RTTY spots are uncorrected.  To apply this correction to each instance of HDSDR tune the software to some frequency, say 14090000hz, and navigate to "Options / RF Front End + Calibration".  Now tell the software the "true" frequency is 14089880 (Tuned freq / SkimServer FreqCalibration or 14090.000 / 1.0000085).

Setup WinTelnetX to funnel spots to RBN
If everything is working correctly, you now have spots from three sources: Skimmer Server and two instances of RCKskimmer.  How do you get the spots to the RBN.  I use K1TTT's WintelnetX to funnel all the data together into Aggregator.  That is the topic of my last previous blog post.

Where can I find RTTY skimmer spots?
Currently there are RCKskimmer operators who send their spots to Walter's DL4RCK DX cluster who don't yet send them to RBN.  However, many of the DX clusters which carry RBN skimmer spots also are picking up all the spots from Walter's site.  To check whether your favorite skimmer DX cluster has all of Walter's data, you can Ttelnet to his site,  port  8000, and give the command "sh/fullinfo" to get a listing of users.

WZ7I Skimmer Current Configuration
Recently I needed to purchase a second QS1R to use in recording contests.  But since contests aren't on the air all the time I am using the second SDR to cover more CW and RTTY bands.  So the current installation here is both QS1R receivers, each running multiple bands on Skimmer Server and two bands of RCKskimmer, for a total of four bands of RTTY skimming.  All the telnet data goes into WintelnetX and Aggregator.  

It isn't pretty but it works.  The white things are metal drawer dividers for silverware from the local hardware store house wares department which I purchased after my wife inexplicably asked for her cake cooling racks to be returned.  On the front rack are two-way and a four-way Advanced Receiver Research power dividers, then the KD9SV Front End Protector from and finally a Clifton Laboratories Z10046A preamp.  This is fed from a HyGain Hy-Tower vertical.

Good luck and let me know if I can help or if you see errors.

73, Wes, WZ7I