WSPR (pronounced « whisper ») stands for « Weak Signal Propagation Reporter ». It is a protocol, used for weak-signal radio communication. The protocol was designed, and a program written by Joe Taylor, K1JT. This project is a stand alone WSPR beacon complete and a radio transmitter including low pass filters. The beacon, once configured, will run stand alone transmitting a WSPR sequence each even minute.
WSPR beacon features:
Arduino nano (atmega328P) based microcontroller :
- Support Arduino IDE 1.0+ (OSX/Win/Linux)
- Power via USB or External Source + 5v
- Built-in USB
- 2 I/O Pins (for GPS receiver)
- Removable filter
- AD9850 DDS
- RTC DS3231
- BS170 power amplifier 0.1W
- Fit in Aluminium Instrument Box Enclosure Case 100x66x43
- Status LED.
- PCB available (f4goh at orange.fr)
- diaporamas en français ici
- wspr ebay links
The idea is to learn how to build a transmitter without using an assembly ready to use. You will learn how to program a DDS, make filters and setting of the transmission frequency.
Main board description:
The wspr imposes a transmission every minute even. the simplest is to use a real-time clock instead GPS.
Two ways to use bs170:
– use QN (J2) DDS output and replace C7 capacitor by a strap. don’t put R3,C6,R4,L1, and left j8 open (this is the configuration i used). Adjust DDS 9850 trim to have a ~ « square wave » at the QN output. When transmission is OFF QN voltage should be 0V. Use any scope , you can find GND connection at PT5.
– use SINB(J2) and apply voltage polarization on BS170 gate. (put R3,C6,R4,L1 and strap J8) then apply analogWrite command on nano pin 6. (to adjust gain by software). if gain value is too high bs170 may be destroyed.
You can find a pad space to experiment your own stuff and change bs170 to another transistor.
J1 connector could be dedicated for GPS input. But it can be used for another things like external lowpass filter commutation.
Ds1820 is planned just for fun, to send temperature by RTTY or PSK modulation.
Where can I find the project files ?
2 I²C Bus:
I²C (Inter-Integrated Circuit), pronounced I-squared-C, is a synchronous, multi-master, multi-slave, packet switched, single-ended, serial computer bus invented in 1982 by Philips Semiconductor. I²C uses only two bidirectional open collector or open drain lines, Serial Data Line (SDA) and Serial Clock Line (SCL), pulled up with resistors.[
3 How to program a DDS ?
4 WSPR symbol generation
Edit wspr.bat file : (find on my github or here)
WSPRcode « KB1GOH FN42 20 » > symbols.txt
- change callsign
- change locator
- and finish by power (20 dBm for 0.1W)
- save and run wspr.bat file
Edit symbols.txt file and select channel symbols
Replace space by comma using find and replace menu
paste symbols in wsprSimple.ino file
- Copy the libraries into the directory C: \ Users \ [pc name] \ Documents \ Arduino \ libraries
- Program the wsprSimple.ino file
- Open the serial monitor, press the « h » key to update the clock in the following format: yy, m, d, h, m, s,
The program can be used with an oled display.
5 Build a low pass filter (40 meters, 7.2 Mhz)
- use svcfilter designer
- configure params as picture below
- display responses
Use mini tore calculator software to check numbers of turns
and Check filter with a VNA analyser:
I use separate PCB filter, like that, i could change to any HF band. If you always use one band, put the filter directly on the PCB.
6 Configure WSJT-X and beacon testing
On transmission, the led should blink every 0.6 s
Set in box
7 WSPR report web sites
It was a pleasure to study DDS and WSPR modulation. This project was designed essentially for makers. Adapt it as you want. I have made PSK, QPSK, RTTY, APRS modulation for AD9850 DDS since few year. I’ll write the software as soon as possible. If you have any questions : f4goh at orange.fr