1. Introduction

WSJT is a computer program for amateur VHF/UHF communication using state-of-the-art digital techniques. It can help you to make contacts using fraction-of-a-second signals reflected from meteor trails, as well as steady signals more than 10 dB below the threshold of audibility. Distinct protocols or “modes” are provided for different types of propagation:


For meteor scatter. Uses minimum-shift keying (MSK) at 1378.125 baud, with a character transmission rate 197 cps.


For meteor scatter. Uses 4-tone frequency-shift keying (4-FSK) at 441 baud, character transmission rate 147 cps.


For meteor scatter. Uses 4-tone frequency-shift keying (4-FSK) at 315 baud, character transmission rate 105 cps. 10m legal.


Optimized for meteor and ionospheric scatter on 6 meters. Uses 42-FSK at 21.53 or 43.07 baud, character transmission rate 16.15 or 32.3 cps.


Optimized for meteor and ionospheric scatter on 6 meters. Uses 44-FSK at 21.53 baud, character transmission rate 14.4 cps.


For Earth-Moon-Earth (EME, “moonbounce”) and weak troposcatter. Uses structured messages, a Reed-Solomon (63,12) error-control code (ECC), and 65-FSK modulation at 2.69 baud. Effective throughput is about 0.25 cps.


Designed for EME on microwave bands. Uses structured messages, a K=32, r=1/2 convolutional code, and 4-FSK modulation at 4.375 baud. Effective throughput is about 0.25 cps.


For EME using timed, computer-generated transmissions.


For testing echoes of your own signal from the Moon.

2. System Requirements


  • SSB transceiver and antenna for one or more VHF/UHF/SHF bands

  • Computer running the Microsoft Windows, Linux, FreeBSD, or OS X operating system

  • 1 GHz or faster CPU and 128 MB of available RAM

  • Monitor with at least 800 x 600 resolution (more is better)

  • Computer-to-radio interface using a serial port for T/R switching, or VOX control

  • Audio input and output devices supported by the operating system

  • Audio or equivalent USB connections between transceiver and computer

  • A means for synchronizing the computer clock to UTC within ±1 s

3. Installation

3.1. Windows

  • Download WSJT from the WSJT Home Page. Click on WSJT at the left margin and then on the desired download link.

  • Execute the downloaded file and follow its installation instructions.

  • Install WSJT into its own directory rather than the conventional location C:\Program Files\WSJT10. The suggested default directory is C:\WSJT10.

  • All files relating to WSJT will be stored in the chosen installation directory and its subdirectories. You can uninstall WSJT by removing the installation directory and its contents.

  • The built-in Windows facility for time synchronization is usually not adequate. We recommend Meinberg NTP: see Network Time Protocol Setup for downloading and installation instructions.

Caution If you are using a sound card that is also the Windows default audio device, be sure to turn off all Windows sounds so they are not transmitted over the air.

3.2. Linux

Still to come …

3.3. OS X

This guide refers to installation of WSJT on Mac OSX 10.7 and 10.9. This scheme should also work on OSX 10.8 but has not been tested. There are problems with Tcl/Tk libraries which prevent the code from running on OSX 10.10. You will need to be familiar with Unix commands in a Terminal window.

  • Install the latest version of Xcode, available free from developer.apple.com. Launch Xcode and visit Preferences → Downloads and select "command line tools" and install them.

  • You will need a Fortran compiler. Visit https://gcc.gnu.org/wiki/GFortranBinaries#MacOS and select an installer for your OSX version.

  • The default Python installed on a Mac is version 2.7. A later version is required. Visit https://www.python.org/downloads/release/python-342/ and select Mac OS X 64-bit/32-bit installer. Download the package and install.

  • For the next downloads I recommend that you create an installation directory and use this for the downloads that follow.

  • You need the numpy suite. Visit http://sourceforge.net/projects/numpy/files/NumPy/1.9.1/ and download numpy-1.9.1.tar.gz. Expand this file and type:

    python setup.py build --fcompiler=gnu95

    sudo python setup.py install

  • Install portaudio. Visit http://www.portaudio.com/download.html and download pa_snapshot.tgz. Expand this file and type:



    sudo make install

  • Install libsamplerate. Visit http://www.mega-nerd.com/SRC/download.html and download libsamplerate-0.1.8.tar.gz. Expand this file and type:



    sudo make install

  • Install Fast Fourier code. Visit http://www.fftw.org/download.html and download fftw_3.3.4.tar.gz and expand the file. Type:

    configure --enable-float


    sudo make install

  • Install PIL for imaging. Type:

    sudo pip install Pillow

  • Now it is time to download the source code. Type the following which will download the complete source tree and install in a new directory wsjt.

    svn co svn://svn.code.sf.net/p/wsjt/wsjt/trunk wsjt

  • Finally, change your working directory to wsjt and type:

    configure --with-portaudio-include-dir=/usr/local/include --with-portaudio-lib-dir=/usr/local/lib


    python wsjt.py

and if all has proceeded without error, WSJT should launch.

You will need a Mac driver to control the serial link between your Mac and the transmitter.

3.4. Source Code

Source code is available from the public repository at SourceForge. To compile the program you will need to install the following packages:

  • Subversion

  • Python 3.x, and the following Python packages

    • python-numpy

    • python-imaging-tk

    • python-pmw

  • gcc

  • gfortran or g95

  • fftw3

  • PortAudio

  • libsamplerate

  • MinGW (for Windows only)

With Subversion installed, the full source code for WSJT can be downloaded with the command:

svn co svn://svn.berlios.de/wsjt/trunk

For some basic instructions on building WSJT from source code, see the section Compiling WSJT-X near the end of this Guide.

4. Setup and Configuration

