WSPR (amateur radio software)
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. Software 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.
Developer(s) | Joe Taylor, K1JT |
---|---|
Initial release | 2008 |
Written in | Python (GUI), Fortran, C [1] |
Operating system | Cross-platform |
Available in | English, Italian, Spanish, French, German, Japanese, Polish, Portuguese, Russian |
Type | Amateur radio and DSP |
License | GPL |
Website | physics.princeton.edu/pulsar/K1JT/wspr.html |
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 S/N as low as −34 dB in a 2500 Hz bandwidth. Stations with internet access can automatically upload their reception reports to a central database called WSPRnet, which includes a mapping facility.
The WSPR Protocol
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.[2] 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 = 1⁄2.[2][3] 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.[2]
Protocol specification
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 = 1⁄2.
- Number of binary channel symbols:
- nsym = (50 + K − 1) × 2 = 162.[2]
- Keying rate is 12000⁄8192 = 1.4648 baud.
- Modulation is continuous phase 4 FSK, with 1.4648 Hz tone separation.
- 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 × 8192⁄12000 = 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).
Applications
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,[4] or Si 5351.[5] The Raspberry Pi can also be used as WSPR beacon.
Note - an accurate clock is essential both for transmission, and decoding of received signals (native Windows timing is usually inadequate).
History
WSPR was originally released in 2008.
References
- http://physics.princeton.edu/pulsar/K1JT/devel.html
- Joe Taylor, K1JT: WSPRing Around the World. QST November (2010), p. 30-32.
- G4JNT: The WSPR Coding Process: Non-normative specification of WSPR protocol http://www.g4jnt.com/Coding/WSPR_Coding_Process.pdf
- WSPR Beacon with Si 570 and Atmel AVR http://wsprnet.org/drupal/sites/wsprnet.org/files/si570wspr.pdf
- QRSS/WSPR Transmitter Kit https://qrp-labs.com/