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.


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

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

3.1. Windows

  • 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

Still to come …

3.4. Source Code

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

  • Subversion

  • Python 2.7, 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
*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. Controls & Functions

7.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, and mode.


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.

7.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.)

7.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.


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.

7.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.

7.5. Menus

7.5.1. File menu

File Menu

7.5.2. Setup Menu

Setup Menu

7.5.3. View Menu

Setup Menu

7.5.4. Mode Menu

Setup Menu

7.5.5. Decode Menu

Setup Menu

7.5.6. Save Menu

Setup Menu

7.5.7. Band Menu

Setup Menu

7.5.8. Help Menu

Setup Menu

7.5.9. Keyboard Shortcuts


7.5.10. Special Mouse Commands


7.6. SpecJT

Setup Menu

Toggle between options to display received bandwidth of 2 KHz or 4 kHz.


Move frequency scale left.


Return frequency scale to default position.


Move frequency scale right.


Set the waterfall scrolling speed. H1 and H2 set horizontal scrolling.

8. Echo Mode

Echo mode allows you to make sensitive measurements of your own echoes from the moon, even when they are too weak to be heard. Select Echo from the Mode menu, aim your antenna at the moon, pick a clear frequency, and toggle Auto ON. WSJT will then cycle through the following loop every 6 seconds:

  1. Transmit a fixed tone for 2.0 s

  2. Wait about 0.5 s for start of return echo

  3. Record the received signal for 2.0 s

  4. Analyze, average, and display the results

  5. Repeat from step 1

At the start of each transmission the frequency of the transmitted tone can be offset randomly around a nominal value of 1500 Hz. A number in the entry field Dither (under Miscellaneous on the Setup | Options screen) controls the magnitude of the random offset. The observed spectrum of each echo is shifted by the Dither amount before being accumulated into the average. This procedure is very effective in minimizing the impact of birdies in the receiver passband. In the average spectrum, a fixed-frequency birdie is smeared out over a frequency range equal to the Dither value. For an example see the screen shot below: the red curve is the corrected echo spectrum, while the blue curve is the raw (uncorrected) data.

Information displayed in the main text box gives the number N of completed echo cycles, the average Level of receiver background noise in dB, the average echo strength Sig in dB, its measured frequency offset DF in Hz (after correction for predicted Doppler shift), the spectral Width of the echo in Hz, and a relative quality indicator Q on a 0-10 scale. Background noise level is given with respect to the nominal 0 dB level used for all WSJT modes. Signal strength is measured in dB relative to the noise power in a 2500 Hz passband. Low numbers for Q mean that an echo has not been detected, or is unreliable. When Q=0 the values of DF and Width are meaningless, and Sig may be considered an upper limit. Larger values of Q imply increasingly believable echo measurements. If you can hear your own lunar echoes, you will see reliable echo numbers within a few seconds after toggling Auto ON. If your echoes are 15 to 20 dB below the audible threshold you should get significant results within a minute or so.

9. Measure Mode

Choose Measure from the mode menu and activate Monitor to perform measurements of relative noise power from your receiver. The system will record audio for one second, compute the level of noise power, and display the result in dB relative to WSJT’s standard level. This cycle is repeated every 2 seconds, with the results plotted as a green line and summary data displayed in the decoded text window. You can use this mode to measure sun noise, antenna temperature, ground noise, preamp gain, and a host of other useful quantities relative to a chosen reference level. Be sure to disable the receiver AGC if you intend to use the mode for quantitative measurements. It would also be wise to make some test measurements (for example, using a calibrated attenuator) to confirm that the reported dB readings are reliable in your system as configured.

10. Cooperating Programs

WSJT writes an output file that can be used by another program to control antenna positioners and other equipment. The file is updated once per second; it contains four lines, as in the following example:

18:33:35,207.7, 31.4,Sun
18:33:35, 51.7, 51.4,Source
  144,   142.0,    0.90,     8.8,    1.33,Doppler, R

The first three lines list the current UTC in HH:MM:SS format, followed by azimuth and elevation in degrees for the Sun, Moon, and another astronomical source. (Specify right ascension and declination for the additional source on the Setup | Options window.) Numbers on the fourth line give the operating frequency in MHz, Doppler shift to the DX station in Hz, rate of change of Doppler shift in Hz/minute, self Doppler, its rate of change, and a single letter R or T to specify whether WSJT is presently receiving or transmitting.