4.1. Options

  • Start WSJT and select Options from the Setup menu. Enter the following information:

    • My Call: <Your Call Sign>

    • Grid Locator: <Your 6-digit Maidenhead locator>

    • ID Interval: set the time interval for sending your CW identification. Zero (0) means never.

    • PTT port: if you will use RTS or DTR for T/R control, choose a serial port. On Windows enter the number of the port (for example 1 if you will use COM1). Enter 0 if you will use VOX control (not recommended if you will be running high power). On Linux or FreeBSD enter the actual device name, for example /dev/ttyS0.

    • PTT Line: choose DTR or RTS.

    • Distance unit: choose miles or kilometers.

  • The console window (with black background) presents a list of the audio devices available on your system. On the Options screen, set Audio In to the number of the desired input device and Audio Out to the number of the output device. The chosen devices must offer at least two input or output channels. For example, Audio devices number 1 (input) and 4 (output) could be selected from the following screen image. Your selections will take effect the next time you start the program.

  • Take note of two numbers in the first panel of the status bar at lower left of the main screen. After WSJT has been running for a minute or so they should stabilize at values close to 1.0000. If both numbers are between 0.9995 and 1.0005, the effective input and output sampling rates of your soundcard are close to the nominal 11025 Hz. If either number is outside this range, enter it as Rate in (first number) or Rate out (second number) on the Setup | Options screen. WSJT will then make necessary adjustments for the incorrect sampling rate or rates.


4.2. Fonts

You can control the fonts and colors used in WSJT. A text file named wsjtrc.win (on Windows) or wsjtrc (on Linux and FreeBSD) is supplied with the following contents:

*font:                         Arial 8
*Label*font:                   Arial 8
*Text*font:                    "Courier New" 9
*Canvas*font:                  "Lucida Console" 16
*background:                   gray85
*Text*background:              white
*Entry*background:             white
*foreground:                   black
*Listbox*foreground:           RoyalBlue

You can edit this file with a text editor (such as Windows Notepad). For example, to make the on-screen fonts slightly larger you can increase the numbers on the first three lines to 9, 9, and 10. It might be wise to save a backup of the original file under a different name, in case you need to restore the original contents.

5. Tutorial

5.1. Basics

Decoding and operating procedures are different for the various WSJT modes, so it helps to practice with each mode before using it on the air. As a useful starting point, take at least the following steps:

  • Select FSK441 from the Mode menu on the main window.

  • Select File | Open,navigate to the RxWav\Samples folder in your WSJT home directory, and open the sample file W8WN_010809_110400.wav. Your main screen should look something like the image below. The larger graphical area displays a spectrogram in which time increases from left to right and frequency from bottom to top. The green curve below the spectrogram shows total power over the full received bandwidth. In FSK441 mode, the smaller graphical area at right displays average spectra of the full record (magenta) and of the strongest detected “ping” (red).

  • Click with the right mouse button around the location of the ping at time t = 19 s on the graphical display, and observe the decoded text that appears. The time corresponding to the location of the mouse pointer is displayed in the green label at lower left of the main-window plot area.

  • Click on the static crashes around t = 1 s or elsewhere on the green line. You will probably see garbage text, or nothing.

  • Use Windows Media Player (or the equivalent program for your operating system) to play this audio file and listen to the signal. The file starts with a burst of summertime QRN and then has nothing but background noise until a moderately strong FSK441 ping appears about 18 seconds later.

To follow the full tutorial — and it’s strongly recommended that you should do this — download the collection of sample wave files available in zip (Windows) or tar (Linux) format. These files contain recordings of real signals in typical on-the-air situations, for each of the WSJT modes.

  • Extract the files to a suitable location such as ..\RxWav\Samples under your WSJT installation directory.

  • Exit WSJT and delete your WSJT.INI file (or temporarily rename it to something else). This will ensure that you start the tutorial with everything in the default configuration.

  • Restart WSJT and position the main window conveniently on your screen.

5.2. Fast Modes

It’s convenient to think of the WSJT protocols in two groups — fast and slow. The fast modes (JTMS, FSK441, ISCAT, and JT6M) send text messages character-by-character, without forward error correction, at rates ranging from nearly 200 characters per second (JTMS) down to about 14 cps (JT6M). JTMS and FSK441 attempt to make the best possible use of the common, very short pings of meteor scatter, with durations around 0.1 s and even less. ISCAT and JT6M perform well with somewhat longer signal enhancements, including those characteristic of meteor/ionospheric scatter at 50 and 70 MHz, and also aircraft scatter at 10 GHz. The fast modes generally use T/R sequences of length 30 s, with 15 s as an option.

  • Select JTMS from the Mode menu.

  • Set ping threshold S = 1 dB and frequency tolerance Tol = 25 Hz. These controls can be adjusted upward or downward by left- or right-clicking with the mouse.

  • Select menu item File | Open, navigate to subdirectory …\RxWav\Samples\JTMS under your installation directory, and open one of the files there. JTMS generally does a good job of finding and decoding pings by itself, and the transmitted message is correctly decoded for three different pings in each of these two files, for example:

    111730  7.7  140  3 26  15   K1JT N5SIX          *
  • Each line of decoded text contains the starting time of the transmission; the time T of each detected ping, relative to the start of the file; the ping Width in ms; signal strength (S+N)/N in dB; signal report Rpt; and measured frequency offset DF in Hz.

