k1jt's blog

This excellent web site is written and maintained by Bruce Walker, W1BW. We haven't heard from Bruce in quite some time; presumably he's very busy with work or other obligations.

I get frequent emails from people saying something like "I applied for a WSPRnet account and received a confirmation email telling me approval was pending. Then nothing... Can you help?"

I always tell people to contact W1BW. But I can guess what happens, because I can't raise Bruce by email, either.

As you may have heard, a number of us have been WSPRing from within program WSJT-X in recent weeks. Up to now you could do this only if you built the program yourself, from source code. Many people have been asking when a version of WSJT-X including WSPR might be made more widely available, so here's an update.

I've received several questions recently about plans for future development of WSPR, so perhaps this is a good time for a public update.

Today I have posted WSPR-X v0.8 r3058 at


Thanks to some excellent coding by Edson Pereira, PY2SDR, WSPR-X now compiles and runs properly on Linux as well as Windows. Some (mostly cosmetic) changes have been made to the GUI.

Important: reporting by WSPR-X to WSPRnet now includes information about stations being active on a band, and their Tx status, even when no spots have been uploaded.

Today I posted an installation file for WSPR-X v0.7 r2960:


Changes from r2948 include the following:

1. An intermittent problem with asserting PTT has been fixed.

2. Frequency reports when the Rx BFO is set to a value other than 1500 Hz have been fixed.

Some of you may be interested in trying WSPR-X, a new version of WSPR that includes the slow mode WSPR-15. WSPR-15 uses 15-minute T/R sequences, rather than the standard 2-minute sequences; at MF and LF it is 9 dB more sensitive than WSPR-2, decoding signals as weak as -37 dB in the standard 2500 Hz reference bandwidth. WSPR-15 is not recommended for use at HF: the tone spacing is only 0.183 Hz, less than the Doppler spreading typical of many HF paths. The main intended application for WSPR-15 is for very difficult paths at 137 kHz and the new 472 kHz band.

If you are on 160 meters, or perhaps on 472 or 137 kHz, you may be interested in a new mode called JT9, designed especially for making QSOs on these bands. JT9 uses the structured messages introduced in 2003 for the JT65 mode, now widely used for EME and for QRP operations at HF. JT9 can operate at signal levels as low as -27 dB (in a 2500 Hz reference bandwidth), with one-minute timed transmissions. It also offers slower transmissions of 2, 5, 10 and 30 minutes duration, and the slowest mode can decode signals as weak as -40 dB.

Several weeks ago I mentioned here that the SourceForge repository has been causing problems for WSJT, WSPR, and MAP65. I have now moved WSJT and WSPR back to the repository at Berlios, which has been very reliable.

For anonymous checkout of the WSPR code, use the command

svn co svn://svn.berlios.de/wsjt/branches/wspr

The final revision number at SourceForge was 2514. However, the Berlios revision numbers will pick up where they left off some months ago, at r2460. Despite the missing numbers in between, the code at Berlios is fully up-to-date.

Everyone here knows that WSPR is open source software. The full source code is licensed under the GNU General Public License (GPL), and is available to anyone, under the conditions of that license, at


A number of people have contributed to the development of WSPR. We communicate with each other by means of an email reflector hosted at the above URL.

A beta release of WSPR 2.21 r2286 has been posted at:



As in r2283, this version includes a "Coordinated hopping" mode in which the selected band is determined by the starting UTC minute of a Tx/Rx interval:

If you have been testing WSPR 2.2 with its frequency-hopping feature, please upgrade to revision 2283. Direct links for download are:



This version has several new features:

1. A checkbox labeled "Coordinated bands" is now available at the bottom of WSPR's Frequency Hopping screen. If this box is checked, the first-choice selected band will be determined by the UTC minute at which a 2-minute sequence starts:

UTC Band
Minute (m)
00 160
02 80
04 60
06 40
08 30
10 20
12 17
14 15
16 12
18 10

20 160
22 80
... etc

The sequence of ten possible bands repeats three times each hour. If the first choice band has not been checked as an active band, a random band choice is made among those that are active.

Decision whether to receive or transmit is purely random, using the "Tx fraction" for the selected band.

If all WSPR stations using frequency hopping use the "Coordinated bands" option, a sizable group of us will move together from band to band. During any particular sequence, something like 20% of the stations (depending on their Tx fraction settings) will transmit, and the rest will receive. The average number of spots will be much larger than that if band selection is random. If a band gets too crowded -- say, if you often see more than 6-8 stations in one sequence -- you should probably reduce your Tx fraction for that band.

You may have noticed that a few of us have been playing with a version of WSPR that does automatic "frequency hopping" from band to band. For this we owe a big vote of thanks to Sivan Toledo, 4X6IZ, who wrote most of the initial frequency-hoppping code.

If you would like to try WSPR with frequency hopping, a beta-release of WSPR 2.20 is now available at



Select "Frequency Hopping" on the Seup menu, and you'll get a screen allowing you to select any desired mix of bands and Tx fractions. Then check "Frequency Hop" in the main window, and WSPR will start its normal 2-minute sequences, switching bands randomly after each one.

Depending on your station and antenna setup, you might need to accomplish other switching besides re-tuning your radio. To make this possible in an automated way, whenever WSPR executes a successful band-change command to a CAT-controlled radio, it looks for a file named "user_hardware.bat", "user_hardware.exe", or "user_hardware" in the working directory. If one of these is found, WSPR tries to execute the command

user_hardware nnn

where nnn is the band-designation wavelength in meters.

You will need to write your own program, script, or batch file to do the necessary switching at your station. I wrote a very simple Python program for this purpose. One of my antennas is an "all band" dipole fed with open-wire line through an automatic antenna tuner. Others include a 160m vertical and a tri-band trap dipole. The antennas are selected automatically, by band; and when a transmission on a new band starts on the all-band dipole, the tuner adjusts itself during the first few seconds of the transmission.

Ham radio competitions are much more fun when you don't need to wait six months to see how you did! Results for last week's ARRL Frequency Measuring Test are already available at
http://www.b4h.net/fmt/fmtresults201011.php . Hearty thanks to those responsible for running this interesting and highly educational event!

This message is of interest if you will be participating in the ARRL Frequency Measuring Test on Wednesday evening, using the WSPR-based FMT programs.

Slightly amended versions of fmtave.exe and fcal.exe have been posted on the WSJT web site. Direct links to the new executables are:



In the past several days I've seen quite a few WSPR signals that don't decode because they are mis-timed. This happens when one's computer clock is off by more than a few seconds, and it can be prevented by using an internet time service.