11. Protocol Specifications

11.1. JTMS

JTMS uses Minimum Shift Keying (MSK) at 11025 / 8 = 1378.125 baud. Messages are free-form and have lengths 5,7,9,11,13,17,19,23 or 29 characters, padded when required with one or more trailing blanks. Characters are mapped to numerical values in the range 0 to 63 according to position in the first line below. (The second and third lines may be used to read off an index value: for example, B has the value 11 and ? is 38.)

            1         2         3         4

The 6-bit binary representation for each character value is augmented with an even parity bit. The resulting 7-bit sequences are sent using audio frequency 1155.47 Hz to represent 0 and 1855.53 Hz to represent 1. A message is transmitted repeatedly for a full transmission, maintaining phase continuity at all transitions between tones.

Four single-tone messages are defined in JTMS: R26, R27, RRR and 73. They are transmitted as pure tones of 882, 1323 and 1764, and 2205 Hz respectively. Pings from these transmissions are easily recognized by the human ear, easily seen on spectrum displays, and readily detected by appropriate software.

11.2. FSK441

FSK441 uses four-tone frequency shift keying at 441 baud. The frequencies of the audio tones are 882, 1323, 1764, and 2205 Hz. Each encoded character uses three tone intervals and therefore requires 3/441 seconds (approximately 2.3 ms) for transmission. FSK441 accommodates an alphabet of 43 characters, as listed in the table below:

       1      001          H   120
       2      002          I   121
       3      003          J   122
       4      010          K   123
       5      011          L   130
       6      012          M   131
       7      013          N   132
       8      020          O   133
       9      021          P   200
       .      022          Q   201
       ,      023          R   202
       ?      030          S   203
       /      031          T   210
       #      032          U   211
     <space>  033          V   212
       $      100          W   213
       A      101          X   220
       B      102          Y   221
       C      103          0   223
       D      110          E   230
       F      112          Z   231
       G      113

In the table the four tones are labeled 0-3, representing the tones 882, 1323, 1764, and 2205 Hz. For example, the letter T has the code 210 and is transmitted by sending sequentially the tones at 1764, 1323, and 882 Hz. Note that the character <space> is encoded as 033, and that tone sequences starting with the highest tone (number 3) are not used. It follows that if transmitted messages always include at least one space, a decoding algorithm can establish proper synchronization from the message content itself, with zero overhead. This encoding strategy is one of the secrets of the high efficiency of FSK441 for meteor scatter communications.

The four possible single-tone character codes, namely 000, 111, 222, and 333, are reserved for special use as shorthand messages. When sent repeatedly, these reserved characters generate pure single-frequency carriers. Their pings are easily recognized by the human ear and also by appropriate software. The shorthand messages are defined to mean R26, R27, RRR, and 73, respectively. These messages are frequently used in meteor scatter QSOs, after callsigns have been exchanged. They are not used in IARU Region 1, where activity levels are high enough that messages should always be accompanied by callsigns.

11.3. ISCAT

ISCAT messages are free-form, up to 28 characters in length. Modulation is 42-tone frequency-shift keying at 11025 / 512 = 21.533 baud (ISCAT-A), or 11025 / 256 = 43.066 baud (ISCAT-B). Tone frequencies are spaced by an amount equal to the baud rate. The available character set is


Transmissions consist of sequences of 24 symbols: a “sync” pattern of four symbols at tone numbers 0, 1, 3, and 2, followed by two symbols with tone number corresponding to the message length, and finally 18 symbols conveying the user’s message, sent repeatedly character by character. The message always starts with @, the beginning-of-message symbol. The sync pattern and message-length indicator have a fixed repetition period, recurring every 24 symbols. Message information occurs periodically within the 18 symbol positions set aside for its use, repeating at its own natural length.

For example, consider the user message CQ WA9XYZ. Including the beginning-of-message symbol @, the message is 10 characters long. Using the character sequence displayed above to indicate tone numbers, the transmitted message will therefore start out as shown in the first line below:

 sync##                  sync##                 sync##

Note that the first six symbols (four for sync, two for message length) repeat every 24 symbols. Within the 18 information-carrying symbols in each 24, the user message @CQ WA9XYZ repeats at its own natural length, 10 characters. The resulting sequence is extended as many times as will fit into a Tx sequence.