Tip If the ping duration is sufficient for message repetitions to be recognizable, the JTMS decoder attempts to average over them. If it considers the attempt successful, the average message is displayed with an asterisk * appended at the end of line.
  • Note that the average DF for these signals is about +22 Hz. Checking Freeze will force the decoder to cover only a specified range, Freeze DF ± Tol. The value of Freeze DF is displayed in the Status Bar; it can be changed in ±5 Hz increments with function keys F11 and F12. Once you have identified the signal of a QSO partner, it is usually best to set Freeze DF close to the signal’s measured DF and to check the Freeze box.

  • Experiment with different settings of Freeze, Freeze DF, and Tol. Click Decode after each change to observe the results. The Tol setting is sometimes interpreted generously.

  • Try clicking on the main-window spectrogram to decode signal present at a particular time. Such action will sometimes decode a signal that failed to decode automatically.

  • Switch to FSK441 mode and open the file K5CZD_050723_134100.wav in the …\Samples\FSK441 subdirectory. The decoder produces the following text in the main text box:

    O1JT 26 K5CZD 2626 K1JT 27 K5CZ #6
  • K5CZD is sending K1JT the signal report 26. In FSK441 mode it is not uncommon to see some incorrect characters, especially near the ends of decoded sequences where the signal is weak.

  • Hit the F6 key (or select File | Open next in directory) to open and decode successive files in the FSK441 directory. These recordings contain the following easily decoded messages:

    6 JT R26 JT R26 JT R25 JT R
    26 K1JT 26 KM5ES
  • Try left- and right-clicking on pings in any of these files to invoke the decoder at a particular location in the file.

  • Click Erase at any time to clear the display areas.

  • Click Decode for repeat analysis of a whole file.

  • Open the first KC0HLN file again. Double-click on the decoded callsign and observe what happens in the Tx message boxes. The program is now ready for K1JT to answer the CQ from KC0HLN.

  • Switch to mode ISCAT-B and open any file in the …\Samples\ISCAT-B subdirectory. These files contain recordings of ionospheric scatter signals on 6 meters. The signals are inaudible most of the time, but they decode readily nevertheless.

  • You can instruct the ISCAT decoder to concentrate on a particular portion of a received sequence. Left-click to decode in a 4-second region centered on the mouse pointer. Right-click to decode from the beginning to the pointer. Swipe with the left mouse button depressed to decode over any desired range.

  • Open the file K0AWU_100714_120200.wav. The spectrogram shows little sign of any signal except for barely visible enhancements around t = 2.1 and t = 5.5 s. Nothing is visible (or audible) after about t = 8 s. Nevertheless, try a Swipe to decode between about 9 and 25 s. The message THUNDER should be decoded.

  • Switch now to mode ISCAT-A and examine files in the …\Samples\ISCAT-A subdirectory. VK7MO and VK3HZ are completing a 10 GHz QSO over a 600 km path, using low power, small dishes, and airplane-scatter propagation. The signals are barely audible, if at all — but ISCAT decodes them flawlessly.

Tip Usable ISCAT signals are often well below the noise, so signal strengths are quoted as S/N rather than (S+N)/N.
  • Switch to mode JT6M and open file AA9MY_030323_142300.wav in the JT6M subdirectory. You should see decoded text

    9MY 73 DE AA9MF2
  • Try left-clicking near t = 15.0 s. You should be able to obtain the average message shown below. (Averaged messages are indicated by an asterisk * near the end of line, followed by the message length.)

    73 DE AA9MY         *
  • Hit F6 to read and decode subsequent files in the JT6M directory. You will see AC5TM working K1SIX, AF4O working K1JT, and WA5UFH working K0AWU. In several files the signals are inaudible or barely audible, yet still decodable. The second AF4O file produces no decoded text by default, but try right-clicking at t = 16.8 s.

  • Find several other examples of decodable text in flat regions on the green curve. For example, try left-clicking at t = 7.4 s or t = 9.8 s in the first AF4O file, or at t = 11.6 s in the second AF4O file.

5.3. Slow Modes

The slow modes in WSJT are designed for signals that are very weak — perhaps averaging 10 dB or more below the audible threshold — but more or less steady. These modes use strong error-control coding, so the software generally decodes a transmission exactly as it was sent, or not at all. T/R sequence lengths are usually one minute.

  • Switch to mode JT65A.

  • Select View | SpecJT if you have previously deleted this window. If the SpecJT and WSJT windows overlap on your screen, reduce the vertical size of the SpecJT window so that only its top half shows.

  • Select Speed 3 on the SpecJT window.

  • Check the following items on the SpecJT Options menu:

    • Mark T/R boundaries

    • Flatten spectra

    • Mark JT65 tones only if Freeze is checked

    • JT65 DF axis.

  • Select File | Open on the main window, navigate to the …\Samples\JT65A directory, and open the file F9HS_031120_074800.wav. The SpecJT screen will show a messy spectrum cluttered with birdies at 100 Hz intervals and other interfering signals. However, the red curve in the main-screen graphical area shows a strong JT65 sync tone amongst the clutter, and the decoder produces

  074800 2 -20 2.6 361  3 *   K1JT F9HS JN23      1  0
  • Double-click on F9HS in the text window. This callsign will be copied into the To Radio box; the database will be searched and the grid locator retrieved, if available. Tx messages will be generated for a QSO with F9HS, and the Tx message pointer will be set to message #2 so that the signal report OOO will be sent. During actual operation, all of this can take place in the few seconds near the end of a reception interval, before your next transmission starts.

  • Hit F6 to open the next file. A smaller red spike appears, indicating successful synchronization, and you will see that G3FPQ is calling W7GJ:

    131900 1 -25 1.5 43 3 *    W7GJ G3FPQ IO91     1  0
