Setup and Help Information


WSQ is a Weak Signal QSO mode for LF/MF. It uses Incremental Frequency Keying (IFK), making it moderately drift-proof and easy to tune. The symbol rate is very slow (about two seconds per tone), but each individual tone transmitted carries a surprising amount of information, resulting in a typing speed of better than 5WPM.

WSQ uses 33 tones, spaced 1.953125Hz apart, resulting in a signal bandwidth of 64.4Hz, including the keying sidebands (bandwidth assessed according to ITU-R SM.1138). The modulation is constant amplitude, phase coherent MFSK, using IFK coding with 32 frequency differences. This means that each symbol carries enough information for all lower case letters to be expressed in just one symbol, which greatly enhances the speed.


Synthesizer Installation

Suitable Synthesizers
The serial control option will work with any suitable synthesizer which accepts a single text string to set the frequency, with the command terminated by <CR> or <LF>. This includes the popular FEI FE-5650A and FE-5680A Rubidium synthesizers (the programmable versions only), the N3ZI DDS synthesizer, the Novatech 409B and the ZL1BPU LF Exciter. It has been extensively tested with the venerable FE-5650A.

Because the program does not know how to calculate the specific commands for each different synthesizer, it simply works with a list of commands given in the setup.txt file (which is supplied). The default values are for the FE-56xx synthesizer operating at 9600-N-8-1 on 473.07kHz.

To operate a different synthesizer, or on a different frequency, you need to replace 33 lines of commands with those for your synthesizer and frequency. The first value in the list is the command to turn the synthesizer off during reception (zero frequency). If you enter more than 33 frequencies, it will use the first 33 values. ZL1BPU has developed a spreadsheet which calculates the commands for the FEI FE-56xx synthesizers. See FEI calculator.xls, which is supplied with the archive.