11.4. JT6M

JT6M uses 44-tone FSK with a synchronizing tone and 43 possible data tones — one for each character in the supported alphanumeric set, the same set used for FSK441. The sync tone is at frequency 100 x 11025 / 1024 = 1076.66 Hz, and the 43 other possible tones are spaced at intervals of 11025 / 512 = 21.53 HZ up to 2002.59 Hz. Transmitted symbols are keyed at a rate of 21.53 baud, so each one lasts for 1/21.53 = 0.04644 seconds. Every third symbol is the sync tone.The transmission rate of user data is therefore 21.53 x (2/3) = 14.4 characters per second.

11.5. JT65

A detailed description of the JT65 protocol was published in QEX for September-October 2005. Briefly stated, JT65 uses 60 s T/R sequences and carefully structured messages. Standard messages are compressed so that two callsigns and a grid locator can be transmitted with just 71 bits. A 72nd bit serves as a flag to indicate that the message consists of arbitrary text (up to 13 characters). Special formats allow other information such as add-on callsign prefixes or numerical signal reports to be substituted for the grid locator. The aim of source encoding is to compress the common messages used for weak-signal QSOs into a minimum fixed number of bits. After compression, a Reed Solomon (63,12) error-correcting code converts 72-bit user messages into sequences of 63 six-bit channel symbols.

JT65 requires tight synchronization of time and frequency between transmitter and receiver. Each transmission is divided into 126 contiguous time intervals or symbols, each of length 4096/11025 = 0.372 s. Within each interval the waveform is a constant-amplitude sinusoid at one of 65 pre-defined frequencies, and frequency changes between intervals are accomplished in a phase-continuous manner. Half of the channel symbols are devoted to a pseudo-random synchronizing vector interleaved with the encoded information symbols. The sync vector allows calibration of relative time and frequency offsets between transmitter and receiver. A transmission nominally begins at t = 1 s after the start of a UTC minute and finishes at t = 47.8 s. The synchronizing tone is at 11025 x 472 / 4096 = 1270.5 Hz, and is normally sent in each interval having a 1 in the following pseudo-random sequence:


Encoded user information is transmitted during the 63 intervals not used for the sync tone. Each channel symbol generates a tone at frequency 1275.8 + 2.6917 Nm Hz, where N is the value (0 - 63) of the six-bit symbol, and m is 1, 2, or 4 for JT65 sub-modes A, B, or C. The signal report OOO is conveyed by reversing sync and data positions in the transmitted sequence. Shorthand messages dispense with the sync vector and use intervals of 1.486 s (16,384 samples) for the alternating tones. The lower frequency is always 1270.5 Hz, the same as that of the sync tone, and the frequency separation is 26.92 nm Hz with n = 2, 3, 4 for the messages RO, RRR, and 73.

11.6. JT4

JT4 uses 72-bit structured messages nearly identical to those in JT65. Error control coding (ECC) uses a strong convolutional code with constraint length K=32, rate r=1/2, and a zero tail, leading to an encoded message length of (72+31) x 2 = 206 information-carrying bits. Modulation is 4-tone frequency-shift keying at 11025 / 2520 = 4.375 baud. The frequency spacing between tones and total bandwidth depends on the submode.

11.7. Summary

Table 2. Parameters of WSJT Fast Modes
Mode T/R (s) Mod FEC Nsps Baud df (Hz) BW (Hz) cps S/N (dB)















































Table 3. Parameters of WSJT Slow Modes
Mode T/R (s) Mod FEC Nsps Baud df (Hz) BW (Hz) cps S/N (dB)

























































































































12. Implementation Details

JT65 and JT4 offer a number of submodes with different spacings between tone frequencies. JT65A, with 2.69 Hz tone spacing, is generally used at 50 MHz and below. JT65B (5.38 Hz) is used on 144 and 432 MHz, and JT65C (10.77 Hz) on 1296 MHz. The B and C submodes are slightly less sensitive than mode A, but progressively more tolerant of frequency drifts and Doppler spread. In a similar way, JT4 submodes A through G offer tone spacings between 4.375 Hz and 315 Hz. See the Protocol Specifications section, especially Table 2, for details.

