/wspr

Python 3 script using an AD9851 for WSPR mode

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

wspr

Python 3 script using an AD9851 for WSPR mode

Usage mainly identical to the WsprryPi Raspberry Pi script https://github.com/JamesP6000/WsprryPi. However the AD9851 generates a much cleaner signal than the square wave from the Raspberry Pi.

Usage: python wspr.py [options] callsign locator tx_pwr_dBm f1 ... OR python wspr.py [options] --test-tone f

Options:
-h --help Print out this help screen.
-r --repeat Repeatedly, and in order, transmit on all the specified command line freqs.
-o --offset Add a random frequency offset to each transmission: +/- 80 Hz for WSPR.
-t --test-tone freq Simply output a test tone at the specified frequency. Only used for debugging and to verify calibration.
-n --no-delay Transmit immediately, do not wait for a WSPR TX window. Used for testing only.

Frequencies can be specified either as an absolute TX carrier frequency, or using one of the following strings. If a string is used, the transmission will happen in the middle of the WSPR region of the selected band: 2190m 630m 160m 80m 60m 40m 30m 20m 17m 15m 12m 10m 6m 4m 2m

Transmission gaps can be created by specifying a TX frequency of 0

Note that 'callsign', 'locator', and 'tx_power_dBm' are simply used to fill in the appropriate fields of the WSPR message. Normally, tx_power_dBm should be 10, representing the signal power coming out of the Pi. Set this value appropriately if you are using an external amplifier.

only type 1 messages are supported. The AD9851 is limited to a 70 MHz max .

default pin use: W_CLK=18 FQ_UD=23 DATA=24 RESET=25

credits: original code: https://github.com/brainwagon/genwspr code compatible for the Raspberry Pi https://github.com/JamesP6000/WsprryPi