Tip Signals become visible on the waterfall around S/N = -26 dB, and audible to someone with good hearing around -15 dB.
  • Select JT65B from the Mode menu and click Clr Avg.

  • Go to File | Open, navigate to inside the JT65B directory, and open the DL7UAE file. The waterfall shows a strong birdie at DF = 783 Hz and several weaker signals. The ones at DF = 223 and DF = 244 Hz look most interesting because they seem to show the speckled pattern typical of a JT65 signal.

  • WSJT chooses the signal at DF = 223 Hz as the most promising, and decodes it to reveal DL7UAE answering a CQ from K1JT.

  • The red curve shows a second spike that looks almost as good as the DL7UAE signal. Experiment to see if you can determine who else might be calling. (The answer and how to find it are given below, at the end of this section.)

  • When you are ready to continue, clear Freeze and AFC, click Erase and Clr Avg) and hit F6 to open the next file. The green curve shows some nasty SSB QRM starting at t = 5.3 s into the file. (Again, you might want to listen to this file.) Some rhythmic broadband noise is also present, showing clearly on the green line. Fortunately, the waterfall looks nearly clean in the important JT65 spectral region, and WSJT has no problem decoding the signal at DF = -46 Hz. EA5SE is sending K1JT the default OOO signal report.

    000400 2 -25 2.9 -46 3 # K1JT EA5SE IM98 OOO    1  0
  • Try double-clicking on the sync tone in the waterfall, or on the red spike in the main-screen graphics area. Either action will automatically check Freeze, set Freeze DF to the selected frequency and Tol to 50 Hz, and click Decode. The red curve will show that the sync-tone search range has been reduced to ±50 Hz around the selected frequency.

  • Take note of the colored tick marks on the frequency scale at the top of the SpecJT window. The leftmost vertical green mark shows the selected Freeze DF, and the horizontal band below it shows the range that will be searched for a sync tone. The other green tick marks the upper limit of the JT65 data tones, and red ticks mark the frequencies used for JT65 shorthand messages.

  • Hit F6 to open the next file. You will see EA5SE sending K1JT the shorthand message RRR. Magenta and orange curves in the main-screen graphics area show the measured average spectra for two distinct phases of the shorthand message cycle. In the waterfall display you should see the alternating tones for RRR accurately aligned with the sync-tone marker and the second red marker. Hit the F6 key once more to decode the final transmission of this QSO, with ES5SE sending a shorthand 73 to K1JT.

  • Uncheck Freeze and hit F6 again. The waterfall shows a likely sync tone with deep libration fading at DF = -22 Hz, and the decoder shows EI4DQ sending K1JT the OOO signal report. Double-click on the sync tone in either window to lock him in, and hit F6 to open the next file. EI4DQ has received the OOO report from K1JT and is now sending RO.

  • Clear the Freeze box, check JT4 and JT65 | Normal Deep Search on the Decode menu, and hit F6 to open the next file. Two birdies are in the passband, but WSJT ignores them and finds a valid sync tone at DF = 221 Hz, decoding IK1UWL sending the OOO report to K1JT. Check AFC and hit the Decode button; you will notice that the first number near the end of the decoded line changes from 0 to 1, indicating that with AFC invoked, the Reed-Solomon decoder succeeds. (Otherwise, the Deep Search decoder is required to decode this file.)

  • Double-click on the sync tone (spike on the red curve) to lock in IK1UWL, and wait for the next transmission (i.e., hit F6 to read the next file). IK1UWL has copied the report RO from K1JT, so he is sending RRR. Note that this shorthand message is barely visible on the waterfall, but it is still decoded correctly. K1JT would now send 73 to signify that the QSO is complete.

  • Clear the Freeze and AFC boxes and hit F6 to find RU1AA calling CQ. RU1AA has a big EME signal; his tones in this file are easily audible. In the next several files K1JT works him quickly, despite two birdies that are drifting down through the JT65 signal passband. Notice that as a reminder, decoded shorthand messages are always flagged with a “?” mark unless you have turned Freeze on and set Tol to 100 Hz or less — things that you should always do, for best decoding results. RU1AA ends the QSO by sending the message “TNX JOE -14 73” to tell K1JT that his signal peaked at -14 dB. Since this message does not start with two callsigns (or CQ or QRZ plus one callsign) it is treated as a plain text message. Such messages can convey no more than 13 characters, so in this case the final “73” was truncated.

  • Clear the Freeze box and hit F6 to show another big Russian signal: RW1AY/1 is answering a CQ from K1JT. Double-click on the sync tone (on either window) to lock it in, and then hit F6 to see the messages RO, 73, and -19TNXQSO 73 in the next three transmissions.

  • Were you able to decode the second signal in the DL7UAE file? If so, congratulations! If not, clear Freeze and go back to File | Open and select the first file again. Left-click on the smaller red spike, check Freeze on, and reduce Tol to 10 Hz. Then hit Decode, and you should see SP6GWB calling K1JT with an excellent signal. The DL7UAE and SP6GWB signals are separated by only 22 Hz, so most of their tones overlap in the 355 Hz passband of JT65B. Nevertheless, the decoder copies perfectly with the help of its robust error-correcting code.

  • While you have the DL7UAE file in memory, Freeze on, Tol = 10 Hz, and Freeze DF set on the smaller red spike, hit F2 to open the Setup | Options screen and enter your own call (or some other call) in place of K1JT in the My Call box. Then dismiss the Options screen and try to decode the SP6GWB signal again. You will surely fail, because for this message successful copy was obtained as a result from the Deep Search decoder.

  • Switch to mode JT4F, go to subdirectory …Samples\JT4F, and open files VK7MO_130217_105000.wav and VK7MO_130217_105200.wav sequentially. These are recordings of the 10 GHz EME signal of VK7MO (77 cm dish, 40 W) made at G3WDG (3 m dish). Nothing is visible on the SpecJT waterfall, and neither recording decodes by itself. But WSJT recognizes and saves the potentially usable symbol spectra from each file, and produces a perfect decode from their average.

  • Confirm for yourself that with My Call set to G3WDG and Normal Deep Search selected on the Decode | JT4 and JT65 menu, each of these files can be decoded properly on its own.


6. Making QSOs

6.1. Transceiver Setup

Receiver Noise Level
  • Turn on your radio, select USB (or USB Data) mode, and tune to a clear frequency so that only background noise is sent to the sound card.

  • If necessary, click the Monitor button on the WSJT main window to start normal receive operation. The button should be highlighted in GREEN.

  • Open the operating system’s audio mixer and adjust its slider and/or your receiver gain control(s) to bring the signal level close to what WSJT considers “0 dB,” as indicated on the bar graph at lower right of the SpecJT screen. The signal level is also displayed as Rx noise on the status bar at bottom of the main window.

Transmitter Audio Level
  • Click Generate messages for test tones on the Setup menu.

  • Click the Tx5 button to be sure that T/R switching works and that a continuous 1000 Hz audio tone is sent from the computer to your radio.

  • Listen to the generated audio tone using your radio’s Monitor facility. The transmitted tone should be smooth and continuous, with no clicks or glitches.

  • Adjust the appropriate slider on the operating system’s audio mixer to get the proper audio signal level for your transmitter.

  • Click Tx Stop to end your test transmission.

WSJT should now be set up and ready to operate. If you are a new WSJT user, we strongly recommend that you work through the operating tutorial in the next section.

Caution Full amplitude transmissions lasting 30 seconds or longer put more stress on your final amplifier than SSB or CW operation. If this would cause the amplifier to overheat, reduce power or provide better cooling.
Minimal QSO Information

