WSPR (amateur radio software)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Developer(s)Joe Taylor, K1JT
Initial release2008
Written inPython (GUI), Fortran, C [1]
Operating systemCross-platform
Available inEnglish, Italian, Spanish, French, German, Japanese, Polish, Portuguese, Russian
TypeAmateur radio and DSP

WSPR (pronounced "whisper") stands for "Weak Signal Propagation Reporter". It is a protocol, implemented in a computer program, used for weak-signal radio communication between amateur radio operators. The protocol was designed, and a program written initially, by Joe Taylor, K1JT. The software code is now open source and is developed by a small team. The program is designed for sending and receiving low-power transmissions to test propagation paths on the MF and HF bands.

WSPR implements a protocol designed for probing potential propagation paths with low-power transmissions. Transmissions carry a station's callsign, Maidenhead grid locator, and transmitter power in dBm. The program can decode signals with a signal-to-noise ratio as low as −28 dB in a 2500 Hz bandwidth.[2] Stations with internet access can automatically upload their reception reports to a central database called WSPRnet, which includes a mapping facility.

The WSPR Protocol[edit]

The type of radio emission is “F1D”, frequency-shift keying. A message contains a station's callsign, Maidenhead grid locator, and transmitter power in dBm.[3] The WSPR protocol compresses the information in the message into 50 bits (binary digits). These are encoded using a convolutional code with constraint length K = 32 and a rate of r = 12.[3][4] The long constraint length makes undetected decoding errors less probable, at the cost that the highly efficient Viterbi algorithm must be replaced by a simple sequential algorithm for the decoding process.[3]

Protocol specification[edit]

The standard message is <callsign> + <4 digit locator> + <dBm transmit power>; for example “K1ABC FN20 37” is a signal from station K1ABC in Maidenhead grid cell “FN20”, sending 103.7milliwatts, or about 5.0 Watts (legal limit for 630 m). Messages with a compound callsign and/or 6 digit locator use a two-transmission sequence. The first transmission carries compound callsign and power level, or standard callsign, 4 digit locator, and power level; the second transmission carries a hashed callsign, 6 digit locator, and power level. Add-on prefixes can be up to three alphanumeric characters; add-on suffixes can be a single letter or one or two digits.

  • Standard message components after lossless compression:
28 bits for callsign,
15 bits for locator,
7 bits for power level,
total: 50 bits.
  • Forward error correction (FEC):
non-recursive convolutional code with constraint length K = 32, rate r = 12.
  • Number of binary channel symbols:
nsym = (50 + K − 1) × 2 = 162.[3]
  • Keying rate is 120008192 = 1.4648 baud.
  • Modulation is continuous phase 4 FSK, with 1.4648 Hz tone separation.
This is a picture of an Agilent Modulation Domain Analyzer 53310A showing the narrow band 4-FSK signal. The signal is produced by a Raspberry Pi computer.
  • Occupied bandwidth is about 6 Hz
  • Synchronization is via a 162 bit pseudo-random sync vector.
  • Each channel symbol conveys one sync bit (LSB) and one data bit (MSB).
  • Duration of transmission is 162 × 819212000 = 110.6 s.
  • Transmissions nominally start one second into an even UTC minute: e.g., at hh:00:01, hh:02:01, etc.
  • Minimum S/N for reception is around –34 dB on the WSJT scale (2500 Hz reference bandwidth).


Raspberry Pi as WSPR transmitter

The protocol was designed to test propagation paths on the LF, MF and HF bands. Also used experimentally at VHF and higher frequencies.

Other applications include antenna testing, frequency stability and frequency accuracy checking.

Usually a WSPR station contains a computer and a transceiver, but it is also possible to build very simple beacon transmitters with little effort.

For example a simple WSPR beacon can be built using the Si 570,[5] or Si 5351.[6] The Raspberry Pi can also be used as WSPR beacon.

Density distribution of WSPR spots, January 2014 vs July 2014, using only most distant reception per spot.

An accurate clock is essential both for transmission and decoding of received signals.


In May 2021, aerospace engineer Richard Godfrey suggested an examination of historical WSPR data to further define the flight path of Malaysian Airlines flight MH370 on 8 March 2014, suggesting that there were "518 unique transmission paths that cross the area of interest around Malaysia, the Malacca Strait and the Indian Ocean. With the WSPR data provided every two minutes and the ability to check against the satellite data every hour it is possible to detect and track MH370 from two independent sources."[7]
However, the method used in this article is highly questionable; The reflected signal energy from aircraft in such distances is very small (inverse square law), much smaller than variance on the regular skywave signal due to multipath propagation, which can vary by tens of dB within seconds.[citation needed] Such difficulties make it necessary to use more advanced methods for radar applications at such distances in this frequency range (Over-the-horizon radar).[citation needed]


WSPR was originally released in 2008.


  1. ^ "WSJT Home Page".
  2. ^ "WSJT Home Page".
  3. ^ a b c d Joe Taylor, K1JT: WSPRing Around the World. QST November (2010), p. 30-32.
  4. ^ G4JNT: The WSPR Coding Process: Non-normative specification of WSPR protocol
  5. ^ WSPR Beacon with Si 570 and Atmel AVR
  6. ^ QRSS/WSPR Transmitter Kit
  7. ^ Malaysia Airlines flight MH370 left 'false trails' before disappearing, new research suggests, Anne Barker, ABC News Online, 2021-05-05

External links[edit]