The JT65 and JT4 decoders use multi-layered procedures. If the fully general decoder fails, a deeper search can be made using a matched-filter or Deep Search approach. The Deep Search decoder constructs a list of hypothetical messages by pairing each entry in the callsign database with CQ and with the home callsign of the user. Each trial message is encoded as it would be done at the transmitter, including all of the forward error-control (FEC) symbols. The resulting patterns are then tested for good match with the received symbol spectra. Even a single-character mismatch will prevent a decoding from being achieved. You can define the list of likely callsigns in any way you choose. A default callsign database named CALL3.TXT is provided with WSJT, containing the calls of over 5000 stations known to have been active in weak-signal work on the VHF/UHF bands. If you use the Deep Search decoder, keep your callsign list up to date and adapt it to your own requirements.

In addition to DT and DF, the decoders in WSJT provide useful information on the relative strength of synchronization, the average signal-to-noise ratio in dB (relative to the noise power in 2500 Hz bandwidth), and W, the measured frequency width of the sync signal, in Hz. A symbol following W indicates that an adequate level of synchronization has been achieved: * will be displayed for a normal message, and # for a message including the OOO signal report. Two numbers appear at the end of each line. The first tells whether the generalized soft-decision decoder succeeded (1) or failed (0). The second gives a relative confidence level on a 0 to 10 scale for results produced by the Deep Search decoder. Shorthand messages do not produce these numbers.

If a JT65 or JT4 transmission synchronizes correctly, its spectral information is added into an accumulating array. Spectra from subsequent transmissions are added into this array and can make it possible to decode the average, even if individual transmissions were not decodable. Results of such decoding attempts appear in the Average Text window.

The Deep Search decoder necessarily has a gray area in which it finds a likely solution but may have only moderate confidence in it. In such cases the decoder appends a ? to the decoded text.

Tip As operator you must make always the final decision as to whether the decoding is believable. The mathematical message structure means that incorrect decodings will not differ from the correct one in only a few characters; more likely, they will contain wholly incorrect callsigns and grid locators. As you gain experience with the graphical and numerical indications of proper message synchronization (Sync, dB, DT, DF, W, and the green, red, and blue curves in the graphical area), as well as the effects of birdies and other interference, you will become adept at recognizing and rejecting the occasional false decodes.
Important If it appears that an unexpected (and perhaps exotic) station is calling you, treat it with suspicion until you decode the message again in a subsequent transmission. Random decoding errors will seldom repeat themselves.

Several options are available for adjusting the JT65 decoding procedure to your liking. If you check Decode | JT65 | Only EME calls, only a subset of callsigns in the database that include an “EME” flag will be used in the Deep Search procedure. Check No Shorthands if Tx 1 if you wish to suppress shorthand decodings when you are still transmitting the first Tx message. The Decode | JT65 sub-menu offers four options for the Deep Search decoder. The first, No Deep Search, disables this feature entirely. Normal Deep Search turns it on but suppresses output with confidence levels less than 3, while Aggressive Deep Search allows output down to level 1. The last option, Include Average in Aggressive Deep Search, applies the Deep Search procedure to the accumulating average as well as the most recently received data.

JT65 shorthand messages are powerful because they can be decoded at signal levels about 5 dB below those required for standard messages. They can also be decoded by ear, or by eye directly from the SpecJT waterfall display. If a message starts with RO, RRR, or 73 followed by a space, the shorthand format will be sent. If the message satisfies the requirements for a structured message, the specified callsigns, CQ, QRZ, locator, report and/or prefix/suffix will be encoded and sent. With any other entry, 13 characters of arbitrary text will be encoded and sent. The actual message being transmitted is always displayed in the bottom right corner of the main screen. Yellow highlighting indicates a standard message, blue a shorthand message, and red a plain text message.

13. Frequently Asked Questions

To be added …

14. Astronomical Data

In JT65 and JT4 modes a small blue-background text box entitled Moon presents data for tracking the moon, compensating for EME Doppler shift, and estimating EME path degradation. Select menu item View | Astronomical data to see more such data in a separate window, as shown below.