By longstanding tradition, a minimal valid QSO requires the exchange of callsigns, a signal report or some other information, and acknowledgments. WSJT is designed to facilitate making such minimal QSOs under difficult conditions, and the process can be made easier if you follow standard operating practices. The recommended procedure is as follows:

  1. If you have received less than both calls from the other station, send both calls.

  2. If you have received both calls, send both calls and a signal report.

  3. If you have received both calls and a report, send R plus your signal report.

  4. If you have received R plus signal report, send RRR.

  5. If you have received RRR — that is, a definite acknowledgment of all of your information — the QSO is complete. However, the other station may not know this, so it is conventional to send 73 (or some other conversational information) to signify that you are done.

Slightly different procedures may be used in different parts of the world, or in the different operating modes. Hitting the F5 key will cause WSJT to display a screen that reminds you of the recommended procedures.

QSO Procedures

To prepare for making a QSO, enter the other station’s callsign in the To radio box and click Lookup and Gen Msgs to generate a sequence of the commonly used messages. If Lookup does not find the callsign in the database file CALL3.TXT, you may enter the grid locator manually. Decide whether you or the other station will transmit first, and check or uncheck Tx First appropriately. Select the message for your next transmission by clicking the small circle to the right of the message text. Toggle Auto ON to start an automatic sequence of transmission and reception intervals. You can switch messages while a transmission is in progress by clicking on one of the buttons Tx1 to Tx6, to the right of the circles.

Spectral information is displayed in real time on the SpecJT screen. Spectrograms normally scroll horizontally in the fast modes (FSK441, JTMS, ISCAT, and JT6M) and vertically in the slow modes (JT65 and JT4). You can choose different scrolling speeds at the top right of the SpecJT window.

At the end of each receiving period, WSJT enters a decode cycle and displays various properties of a received signal on the main screen. An example for JT6M mode is shown below. A green line in the main graphical area illustrates signal strength vs. time, and other lines or images display spectral information and synchronization results, depending on the mode.


Decoded text appears in the large box below the graphical area and is also written to a cumulative output file, ALL.TXT. The program’s best estimate of DF, a detected signal’s frequency offset, is included on each text line. The accuracy of these estimates depends on the mode: approximately ±7 Hz for JTMS signals, ±25 Hz for FSK441, ±20 Hz for ISCAT and JT6M, and ±3 Hz for JT65. Within these tolerances (and subject to the stability of oscillators and the propagation path) you should see consistent numbers in the DF column during any QSO that produces usable signals.

Double-clicking on a callsign in either one of the decoded text windows will cause that callsign to be copied into the To radio box. The corresponding Grid locator will be looked up in the database and the callsign inserted in Tx message boxes #1 and #2. If the decoded text line includes CQ before the selected callsign, message #1 will be selected for your next transmission. Otherwise, #2 will be selected. If Double-click on callsign sets TxFirst was checked on the Setup menu, the status of Tx First is set according to the time-stamp on the decoded message.

6.2. Fast Modes

The JTMS, FSK441, ISCAT, and JT6M operating modes use 30-second periods (optionally, 15-second periods) for transmission and reception. When a reception interval is completed the program looks for signal enhancements produced by short-lived reflections from meteor trails, or signal peaks from other types of scatter propagation. Usable “pings” are audible when they occur, and you will see them as spikes on the green line and brighter colors in the scrolling spectrogram. One or more lines of decoded text may result from each ping. By clicking in the graphical area you can force a decoding attempt at a particular spot in a record. You can also make the program decode in real time, just after hearing a signal enhancement, by clicking on the appropriate spot in the SpecJT display.

WSJT attempts to compensate for relative mistuning between transmitting and receiving stations. By default the frequency search range is ±400 Hz. You can reduce the tolerance range by setting the value of Tol to a smaller value. Adjustments to the decoding parameters can be made at any time by right- or left-clicking on the parameter labels. The control labeled S or Sync sets the minimum level for acceptable signals.

In FSK441 mode, if DF lies outside the range ±100 Hz it will help to retune your receiver to compensate. Do this with your transceiver’s RIT control, or by using split Rx/Tx VFOs. In the JTMS, ISCAT, and JT6M modes you can accomplish the same effect by checking Freeze and using the keyboard right/left arrows to move Freeze DF (as displayed in the bottom-of-screen status bar) to the desired value. In general you should not change your transmitting frequency during a QSO, since your partner will be trying to tune you in at the same time.

In addition to the green line for overall signal strength, JT6M produces a yellow line showing the detected strength of a JT6M synchronizing tone (see illustration above). JT6M attempts to decode both individual enhancements and an average message based on the entire transmission (or selected portions thereof). An average message is flagged with an asterisk at the right end of the decoded text line. Clicking with the left mouse button decodes a 4 s block of data near the mouse pointer, while the right button decodes a 10 s segment. As in FSK441, with marginal signals you should experiment as necessary for best decoding. ISCAT and JT6M can work with signals many dB weaker than those required for JTMS and FSK441. You will sometimes find that clicking on a smooth green line, even where nothing was heard and nothing can be seen, causes callsigns or other information to pop up out of the noise.

Standard messages in the fast modes are generated with the aid of templates defined on the Setup | Options screen. Default templates are provided conforming to standard operating practices in North America and Europe, and you can edit the templates to suit your own requirements. Your edits will be saved on program termination and restored when you restart WSJT. Normal fast-mode messages can contain any arbitrary text up to 28 characters. The supported character set includes 0-9, A-Z, plus . , / # ? $ and <space>.

JTMS and FSK441 provide a special shorthand format to transmit four simple messages in a highly efficient way. The supported shorthands are R26, R27, RRR, and 73; FSK441 and JTMS send pure tones at 882, 1323, 1764, or 2205 Hz to convey these messages. If activity levels are high enough that there could be some doubt about who has transmitted a shorthand message, it is better to use normal messages tagged with callsigns or portions thereof. Check Rx ST and Tx ST enable single-tone messages.

A typical minimal QSO in one of the fast modes might look something like the sequence of transmissions below. You should step ahead to the next message in your sequence only when you have received your QSO partner’s information from his sequence.

  1.  CQ K1ABC
  2.                     K1ABC W9XYZ
  3.  W9XYZ K1ABC 27
  4.                     K1ABC W9XYZ R26
  6.                     K1ABC W9XYZ 73

In North America, shorthand messages R26, RRR and 73 are often substituted for messages 4, 5, and 6, so the QSO would proceed like this:

  1.  CQ K1ABC
  2.                     K1ABC W9XYZ
  3.  W9XYZ K1ABC 27
  4.                     R26
  5.  RRR
  6.                     73

