FT8 Skimmer

CWSL_DIGI, combined with SkimSrv, HermesIntf, and CWSL_Tee offer the possibility to skim CW and all WSJT-X modes (FT8, FT4, Q65, etc.) with one single Red Pitaya as front end.

John G4IRN has prepared an excellent step-by step description on how to set it all up HERE.

A shorter description for the Red Pitaya STEMLab 122-16 can be found below. As a start, you need a reasonably powerful Windows PC.

Step 1. Set up a working, Red Pitaya-based CW skimmer

Follow the instructions HERE.

To prepare to skim all CW and JT mode band segments while minimizing heat dissipation in the Red Pitaya you need to be a little smart about what band segments to listen to. This is what I use:

SkimSrv.ini

[Skimmer]
CenterFreqs48=1832750,3522750,5362750,7022750,10122750,14022750,18090750,21022750,24912750,28022750,28202750,50082750
CenterFreqs96=1855500,3545500,5345500,7045500,10145500,14045500,18113500,21045500,24935500,28045500,28185500,50295500
CenterFreqs192=1901000,3591000,5341000,7091000,10191000,14091000,18159000,21091000,24981000,28091000,28191000,50091000
SegmentSel48=11010101010
SegmentSel96=111101010101
SegmentSel192=000011010101
CwSegments=1810000-1840000,3500000-3570000,5351500-5357000,7000000-7040000,10100000-10130000,14000000-14070000,18068000-18095000,21000000-21070000,24890000-24915000,28000000-28070000,50000000-50200000

Rate=2

SkimSrv2.ini

[Skimmer]
CenterFreqs48=1832750,3522750,5362750,7022750,10122750,14022750,18090750,21022750,24912750,28022750,28202750,50082750
CenterFreqs96=1855500,3545500,5345500,7045500,10145500,14045500,18113500,21045500,24935500,28045500,28185500,50295500
CenterFreqs192=1901000,3591000,5341000,7091000,10191000,14091000,18159000,21091000,24981000,28091000,28191000,50091000
SegmentSel48=00011111111
SegmentSel96=111100101011
SegmentSel192=00101010101
CwSegments=1810000-1840000,3500000-3570000,5351500-5357000,7000000-7040000,10100000-10130000,14000000-14070000,18068000-18095000,21000000-21070000,24890000-24915000,28000000-28070000,50000000-50200000

Rate=1

The two files can be downloaded HERE. Please note that the files contain station-specific information (including calibration factor) and can not be used as is.

To cover all CW, FT8, and FT4 segments I use this configuration:

At this point you can also calibrate the skimmer, using any of the methods found HERE.

Step 2. Install WSJT-X

Go HERE to download. Install in the default folder.

Step 3. Install CWSL_Tee

Follow the installation instructions HERE. Make a copy of the entire program folder called SkimSrv2. Rename CWSL_Tee.dll to CWSL_Tee1.dll in the SkimSrv program folder and rename CWSL_Tee.dll to CWSL_Tee2.dll in the SkimSrv2 program folder.

Edit CWSL_Tee.cfg in both program folders. The first line should be the name of the Hermes interface DLL in the folder and the second line should be 64. As an example:

HermesIntf_716F
64

and

HermesIntf_FF6F
64

Start both SkimSrv instances and change the signal source to CWSL_Tee on both. It will likely crash but just restart the program.

Verify that both CW Skimmer Server instances still work and produce spots.

Step 4. Install CWSL_DIGI

Go HERE for instructions. Make sure to install the Visual Studio and Fortran runtimes.

Step 5. Configure CWSL_DIGI

Open config.ini in the folder where you installed CWSL_DIGI.

Set freqcalibration to the reciprocal (1/x) of FreqCalibration in SkimSrv.ini. If you have not yet calibrated your skimmer, leave it at 1.0.

Set sharedmem=2 since you are operating a dual SkimSrv system

Set callsign to your call. Set gridsquare to your six-position Maidenhead grid.

Chose the decoders you want. Make sure to add 1 or 2 at the end of each line, depending on which SkimSrv instance it will use.

If you are planning to decode WSPR, set up a RAM disk on the computer. Windows 11 has this built in. There are free alternatives for Windows 7, such as RAMDisk.

If you are using a RAM disk, set temppath to a dedicated folder on it, for instance:

temppath=D:\cwsldigi

If you have installed WSJT-X in its default location, you can leave binpath=C:\WSJT\wsjtx\bin

Set transfermethod=shmem to use shared memory data transfer whenever possible.

CWSL_DIGI can swallow a lot of CPU power. If your PC becomes overwhelmed you can play around with numjt9instances, numjt9threads, and decodedepth to reduce the load. Avoid relying solely on decodeburden unless you have a really powerful PC.

My experience is that the gains with multithreading are marginal or even negative. My Core i5-7500 comfortably runs some 45 FT8 and FT4 segments numjt9instances=2, numjt9threads=1, and decodedepth=2

Leave aggregatorport=2215.

Set pskreporter=true and rbn=true. Leave aggregatorip=127.0.0.1.

Leave wsprnet=false unless you are decoding WSPR.

You can download my config.ini HERE. It leaves plenty of CPU power headroom on an old Core i5-7500. Keep in mind that the file contains station-specific information, such as call sign, location, and calibration factor and cannot be used as is.

RBN Aggregator is required to publish the spots on RBN. To automatically start RBN Aggregator at boot time, add a shortcut to it to shell:startup on your PC. You can then use use RBN Aggregator’s Associate Pgms tab to automatically start both the two SkimSrv instances as well as CWSL_DIGI.

Step 6. Connect to RBN Aggregator

Set port 40 in RBN Aggregator’s FT# panel to 2215 and enable it. Leave the calibration factor at 1.0. (Ports 40 through 43 have larger buffers to avoid overrun when there are lots of decodes).

Step 6. Enjoy your spots