Available information includes azimuth and elevation (Az and El) for the Moon, Sun, and another astronomical source of your choice. Right ascension (RA) and declination (DEC) for the additional astronomical source should be entered on the Setup | Options window in the decimal hours and degrees. Az and El of the Moon are given for the location of the DX station, as well as for the home station. Doppler shift (in Hz) and rate of change of Doppler shift, df/dt, in Hz/minute, are listed for two-way exchanges with the DX station, and for self-echoes from the home station. RA and DEC are given for the moon. All on-screen coordinates are in degrees except for RA, which is in hours and minutes. Tsky gives the approximate galactic background temperature in the direction of the moon, scaled to the operating frequency Freq; MNR is the maximum non-reciprocity of the EME path in dB, owing to spatial polarization; Dpol is the spatial polarization offset, in degrees; Dgrd is an estimate of the total signal degradation in dB, relative to the best possible time when the moon is at perigee and in a cold part of the sky; and SD is the moon’s semi-diameter in arc minutes.

You may find it useful to know something about the nature and accuracy of the astronomical calculations in WSJT. The state of the art for establishing three-dimensional locations of the sun, moon, and planets at a specified time is embodied in a numerical model of the solar system maintained at the Jet Propulsion Laboratory. The model has been numerically integrated to produce tabular data that can be interpolated with very high accuracy. For example, the celestial coordinates of the moon or a planet can be determined at a specified time to within about 0.0000003 degrees. Although the ephemeris tables and interpolation routines could easily be incorporated into WSJT, the accuracy provided would be overkill for our desired purposes. Instead, WSJT uses closed-form calculations based on a limited number of harmonic terms that have been fit to the high-accuracy data.

The precise algorithms used for solar and lunar positions were developed by Van Flandern and Pulkkinen (Astrophysical Journal Supplement Series, 44, 391-411, 1979). Series expansions from this paper yield accuracies of about 0.02 and 0.04 deg for the sun and moon positions, respectively, and they will remain almost this good for nearly a thousand years. At this level of accuracy the effects of nutation and aberration can be ignored, as can most of the smaller planetary perturbations. (Perturbations involving the Moon, Jupiter, Saturn, and Uranus are included, however.) Ephemeris Time and Universal Time are taken as equivalent, and the time steps associated with leap seconds are ignored. These and all other approximations employed are consistent with the specified accuracy level.

Coordinates displayed for the sun are geocentric. Since the moon is much closer its diurnal parallax is significant, and therefore topocentric coordinates are given for your specified location. For both sun and moon, the listed elevation is the apparent position of the center of the disk. To improve the accuracy of predicted Doppler shifts of EME signals, a larger number of terms was used in the series expansion for lunar distance. WSJT properly accounts for the oblateness of the Earth when establishing locations relative to the Earth’s center. Final accuracy of the Doppler shifts computed by WSJT is better than 1 Hz at 144 MHz, and this has been confirmed by direct comparison with a calculation based on the JPL ephemeris.

The sky background temperatures reported by WSJT are derived from the all-sky 408 MHz map of Haslam et al. (Astronomy and Astrophysics Supplement Series, 47, 1, 1982), scaled by frequency to the (-2.6) power. This map has angular resolution of about 1 degree, and of course most amateur EME antennas have much broader beamwidths than this. Your antenna will therefore smooth out the hot spots considerably, and the observed extremes of sky temperature will be less. Unless you understand your sidelobes and ground reflections extremely well, it is unlikely that more accurate sky temperatures would be of much practical use.

15. Directory Contents

15.1. Installed Files

After a clean install of WSJT on Windows the following files should be present in the installation directory:


Callsign database


Executable for Koetter-Vardy decoder


Directory for saved *.wav files, and Samples


Sky temperatures at 408 MHz


Utility program illustrating JT4 encode/decode


Utility program illustrating JT65 encode/decode


dummy data file for KVASD


resample library


Uninstall data file


Executable for uninstalling WSJT


WSJT icon


Executable for WSJT Version 10.0


Font definitions

15.2. Runtime Files

Additional files will appear in the installation directory after the program has been run. These include the following:


Log of all received and transmitted messages


Information about computer FFTs


Saved configuration parameters


Current coordinates for Moon and Sun


Decoded average messages


Decoded messages


Prefixes and suffixes for Type 1 compound callsigns

16. Utility Programs

Utility programs jt4code and jt65code let you explore the conversion of user-level messages into channel symbols or “tone frequency numbers.” These programs can be useful to someone designing a beacon generator or for studying behavior of the error-control codes.