6.3. Slow Modes

JT65 and JT4, the slow modes in WSJT-X, aim to facilitate minimal QSOs by using short structured messages. The process works best if you use these formats and follow standard operating practices. The recommended basic QSO goes something like this:

  1.  CQ K1ABC FN42
  2.                    K1ABC G0XYZ IO91
  3.  G0XYZ K1ABC -19
  4.                    K1ABC G0XYZ R-22
  6.                    K1ABC G0XYZ 73

Standard messages consist of two callsigns (or CQ, QRZ, or DE and one callsign) followed by the transmitting station’s grid locator, a signal report, R plus a signal report, or the final acknowledgements RRR or 73. JT65 and JT4 compress and encode these standard messages in a highly efficient way, and strong error-control coding makes them very reliable. In uncompressed form they may contain as many as 18 characters.

Signal reports are specified as signal-to-noise ratio (S/N) in dB, using a standard reference noise bandwidth of 2500 Hz. Thus, in example message #3 above, K1ABC is telling G0XYZ that his signal is 19 dB below the noise power in bandwidth 2500 Hz. In message #4, G0XYZ acknowledges receipt and responds with a -22 dB signal report. JT65 reports are constrained to lie in the range -30 to -1 dB, while JT9 supports the extended range -50 to +49 dB.

Shorthand messages are transmitted in JT65 as a sequence of alternating tones, repeating approximately every 3 seconds. Different tone spacings correspond to the shorthand messages RO, RRR, and 73; these messages can be easily recognized on the waterfall and also by ear. EME QSOs often use the shorthand messages, and in that case a typical QSO proceeds like this:

  1.  CQ K1ABC FN42
  2.                        K1ABC G0XYZ IO91
  3.  G0XYZ K1ABC FN42 OOO
  4.                        RO
  5.  RRR
  6.                        73

Free text messages are often used to convey some friendly chit-chat at the end of a QSO. Arbitrary messages such as “TNX ROBERT 73” or “5W VERT 73 GL” are supported, up to a maximum of 13 characters (including spaces). It should be obvious that the JT9 and JT65 protocols are not well suited for extensive conversations or rag-chewing.

Compound callsigns such as xxx/K1ABC or K1ABC/x are handled in one of two possible ways. A list of about 350 of the most common prefixes and suffixes can be displayed from the Help menu:


A single compound callsign involving one item from this list can be used instead of a third message word in a structured message. Thus, the following examples are all acceptable Type 1 messages involving compound callsigns:

  CQ K1ABC/4

The following messages are not valid, because a third word is not permitted in a Type 1 compound-callsign message:

  ZA/K1ABC G0XYZ -22        #These messages will be sent
  G0XYZ K1ABC/4 73          #without the third "word"

A QSO involving a station using a Type 1 compound callsign might look like this:

  1.  CQ ZA/K1ABC
  2.                      ZA/K1ABC G0XYZ
  3.  G0XYZ K1ABC -19
  4.                      K1ABC G0XYZ R-22
  6.                      K1ABC G0XYZ 73

Notice that both operators send and receive the full compound callsign in their first transmission. After that, they omit the add-on prefix or suffix and use the standard structured messages and base callsigns.

Type 2 compound callsigns involve a prefix or suffix not found in the short displayable list. In that case the compound callsign must be the second word in a two- or three-word message, the first word of which must be CQ, DE, or QRZ. Prefixes can be 1 to 4 alphanumeric characters, suffixes 1 to 3 characters. A third word conveying a locator, signal report, RRR, or 73 is permitted. The following are valid Type 2 messages with compound callsigns:

  CQ W4/G0XYZ FM07
  DE W4/G0XYZ -22

In each case, the message is treated as Type 2 because the add-on prefix or suffix is not one of those in the fixed list displayed above. Note that a second callsign is never permissible in messages involvinf Type 2 compound callsigns.

QSOs involving Type 2 compound callsigns might look like one of the following sequences

1.  CQ KP4/K1ABC FK68
2.                      K1ABC G0XYZ IO91
3.  G0XYZ K1ABC -19
4.                      K1ABC G0XYZ R-22
6.                      K1ABC G0XYZ 73
1.  CQ K1ABC FN42
2.                      DE G0XYZ/W4 FM18
3.  G0XYZ K1ABC -19
4.                      K1ABC G0XYZ R-22
6.                      DE G0XYZ/W4 73

Each operator sends his own compound callsign in the first (and possibly also last) transmission, as may be required by licensing authorities. Subsequent transmissions use the standard structured messages without callsign prefix or suffix.

Important It’s up to you, the operator, to ensure that messages with compound callsigns are composed in the manner described above. Double-clicking on a line of decoded text may not always produce the expected result.
Tip During a transmission your transmitted message is always displayed in the first label on the Status Bar, highlighted in color, displayed exactly as another station will receive it. You can also experiment with compound callsigns using the utility programs jt65code and jt4code.

6.4. JT4 at Microwaves

To get the best out of JT4 on the upper microwave bands (in particular 10 and 24 GHz), it has been found advantageous to use single tones for simple messages such as RRR and 73, after callsigns have been exchanged. For this to work unambiguously, high frequency accuracy and stability are needed. This can be accomplished using GPS locking and automatic Doppler correction on the EME path, as described in http://www.physics.princeton.edu/pulsar/K1JT/small_station_eme.pdf. The recommended mode for 10 and 24 GHz is JT4F. The exchange of numerical signal reports in dB is also encouraged, to ensure that unknown information is exchanged.

You can transmit a pure tone at frequency XXXX by entering @XXXX in the active TX box. The resulting signal has all its energy at a single frequency, so much easier to see on the waterfall. With good calibration the frequency can be read directly from the waterfall. Once one aligns on the 1270 Hz TUNE tone and checks Freeze on the main window there will be two red ticks on the waterfall, marking the RRR and 73 messages. WSJT also provides a facility to integrate spectra over a full transmission, to gain a further sensitivity improvement. Check Plot average JT4 spectrum on the Setup menu.

Single tones and their meanings are as follows:

1270 Hz