Enabling the Synthesizer
Ensure that the setup.txt file has (in it's first few lines) the correct COM port, bit rate, parity, number of data bits and number of stop bits. The default is COM1, 9600, N, 8, 1.

Start the program, and from the menu, select PTT/synthesizer and click on 'Synthesizer ON'. Audio tones are still generated, but in addition commands are sent from the serial port.

Connect the synthesizer to the intended COM port, and turn the power on. Before you power up the transmitter (which is driven by the synthesizer), press the TX button on the WSQ program, then check that the synthesizer is transmitting on the correct frequency. Then press RX.

You will need to press TX and then RX each time you power-up the synthesizer, otherwise it might be operating anywhere.

Then power up the transmitter. You can use the serial port handshake lines (DTR or RTS) to turn the transmitter on and off.

Guided Tour

In keeping with all ZL2AFP designs, the program is uncomplicated to use, clearly laid out, and devoid of unnecessary features. The software has been thoroughly tested, mostly on the 600m band, over 500km and 2500km paths.

Screenshot of the ZL2AFP WSQ2 software software
(Click on image for full-size view)

Start the program, using the shortcut you made, so you can see each of the features described here. At the very top, under the banner, is a simple menu system. Here there are various controls and setup options.


Tools/Audio devices
Allows you to set the audio resources (source, destination, levels) used for recording (RX) and playback (TX). If you change the audio source here, it is best to close the program and restart afterwards, as the program may not notice the change in the operating system.

Tools/Symbol Marker
This feature 'tags' the received signal symbols with a yellow line as they are detected. This makes seeing the signal easier when it is weak. The default state is ON, and you can select the markers ON or OFF.

Allows the automatic AGC in the receiver to operate in a Fast or Slow manner. 'Fast' should be better if there is fast fading. 'Slow' is the default mode, as this best suits rejection of lightning pulses. The AGC affects the brightness of the waterfalkl display (keeps it constant), and also enhances the reception process.

Note: If you can, it is best to operate your receiver with AGC OFF or at least FAST, so that lightning pulses don't disable the receiver any longer than necessary. Don't worry - the software will reject the QRN.

Sets the COM port used for PTT commands using the RTS and DTR lines. This will be the same COM port as that used for synthesizer control (if used). The default value is that set in the setup.txt file, and can be temporarily changed here. Nothing is written to the file, so the default remains the same next time you run the program. To change the default, edit the setup.txt file.

Enables (Synthesizer ON) or disables (Synthesizer OFF) commands to any external serially-controlled synthesizer. The default is OFF. It should not matter whether these commands are enabled if you don't use a synthesizer, but clearly they must be ON if you do.


Brings up this Help file.

Displays information about the program, such as author, release date and version.

Text Panes

Receiver and Transmitter Panes
Directly below the menu is a large yellow area - this is the received text pane. You can also cut and paste text from here. Below it, the smaller blue-grey pane is the transmit text buffer. Again, you can cut and paste from here. While the transmitter is not running, you can also type ahead and correct what you type with normal Windows editing functions. The sliders on the right become active when there is more text in the receive or transmit buffer than will fit on the screen.

Other Information

Waterfall Display
Below the TX buffer is the waterfall display, which has frequency calibration below, and spans from 850 to over 1200Hz. It shows the received signals over time, as the waterfall moves down, with older signals toward the bottom. When the 'tagging' option is on, each recognised symbol is tagged here with a thin yellow line. Two red lines indicate the signal-focussed area of the decoding software - the received signals must be completely contained between these marks or copy will deteriorate.

You should VERY SLOWLY tune the receiver so the whole of any incoming signal is between the red lines. As the signal steps back and forth quite a bit due to the way signalling occurs, you will need to watch it for a while to ensure it is all contained within the red lines. The lowest tone of any transmission is the reference frequency (operating frequency you quote to others). This will be Dial Frequency + 1000Hz on an SSB transceiver in USB mode. Transmissions always start with this tone. All other tones are higher than this, by up to 66Hz.

Signal Meter
To the left of the waterfall display is the S/N (signal to noise) meter, which was calibrated against a simulator to indicate real signal to noise ratios. There is a thin red line at -25dB to indicate the level below which copy will start to deteriorate. The meter has averaging to remove the effect of impulse noise, and even on weak signals you will see the meter pulse up and down as the tones change. The pulsing is because the energy of the signal is spread between receiving filter bins when the tones change. The peak value is the true signal SNR.

User Controls
Below the waterfall are the only four controls - at the left the waterfall brightness control, and at the right the PAUSE button, the Transmit button (TX) and the Receive button (RX). Each of these is dark when not active, and bright when active. The program starts in Receive. PAUSE is used while editing the screen, as otherwise the cursor will jump around when you least expect it. It also stops reception and transmission until either RX or TX is pushed again.

Transmitting and Receiving

When you are ready to transmit, simply press the TX button, then place the cursor in the grey TX pane and start typing. You can type ahead (i.e. before you start transmitting), but if you do it's a good idea to add a space or <Enter> as the first character. This is to ensure that the first text character will be received correctly. If you start the transmitter with an empty buffer it will always start with an idle 1kHz tone. This is simply an idiosyncracy of IFK modes.

As you transmit, the characters sent appear in the RX pane once they have been sent. This will let you see the progress of your transmission.

If you forget to place the cursor in the TX pane, your typed text might not go anywhere useful!

To receive, just press the RX button. If you press it while text remains in the TX pane, this will not be sent until you press TX again, and at least one character may be lost. Normally you should end the transmission text with an <Enter> character, and wait until all the text appears in the receive pane, including the new line caused by the <Enter>.

Keep a close watch on the waterfall display during reception, as not all transmitters are as stable as yours! You can very slowly tune the receiver while receiving, to correct transmitter drift, but remember the transmitted tones tend to wander all over the place naturally, so make the corrections very small and very slowly.

Watch the signal SNR on the meter (bottom left). You will probably find that the signal fades up and down by 10dB or more, and print may stop or become garbled during fades. It might take several tries to make a viable QSO. Keep overs short, and maximize the use of lower case and CW-speak abbreviations.

If you need to edit text during transmission, the most reliable way is to delete typed characters after and including the error, then retype. The problem is that this simple program does not remember cursor locations, and the transmit and receive panes share the same cursor control. Thus it happens that when you move the cursor manually (click in the text with the mouse), you may find the software promptly moves the cursor back to the end of the typed text.

The most reliable way to edit text, other than as described above, is to do so while receiving, and press the PAUSE button in order to do so. Then press TX or RX again as appropriate.

You can copy and paste from the RX pane to the TX pane, so if you want to call CQ again, simply copy the text from the upper pane and repaste it in the lower pane.

Software Compatibility

The Windows™ software is written in ANSI C, and is compatible with Win2000, WinXP and Win7. It may work with Vista on some computers. The program requires at least a 1GHz processor, SVGA display and a 16-bit sound card. One serial port (or USB equivalent) is required for PTT control and/or external synthesizer control. Memory requirements are minimal, and the program size is little more than 100kB. The program should run quite well on a low-spec 'netbook' type computer, and the program screen size (which is fixed) will also fit on the netbook screen.

The program consists of just one file, and no changes are made to the computer's registry or anywhere else. To remove the program, simply delete the files made during installation. A setup file is required when using the external synthesizer option.

Developers interested in writing software for this mode should contact ZL2AFP (zl2afp "at" for source code and other details.

Copyright © Murray Greenman and Con Wassilieff 2013-2014. All rights reserved.