Channel-symbol values for JT4 run from 0 to 3, and the total number of symbols in a transmitted message is 206. To run jt4code, enter the program name followed by a message enclosed in quotes. In Windows the command and program output might look like this:

C:\WSJT10> jt4code "G0XYZ K1ABC FN42"

Message:   G0XYZ K1ABC FN42

Source-encoded message, 6-bit symbols:
 61 36 45 30  3 55  3  2 14  5 33 40

Source-encoded message, 72 bits:

Encoded information before interleaving, 206 bits:

Encoded information after interleaving, 206 bits:

Sync vector, 206 bits:

Channel symbols, 206 x 4-FSK symbols:

Decoded message: G0XYZ K1ABC FN42

For the corresponding program jt65code only the information-carrying channel symbols are shown, and the symbol values range from 0 to 63. Sync synbols lie two tone intervals below data tone 0, and the sequential locations of sync symbols are described in the JT65 Protocol section of this Guide.

A typical execution of jt65code is shown below. The program displays the packed message of 72 bits, shown here as 12 six-bit symbol values, followed by the channel symbols:

C:\WSJTX> jt65code "G0XYZ K1ABC FN42"
Message:   G0XYZ K1ABC FN42
Packed message, 6-bit symbols:  61 36 45 30  3 55  3  2 14  5 33 40
Information-carrying channel symbols:
   56 40  8 40 51 47 50 34 44 53 22 53 28 31 13 60 46  2 14 58 43
   41 58 35  8 35  3 24  1 21 41 43  0 25 54  9 41 54  7 25 21  9
   62 59  7 43 31 21 57 13 59 41 17 49 19 54 21 39 33 42 18  2 60
Decoded message: G0XYZ K1ABC FN42

For an illustration of the power of the strong error-control coding in JT4 and JT65, try looking at the channel symbols after changing a single character in the message. For example, change the grid locator from FN42 to FN43 in the JT65 message:

C:\Users\joe\wsjt\wsjtx_install>jt65code "G0XYZ K1ABC FN43"
Message:   G0XYZ K1ABC FN43
Packed message, 6-bit symbols:  61 36 45 30  3 55  3  2 14  5 33 41
Information-carrying channel symbols:
   25 35 47  8 13  9 61 40 44  9 51  6  8 40 38 34  8  2 21 23 30
   51 32 56 39 35  3 50 48 30  8  5 40 18 54  9 24 30 26 61 23 11
    3 59  7  7 39  1 25 24  4 50 17 49 52 19 34  7  4 34 61  2 61
Decoded message: G0XYZ K1ABC FN43

You will discover that every possible JT65 message differs from every other possible JT65 message in at least 52 of the 63 information-carrying channel symbols.

17. Compiling WSJT

A Developer’s Guide for WSJT and its sister programs is in the works. The present draft contains full instructions for compiling WSJT-X in Linux, and an outline of steps required in Windows. The WSJT user interface is programmed in Python (rather than Qt), so the required tools are somewhat different. WSJT can be built and used successfully on Windows, Linux, OS X, FreeBSD. Instructions will be added here when time permits.


A number of WSJT users have put hundreds of hours into using and testing WSJT, finding bugs, and suggesting improvements. Particular thanks are due to G3WDG, G4DEZ, G4IGO, IK0BZY, IK0SMG, IW4ARD, K0AWU, KI7MT, N5SIX, OE5MPL, OZ1PIF, VK3SO, VK4JMC, VK7MO, W5WVO, W8WN, and WA5UFH.

Special thanks are also due to Ralf Koetter and Alexander Vardy, whose research paper “Soft-Decision Algebraic Decoding of Reed Solomon Codes,”( IEEE Transactions on Information Theory,'' vol. 49, pp. 2809-2825, 2003) introduced me to the powerful decoding algorithm now used in the JT65 modes. Through their company CodeVector technologies, Koetter and Vardy granted a license to use their algorithm, protected under United States patent 6,634,007, for noncommercial purposes in amateur radio, and to adapt their computer code to this end.


WSJT is free software: you can redistribute it and/or modify under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

WSJT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this documentation. If not, see GNU GPL

Copyright © 2001-2014 Joseph H Taylor, Jr, K1JT.