WSPRD(1)

πŸ’– WSPRD πŸ’–

okay bestie, gather round, because we're talking about wsprd, which is a decoder for K1JT's Weak Signal Propagation Reporter (WSPR) mode ✨ (yes the man page calls it WSPRD, that's the manual name, we move).


🌈 SYNOPSIS

wsprd [OPTIONS] [FILE]

πŸ¦‹ DESCRIPTION

So wsprd is written in C, bestie. It's a plain old command-line program β€” no fancy GUI, no vibes-based interface β€” and what it does is read from a .c2 FILE or a .wav FILE and write its output straight to the console. πŸ’… It's used by WSJT-X for wspr-mode decoding, so like... it's the backbone. the moment. the main character. πŸ‘‘


✨ OPTIONS ✨

  • -a <path> β€” the path to the writeable data files. default is "." πŸ’–
  • -c <file> β€” write the .c2 file at the end of the first pass
  • -e x β€” x is the transceiver dial frequency error in Hz
  • -f x β€” x is the transceiver dial frequency in MHz
  • -H β€” do NOT use, or update, the hash table πŸ™ˆ (just don't)
  • -m β€” decode a wspr-15 .wav file
  • -q β€” quick mode πŸƒβ™€οΈ β€” it does not dig deep for weak signals
  • -s β€” single pass mode, no subtraction (same as the original wsprd)
  • -v β€” verbose mode, shows duplicate decodings πŸ‘€
  • -w β€” wideband mode β€” decode signals within +/- 150 Hz of center
  • -z x β€” x is the fano metric table bias, default is 0.42 🌸

The FILE can be either .wav or .c2, for example:

./wsprd -wf 14.0956 140709_2258.wav
NOTE for .c2 files, the frequency within the file overrides the command line value. πŸ‘‘ the file said what it said.

πŸŽ€ FEATURES πŸŽ€

  • By default, wsprd reports signals that are within +/- 110 Hz of the subband center frequency. The wideband option (-w) extends this to +/- 150 Hz. it's giving range. πŸ¦‹
  • wsprd maintains a hashtable and will decode all three types of wspr messages. An option (-H) is available to turn off use of the hashtable. (see above: don't. πŸ™ˆ)
  • The symbols are decoded using Phil Karn's sequential decoder routine, fano.c πŸ’… iconic code, no cap.

πŸ’œ NOTES πŸ’œ

  1. This program attempts to maximize the number of successful decodes per transmit interval by trying to decode virtually every peak in the averaged spectrum. 😀 It also implements two-pass decoding, whereby signals that are successfully decoded are subtracted one-by-one during the first decoding pass. Then, the decoder is run again. In many cases the subtraction process will uncover signals that can then be successfully decoded on the second pass. it's literally doing math detective work and I'm obsessed πŸ•΅οΈβ™€οΈβœ¨
  2. There will be occasional duplicate decodes when two closely spaced peaks come from the same signal. The program removes dupes based on callsign and frequency. Two decodes that have the same callsign and estimated frequencies that are within 1 Hz will be treated as decodes of the same signal. This dupechecking is turned off with the -v flag. so if you're seeing twins, that's why bestie 😭

🌸 AUTHORS 🌸

Joe Taylor, K1JT and Steven Franks, K9AN 🫢 absolute legends fr fr.

⭐ COPYING ⭐

WSPRD is Copyright Β© 2015 by Joseph H. Taylor, Jr., K1JT, and Steven Franke, K9AN, with contributions from additional authors. WSPRD is Open Source software, licensed under the GNU General Public License (GPLv3). πŸ†

This program 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. πŸ’€ yeah, that part's real, read it twice.


and that's the whole thing, bestie πŸ’– this was the WSPRD(1) manual, AsciiDoc 3.0.2-devel, dated 06/22/2026 β€” go decode something cute, slay, periodt βœ¨πŸŽ€πŸŒŸ

πŸ“¦ where this page comes from