A QS1R SDR can be used in conjunction with CW Skimmer Server to operate an RBN receiver capable of receiving 7 bands simultaneously. While skimming can be performed using only CW Skimmer Server and RBN Aggregator, using the CWSL_Tee and CWSL_File software allows simultaneous decoding and I/Q data recording of each received band.
This guide documents the software configuration required to operate a QS1R in simultaneous skimming/recording mode. It assumes no software is already installed. Users who have already installed RBN Aggregator and CW Skimmer Server may skip the appropriate sections of this document, and focus on integrating CWSL_Tee and CWSL_File with their existing installations.
It is suggested, particularly for users of Windows 10, that you run Windows Update and install all available updates before beginning this procedure. It is undesirable for the system to reboot automatically during the data collection period, particularly if it is left unattended.
CW Skimmer can consume significant system resources when many signals are on the air, as is expected during the Solar Eclipse QSO Party. Any first or second generation Core i5 or i7 quad-core CPU should be adequate for skimming several channels, and newer dual core systems are likely to work well as also. Older single and dual-core systems may not run well. A system was tested with several channels on a Core 2 Duo E6750 system, and it ran very well. It is recommended not to run any SDR software such as HDSDR simultaneously, as this consumes significant CPU resources.
Several additional programs need to be installed at first.
- Install CW Skimmer Server from http://www.dxatlas.com/cwskimmer/ - the program will operate in trial mode for 30 days. Purchase a license to use it beyond this period.
- Download Reverse Beacon Network Aggregator from http://reversebeacon.net/pages/Aggregator+19 - this program is a portable .exe which does not require installation. Place it in any non-system folder (not in C:\Program Files or C:\Windows).
- HDSDR, while not needed for operating CW Skimmer, may be used to verify that CWSL_Tee is working properly, and that recorded I/Q files worked as expected. Its use is referenced in this document, and it may be downloaded from http://www.hdsdr.de/.
Meinberg NTP Client Installation
If you plan to record the I/Q data, it is recommended to install the Meinberg NTP client from https://www.meinbergglobal.com/english/sw/ntp.htm to keep the PC's clock synchronized tightly during operation. Other NTP synchonization programs for Windows, such as Dimension 4, are also suitable. To complete this:
- Download the installer for the Meinberg NTP client from the above link, and begin the installation. Proceed until the "Files have been installed" screen:
- On this screen, the option "Want to use predefined public NTP servers?" is disabled by default. Change the option (shown above in yellow) to an appropriate region for your location.
- Complete the installation. It should be acceptable to use the SYSTEM account for the NTP client when asked.
- To ensure the NTP client is operating correctly, open the Start menu, and under "Meinberg", run "Quick NTP Status". A text window is displayed:
In this output, each line denotes an NTP server to which NTP is using for time synchronization. When NTP is running correctly and has brought the clock within a reasonable synchronization, an asterisk will be displayed at the beginning of the line for one of the NTP servers. Once this state is achieved, NTP can be considered to be running correctly.
Note that if the NTP configuration file needs to be edited, it is necessary to then restart the NTP service. This can be accomplished by using the "Restart NTP Service" option in the Start menu program group, but in recent versions of Windows, it needs to be run as administrator to work. Alternatively, from a command prompt with administrator privileges, execute "net stop ntp", then "net start ntp".
CW Skimmer Server & RBN Aggregator configuration
CW Skimmer Server and RBN Aggregator require minimal configuration to integrate them with the Reverse Beacon Network after their installation.
- Start Skimmer Server. Under the Operator tab, enter your name, callsign, and grid square.
- Leave the settings in the Telnet tab at their defaults - this should allow RBN Aggregator to connect without any additional configuration.
- Start RBN Aggregator by double-clicking the file. Under the Connections tab, enter your callsign in the Callsign box, then click Connect. RBN Aggregator should then retrieve the name and grid square from Skimmer Server when it connects. If this occurs, RBN Aggregator is now receiving spots from Skimmer Server.
In a configuration with CW Skimmer Server and a QS1R, Skimmer Server interfaces directly with the QS1R. This simplifies operation, but in such a configuration no other programs can access the data from the QS1R. The CWSL_Tee.dll library allows multiple programs to access the data streams coming from the QS1R - in this usage case, CWSL_Tee allows Skimmer Server to operate live while CWSL_File simultaneously records the data to the hard drive.
To configure Skimmer Server to run behind CWSL_Tee, do the following:
- Download CWSL_Tee.dll, CWSL_Tee.cfg, and CWSL_File.exe from https://github.com/HrochL/CWSL - look under the 'bin' subdirectory.
- At the above link, follow the procedure in the description, labeled "Installation procedure is as follows". Note that while CWSL_Tee.dll and CWSL_Tee.cfg should be placed in the Skimmer Server directory (typically C:\Program Files\Afreet\SkimSrv), CWSL_File.exe should be placed in any folder on the hard drive which will be used to store the recorded data, as this program does not have an option to direct its output files to another folder or drive.
- Turn on the QS1R and connect it to the computer. Start CW Skimmer Server. At this point, CW Skimmer will likely connect to the QS1R, load the FPGA code, and start operating. Select the bands that should be skimmed using the checkboxes in the 'Skimmer' tab.
- Under the 'Skimmer' tab on Skimmer Server, set the 'Receiver' option to 'CWSL_Tee' as shown below:
- Close Skimmer Server by right-clicking on its System Tray icon. Power off the QS1R, then power it on again. Start Skimmer Server and verify that CWSL_Tee is still selected as the receiver. At this point, Skimmer Server should be receiving data from the QS1R through CWSL_Tee.
To verify that CWSL_Tee is in use, open HDSDR. When the "Choose which External HW should be used by HDSDR" box appears, select 'Extio_CWSL.dll'. The SDR should begin operating, and a band select window should appear:
If this window is present, HDSDR is receiving data through CWSL_Tee, and it should be possible to set up the recorders. Note that in this mode, the HDSDR IF cannot be tuned - this is because each 192KHz data stream is fixed in frequency by Skimmer Server.
At this point, you can start RBN Aggregator and connect it to Skimmer Server.
Once Skimmer Server is operating through CWSL_Tee, the CWSL_File program is used to record the data from a given band. This program is run via the command line, and records a single band per instance. Therefore, to record every band being skimmed, multiple instances of CWSL_File are run simultaneously.
Note that CWSL_Tee should not be placed in the C:\Program Files or C:\Program Files (x86) directories - these are not writable without administrator privileges, and attempting to record to these directories will result in no file output.
Recording a 192KHz band segment was observed to produce slightly under 1MB/s of sustained disk writes. At this rate, recording 7 bands for 24 hours would produce about 440GB of output. It is expected that any modern 1TB or greater hard drive should provide enough write bandwidth to sustain the recording of 7 bands simultaneously for the duration of the event.
To initiate recording follow the procedure below:
- Open a command prompt. Navigate to the directory in which CWSL_File.exe is located.
- Run CWSL_File.exe without any arguments to display the usage information. Note the BandNr and Scale Factor arguments - each of these is a single number.
For the QS1R, the Scale Factor should be set to 8. The BandNr argument is a number from 0 - 6 representing one of the selected bands. In Skimmer Server, under the 'Skimmer' tab, band 0 is the first selected band, band 1 is the second, and so forth. This is shown in the screenshot below, in which the red numbers next to the band segment selection panel denote the BandNr that corresponds to each band.
Additionally, the -L argument should not be used, such that the filenames are generated using UTC times rather than local times. It is recommended that the '-Q' argument is used such that CWSL_File makes a new output file every 15 minutes. This ensures that as many timestamps as possible are recorded during the recording session.
- Start the first recorder, using a command line such as 'cwsl_file 0 8 -Q'. The output should look like the following:
The first band is now being recorded. Leave the command prompt in this state until it is time to stop recording, then stop the program via Ctrl-C.
- Start the remaining six recorders using the above procedure, incrementing the BandNr by 1 for each other recorder. Note that each recorder doesn't need to be in its own folder - the files are named uniquely by band. Below is what a typical recording session will look like:
HDSDR can be used to replay recordings made with CWSL_File, which is useful in verifying that the recording was made correctly. To do this, open HDSDR, then click the green Play button. Select the file to be replayed, then verify that the replay contains the expected signals. During this, you can power off the QS1R to ensure that the data is coming from the recording, and not from the receiver.
After the contest ends, please follow the procedure under the "Uploading to Zenodo" section of the HamSCI Wideband Recording How-To Guide to upload the recordings. As Zenodo has a 50GB limit per data set, please upload the recording for each band as a separate data set where this makes sense. If it is not feasible to upload this much data following the contest, please contact HamSCI so we can make arrangements to get the data via another method.