Tuning tone

1000 Hz

please send messages

1500 Hz


1700 Hz


2000 Hz


You can insert these frequently used tones as templates on the Setup | Options window:


One small quirk is that if you double right click on the other station’s callsign to pick up the report this will return the format to the standard (non-single tone) arrangement. This is readily overcome by clicking on Gen Msgs when one is ready to TX single tones.

This procedure has also proved effective for terrestrial contacts using JT4F on tropo-scatter, ducting, and rain-scatter.

Setting MinW

The MinW parameter allows settings of A to F. The letters represent Doppler-spread widths corresponding to tone spacings of the JT4 submodes:

Table 1. Parameters of WSJT Fast Modes
Letter Width (Hz)















The JT4 decoder tests increasing bin-widths, starting from the letter set in MinW, to optimize decoding in relation to Doppler spread. It’s generally best to set MinW one or two steps below the predicted full spreading, which for EME is available in the Astronomical Data window. If the antenna beamwidth is smaller than the moon, actual spreading will be less.

False decodes are rare at microwave frequencies, where there is little man-made noise. You can safely set Sync to 0 to allow the program to synchronize on the weakest signals.

6.5. CW Mode

The WSJT CW mode is provided as a convenience for operators attempting EME contacts using timed transmissions of 1, 2, or 2.5 minutes duration. The program sends EME-style messages by keying an 800 Hz audio tone, and takes care of the timing and T/R switching. Receiving is left up to you, the operator. Set the desired CW speed under Miscellaneous on the Setup | Options window, and the T/R period by right- or left-clicking on the label at bottom center of the main window. Present conventions typically use 1 minute sequences on 50 MHz, either 1 or 2 minutes on 144 MHz, and 2.5 minutes on 432 MHz and above.

7. ISCAT Auto Sequencing and Auto Configure

Beginning with WSJT V10.0 r5639 auto sequencing and auto configure were added to ISCAT to support transient sporadic E openings on 6m. This entailed several improvements and modifications to ISCAT

Sequence Lengths

To take advantage of short Es openings shorter sequence lengths, 5s and 10s, are available for ISCAT. To change the sequence length:

Left click T/R Period:  Move to next higher sequence length
Right click T/R Period: Move to next lower sequence length
Alternate Messages

With the Auto Sequencer and the increase in ISCAT activity it is often desirable to differentiate the source of TX3 - TX5 messages. WSJT had an existing alternate message facility that added both calls to the TX3 - TX5 messages. This feature has been extended to ISCAT.

Cntl-G:         Sets alternate style messages (TX3 - TX5 include both calls)
Alt-G:          Sets standard style messages (TX3 - TX5 do not include calls)

Note the message style selection is sticky between sessions of WSJT.

Information Block

With the many options available, Alternate and Standard, Grid or Reports and several sequence lengths coordination between stations is an issue. ISCAT now includes an Information Block as part of the TX1 and TX6 messages. This block is used by the auto configuration feature discussed below but can also be used to manually set the various options

The structure of the information block is as follows:

First Character:                        ? differentiates the Information block from a grid
Second Character:                       S for Standard, A for Alternate style messages
Third Character:                        R for Reports, G for Grids
Forth & Fifth Characters:               Sequence Length in Seconds

The Information Block is represented in the message templates with the macro %I which is only filled in if the mode is ISCAT. The message templates can edited to remove %I if it is desired not to use the Information block.

Log QSO Reminder

The Auto Sequencer recognizes when the conditions of a complete QSO have been met and indicates this by flashing the Log QSO button as a reminder. This can be cleared with Alt-N, right clicking the Log QSO button or by logging the QSO by left clicking the Log QSO button.

Message Reporting

In previous releases of WSJT the ISCAT decoder made the decision of which single decode of many to pass up to the user and to report. This has been changed so the decoder passes all messages to the user and the auto sequencer. Because the decoder is capable of producing hundreds of decodes two new Setup options have been added two manage which messages you will see.

Decodes that were used by the auto sequencer to advance are marked with an a on the 31st column of the line, right after the * used to indicate messages with a strong sync value. These decodes are also written to all.txt.

Setup/Report All ISCAT Messages:
If checked this Setup option will show all decoded messages on the text screen and
place them in all.txt.  This can be hundreds of messages so use sparingly.  Note
the auto sequencer being active overrides this setting and only the messages used
by the auto sequencer are displayed.
Setup/Hide Empty ISCAT Messages:
When the ISCAT decoder does not decode anything it generates a blank message.  If
checked this Setup option prevents blank messages from being displayed.
Auto Configuration

With several variations of message type, reports and sequence lengths an auto configuration feature is active when in ISCAT mode. It will make a best attempt to configure WSJT based on a received messaged that is double clicked. As there are many variations of received messages this operation is quite complex. The following pseudo code shows the auto configuration systems reaction to various situations:

if First Field equals CQ then
       Second Field is copied to To Radio
       Third Field is copied to Grid
       if Click was on Forth Field and Forth Field equals valid Information block then
            Set Parameters
       Set TX First based on RX Time and T/R Period
else if First Field equals my call then
       Second Field  is copied to To Radio
       If To Radio in Call3.txt then
            Set Grid to value from call3.txt
       if double click was on Third Field and Third Field equals valid Information block then
            Set Parameters
       Set TX First based on RX Time and T/R Period
else if double click was on First Field
      First Field copied to To Radio
       If To Radio in Call3.txt then
            Set Grid to value from call3.txt
else if double click was on Second Field
       Second Field  is copied to To Radio
       If To Radio in Call3.txt then
            Set Grid to value from call3.txt
else if double click was on Third Field and Third Field equals valid Information block then
            Set Parameters
       Set TX First based on RX Time and T/R Period
Auto Sequence

With the advent of 5s and 10s sequences changes start happening fairly fast. ISCAT now has an auto sequencer to deal with this. Based on the currently transmitted sequence (TX1 through TX5) the auto sequencer inspects received messages and if appropriate advances the TX sequence.

The auto sequencer is active when the TX Auto box is checked and Auto is ON is active.

Note that the auto sequencer is highly situational dependent and requires exact decodes as well as messages matching the message type (standard or alternate) and report type (grid or report). If these conditions are not met the auto sequencer will not advance the TX sequence.

