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
1 Introduction
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.


Schematics:
schematics in hires
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 with GPS
Download last software :
https://github.com/f4goh/WSPR/archive/master.zip
Don’t forget to copy all libraries into myDocuments/Arduino/libraries folder
Check GPS Wiring on WSPR main board : (GPS must be TTL compatible 0/5V)

If debugDDS is enable, press w key on serial monitor to check locator calculation and TXing.
Change TX minutes in the time table (here is 9 txing per hour)
8 WSPR report web sites




Interested link form W3PM : Multifunction Project
9 Conclusion
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

630 m WSPR TX by F1FPL
One BS170 on the main board (L3 inductor drain was 1mH) and change C10 by 470nF
http://www.f6ciu.com/


WSPR beacon by TED G3WBB with removable filters


Bonjour
Description claire
Merci
73
Cédric F1TZM
J’aimeJ’aime
Merci Cédric. 73
J’aimeJ’aime
Hello Anthony, I like it!
One question for you : could you please explain why you put the filter after the small PA, and not before the PA? What is the advantage of doing like this?
Thanks for your answer.
J’aimeJ’aime
Pa is class C amplifier. So there is a lot of distortions. low pass filter is necessary at the output.
J’aimeAimé par 2 personnes
Excellent job. Thanks for the time you passed on it. Very clear description from beginning to end of project and well detailed.
J’aimeJ’aime
Bonsoir Anthony,
Project splendide et educatif ! Merci.
Ou est ce qu’on peut trouver les PCB’s citées ci-dessus ? Merci de votre reponse. Meill slts 73 PA5OXW avdeur@home.nl
J’aimeJ’aime
Il suffit de m’envoyer un mail.
J’aimeAimé par 1 personne
merci pour le partage
73
patrick
J’aimeJ’aime
Those who build the beacon using the circuit board must change the LED pin
Replace « #define LED 2 » with « #define LED 8 »
J’aimeJ’aime
Merci Anthony pour cette description 🙂
Fin décembre 2019 le lien qui fonctionne pour télécharger « mini tore calculator » est :
https://www.f6fkn.com/_iserv/dlfiles/dl.php?ddl=minirk12-install.exe
J’aimeJ’aime
Fix wspr generator. Now using WSPRcode.exe. Article updated.
J’aimeJ’aime
très bien il faudra que je pense a refaire un filtre passe bas pour le deuxième module 73 F1PPH
J’aimeJ’aime
Excellent partage! Le vrai esprit Radio Amateur !
73 de Vlad F4FNA
J’aimeJ’aime
What are the values of L1, L2, and L3 an what type of toroid core will work best?
J’aimeJ’aime
for L4 and L5 i use t30-2 red for 40m and t30-2 blue for 80m.
the drain inductor is L3 ft37-43.
pictures on web site.
for L2 i use a vk200. it is for blocking HF on VCC.
if you don’t have it just few turns on ferrite
J’aimeJ’aime
Many Many thanks for helping, Anthony, thanks to you! work very good!!
J’aimeJ’aime
Anthony.. many thanks for all your hard work on this project and for answering my questions succinctly. It’s been working for many months now on three bands with different antennas and good results.
Happy new year.
Regards
Ted G3WBB
J’aimeJ’aime
[…] aan Jan besteed, die houdt van het wat grovere werk. Ook heeft hij wat spulletjes besteld om een WSPR-zender te bouwen bij een amateur in Frankrijk. Het is op basis met een Arduino Nano en er zit wat […]
J’aimeJ’aime
[…] vroeg op het vinkentouw. Hij heeft een WSPR-zendertje gebouwd met een Arduino naar een ontwerp van F4GOH. Het stelt geen r**t voor, een paar draadjes en een printje. Ook de spoeltjes heeft hij keurig […]
J’aimeJ’aime
Bonjour,
Je voulais recompiler le projet (qui fonctionnait parfaitement il y a 3 ans) en utilisant le dernier IDE (2.0.3) et j’ai un échec :
« Compilation error: ‘RTC’ was not declared in this scope »
Pour quelle raison ?
73
Jeff, F5BCB
J’aimeJ’aime
Bonjour JF,
je n’ai encore jamais compilé sur la version 2.0.3
je suis toujours sur la 1.8.15.
Surement un PB de bibliothèque
73
Anthony
J’aimeJ’aime
J’ai tenté avec l’IDE 1.8.13 et j’ai le même problème .
Problème de librairies sans doute.
73
Jeff
J’aimeJ’aime