Each segment of each message must match exactly, your call must exactly match the call you have entered in WSJT, the other stations call must exactly match the call in To Radio. In the case of grids as reports the received grid must match the first 4 characters in the Grid field. In the case of reports the format must be correct and a reasonability test passed. In addition all white space must be correct.

In short the auto sequencer will not advance unless everything is exact. You can at any time override the auto sequencers decision by clicking on the appropriate TXx radio box (to send next TX sequence) or TX title box (to send now).

A problematic issue with auto sequencers is when to stop sending as there is a classic Catch 22. To keep stations from sending forever Setup/Options/Auto 73 Count has been added. The default value of 5 will limit the number of 73 messages sent to 5 if the other station is not being heard. In most instances this will lead to an elegant shut down of both stations.

The following pseudo code shows the decision process of the auto sequencer

if TX Auto is checked and Auto is On
        if Current TX Sequence equals TX1
                if Received Message equals valid TX1
                        Set Signal Report
                        Advance to TX2
                else if Received Message equals valid TX2
                        Set Signal Report
                        Advance to TX3
        else if Current TX Sequence equals TX2
                if Received Message equals valid TX2
                        Set Signal Report
                        Advance to TX3
                else if Received Message equals valid TX3
                        Advance to TX4
        else if Current TX Sequence equals TX3
                if Received Message equals valid TX3
                        Advance to TX4
                else if Received Message equals TX4
                        Set TXStopCount to Auto73Count
                        Advance to TX5
                        Set Log QSO to blink
        else if Current TX Sequence equals TX4
                if Received Message equals valid TX4
                        Set TXStopCount to Auto73Count
                        Advance to TX5
                        Set Log QSO to blink
                else if Received Message equals valid TX5
                        Set TXStopCount to Auto73Count
                        Advance to TX5
                        Set Log QSO to blink
        else if Current TX Sequence equals TX5
                if Received Message equals valid TX5
                        Set TXStopCount to 0
                        Set Auto is ON to Auto is OFF
                else if Received Message equals valid TX4
                        Set TXStopCount to Auto73Count
                        Decrement TXStopCount
                        if TXStopCount equals 0
                                Set Auto is ON to Auto is OFF

8. Controls & Functions

8.1. Top Row

The following buttons appear just under the decoded text windows on the main screen. Note that some controls appear only in certain operating modes.


Click to add an entry for the callsign in To radio* to the *log file WSJT.LOG. Logged information includes date, time, *callsign, locator, band, mode and reported signal strength. This button is also used to indicate a completed auto sequence QSO by blinking red, this can be cleared by logging the contact, pressing Alt-N or right mouse clicking the button.


Click to terminate Monitor mode.


Start a series of reception intervals, perhaps to monitor a calling frequency or to copy another station engaged in a QSO. The button is highlighted in GREEN when Monitor is active.


Analyze the most recently recorded or opened file, perhaps after one or more decoding parameters have been changed.


Clear all information in the main text boxes and graphical areas.

Clear Avg

Erase text in average message box, and clear the message accumulator.


If signal level is greater than -33 dB, add most recent symbol sprectrum to the average message accumulator, even if Sync is less than stated threshold.


Remove the most recent spectrum from the average message accumulator. Use this option when you are sure that the program has synchronized incorrectly (for example, because DF and/or DT differ substantially from expected values) and you wish to avoid contaminating the average with bad data.

Tx Stop

Terminate a transmission and set Auto Off.

8.2. Left

Controls related to the DX station and date and time are found at lower left of the main window:

To radio

The callsign of a station you wish to contact.


The Maidenhead locator of the DX station, either four or six characters.


Search database CALL3.TXT for the entry in To radio. If callsign is found, retrieve the station’s Grid locator and use it to calculate distance, azimuth, and Doppler shift.


Add the displayed callsign and grid locator to the database file CALL3.TXT. If an entry for this callsign already exists, you will be asked if you want to replace it.


Adjust UTC clock reading in 0.5 s increments to manually synchronize with UTC or with your QSO partner’s computer. (In general, it is best to keep the computder clock set accurately and Dsec set to zero.)

8.3. Center

Near the center of the main window are controls frequencly used during a QSO. Some controls are available only in certain modes; the following images apply to modes JTMS (left) and JT4 (right):

S, Sync

Set minimum signal level for detection or synchronizing threshold.


Filter out birdies (narrowband signals of approximately constant amplitude) before attempting to decode.


Set decoder’s tolerance (in Hz) to frequency offsets.


Enable automatic frequency control to compensate for a drifting signal.


Enable decoding of shorthand (single-tone) messages.


Search only frequencies Freeze DF ± Tol Hz. Adjust Freeze DF by using the F11 and F12 keys. In JT65 and JT4 mode, Freeze DF can also be set by clicking on the red spike or on the SpecJT waterfall display.


Set the minimum Doppler spread or tone width assumed for the JT4 decoding process. (Letter D corresponds to the tone spacing of the JT4D submode, etc.)

Tx First

Check this box to transmit during the first period of the timed T/R cycle. Uncheck it if your QSO partner is transmitting in the first period. “First” is defined as the first T/R interval of a UTC hour, and alternately thereafter.


Enable transmission of single-tone messages.

TX Auto

Along with Auto is On enable auto TX sequencing in ISCAT mode.


Signal report to be inserted in generated messages.

Gen Msgs

Generate standard Tx messages for the active mode.


Toggle On or Off to start or stop automatic sequences of transmit and receive periods.

8.4. Right

Controls for tranmitted messages appear at the right of the main window. You can insert a desired message into any of the six entry fields. The Gen Msgs button does this auromatically, in the appropriate format for the mode in use. The message marked in one of the circles will be the one sent at the start of the next Tx sequence. You can start a message immediately by clicking one of the Tx1 through Tx6 buttons.

8.5. Menus

8.5.1. File menu

File Menu

8.5.2. Setup Menu

Setup Menu

8.5.3. View Menu

Setup Menu

8.5.4. Mode Menu

Setup Menu

8.5.5. Decode Menu

Setup Menu

8.5.6. Save Menu

Setup Menu

8.5.7. Band Menu