Cette balise a été conçue pour émettre automatiquement des trames WSPR sur la bande radioamateur des 20 mètres.
Elle fait suite à la V1.0 qui elle n’était pas connectable.
Présentation
Le projet repose sur un ESP32U qui assure la gestion générale de la balise :
Génération des trames WSPR, programmation des émissions, affichage, interface utilisateur et serveur Web.
Une horloge DS3231 permet à la balise de fonctionner de manière totalement autonome, sans nécessiter de connexion Internet permanente.
Le Wi-Fi reste une fonction optionnelle destinée principalement à la configuration et à la synchronisation de l’heure.
La chaîne générale est :
ESP32U → Si5351 → filtre passe-bas → amplificateur RF → filtre passe-bas de sortie
ESP32U – Le contrôleur principal
L’ESP32U constitue le cœur de la balise.
Il assure notamment :
- la génération du message WSPR ;
- le pilotage du Si5351 ;
- la lecture de l’horloge DS3231 ;
- le calcul des créneaux d’émission ;
- la gestion de l’écran TFT ;
- la lecture de l’encodeur KY-040 ;
- la gestion du contact CW manuel ;
- la mémorisation des paramètres ;
- la connexion Wi-Fi optionnelle ;
- le fonctionnement du serveur Web.
Si5351 – Générateur RF
Le Si5351 génère directement le signal RF utilisé pour l’émission.
Il est piloté par l’ESP32 via le bus I²C.
Pour le WSPR, l’ESP32 fait varier très légèrement sa fréquence afin de produire les quatre tonalités FSK du protocole WSPR.
Le niveau de sortie du Si5351 peut être sélectionné par logiciel :
2 mA / 4 mA / 6 mA / 8 mA et dans mon montage, le réglage 4 mA a notamment été testé.
Après filtrage et sur une charge de 50 Ω, nous avons mesuré environ +5 dBm.
Filtre passe-bas après le Si5351
Le signal brut produit par le Si5351 est de nature numérique et contient donc de nombreuses composantes harmoniques.
Un filtre passe-bas 20 mètres est installé après le générateur.
Son rôle est de conserver essentiellement le fondamental autour de 14 MHz et d’atténuer les harmoniques supérieures.
La mesure effectuée après ce filtre montre une belle sinusoïde d’environ 1,12 Vpp sur 50 Ω.
Amplificateur RF
Un premier amplificateur a été réalisé autour d’un 2N5109.
Son rôle est d’amplifier les quelques milliwatts provenant du Si5351 pour obtenir une puissance RF suffisante pour l’émission WSPR.
Les essais ont montré qu’il était possible d’obtenir plusieurs centaines de milliwatts, mais également que l’étage devenait sensible à la charge présentée par le filtre de sortie.
Un courant de repos d’environ 60 mA a notamment été testé avec un échauffement raisonnable du transistor.
Un nouvel étage utilisant un 2N3866 est également étudié afin d’obtenir une puissance de l’ordre de 300 mW avec une bonne stabilité. C’est ce dernier qui a été retenu.

Filtre passe-bas de sortie
Un deuxième filtre passe-bas est prévu après l’amplificateur RF.
Il est indispensable, même si un filtre est déjà présent après le Si5351.
En effet, l’amplificateur RF peut lui-même recréer des harmoniques. C’est le même que celui trouvé dans la V1.0
La chaîne devient donc :
Si5351 → LPF → amplificateur → LPF → antenne
Le filtre final doit notamment réduire les composantes à :
- 28 MHz : deuxième harmonique ;
- 42 MHz : troisième harmonique ;
- Ainsi que les harmoniques supérieures.
DS3231 – Horloge temps réel
Le DS3231 fournit à la balise une horloge précise et indépendante.
C’est particulièrement important pour le WSPR, car les émissions doivent commencer sur des créneaux temporels précisément définis.
La présence du DS3231 permet à la balise de continuer à fonctionner même si :
- le Wi-Fi est absent ;
- la box Internet est arrêtée ;
- Internet est indisponible.
Le Wi-Fi n’est donc pas nécessaire au fonctionnement normal de la balise.
L’heure peut également être synchronisée par NTP lorsque le Wi-Fi est disponible.
Écran TFT ST7735 128 × 160
L’écran couleur ST7735 constitue l’interface principale de la balise.
L’affichage a été spécialement conçu pour rester lisible sur ce petit écran.
Il indique notamment :
- QRZ
- Locator
- La fréquence d’émission ;
- L’heure UTC ;
- La puissance WSPR programmée ;
- L’heure du prochain créneau d’émission.
Pendant une transmission WSPR, un écran spécifique indique que la balise est en émission.
Le programme a également été optimisé pour éviter le clignotement de l’écran lors de la mise à jour de l’heure.
Encodeur KY-040
Le KY-040 permet de commander localement la balise sans ordinateur ni téléphone.
La rotation de l’encodeur permet de parcourir les différentes options du menu et son bouton-poussoir permet de sélectionner une fonction.
Il permet notamment d’accéder aux réglages d’émission et aux fonctions principales de la balise.
Contact CW manuel
Une entrée supplémentaire de l’ESP32 est réservée à un contact CW.
Lorsque ce contact est fermé, la balise peut produire une porteuse RF continue.
Cette fonction est particulièrement utile pour :
- contrôler la fréquence ;
- régler l’amplificateur RF ;
- régler les filtres ;
- mesurer la puissance ;
- effectuer les mesures à l’oscilloscope ;
- tester l’antenne.
Elle évite d’avoir à attendre une trame WSPR pour effectuer les réglages RF.
Interface Web Wi-Fi
Le Wi-Fi est volontairement optionnel.
Lorsque la balise réussit à se connecter au réseau Wi-Fi, son adresse IP est affichée pendant environ 3 secondes au démarrage.
Il suffit ensuite d’entrer cette adresse dans le navigateur d’un ordinateur, d’une tablette ou d’un smartphone connecté au même réseau.

La page Web permet notamment :
- De visualiser l’état de la balise ;
- De modifier l’indicatif ;
- De modifier le locator ;
- De régler la fréquence ;
- De régler la puissance WSPR déclarée ;
- De modifier l’intervalle entre les transmissions ;
- De régler manuellement le DS3231 ;
- De synchroniser l’horloge par NTP ;
- D’appliquer une correction au Si5351 ;
- D’activer ou désactiver les transmissions ;
- De consulter le compteur de trames ;
- De consulter la température du DS3231 ;
- De redémarrer l’ESP32.
Les paramètres importants sont mémorisés dans la mémoire non volatile de l’ESP32.
Fonctionnement sans Wi-Fi
L’une des caractéristiques importantes du projet est son autonomie.
Une fois configurée, la balise peut fonctionner simplement avec :
ESP32U + DS3231 + Si5351 + écran + étage RF
Le DS3231 fournit l’heure et l’ESP32 détermine automatiquement les prochains créneaux d’émission.
Le Wi-Fi peut donc être indisponible sans empêcher les transmissions WSPR.
Après avoir branché le montage sur mon antenne « en V » à 1,80m du sol, les repprts sont arrivés sur le site WSPR.MAP.
Architecture générale
La balise complète peut être résumée ainsi :
DS3231
↓
ESP32U
↓
Si5351
↓
Filtre passe-bas 20 m
↓
Amplificateur RF
↓
Filtre passe-bas 20 m de sortie
↓
Charge 50 Ω / antenne
Objectif final
L’objectif est d’obtenir une petite balise WSPR 20 mètres d’environ 300 mW, autonome, stable en fréquence et suffisamment propre spectralement pour être raccordée à une antenne.
Le choix d’une puissance relativement faible est parfaitement adapté au principe du WSPR : Ce mode est précisément conçu pour permettre la détection de signaux extrêmement faibles sur de très longues distances.
La priorité du projet n’est donc pas d’obtenir la puissance maximale, mais d’obtenir une émission stable en fréquence, correctement synchronisée et spectralement propre.
Voici le tableau de câblage complet de la balise WSPR 20 m F4HQJ avec :
- ESP32U
- Si5351
- DS3231
- ST7735 128×160
- KY-040
- Contact CW manuel
Alimentation
| Module | Alimentation |
| ESP32U | 5 V sur VIN ou USB |
| Si5351 | 3,3 V |
| DS3231 | 3,3 V |
| ST7735 | 3,3 V |
| KY-040 | 3,3 V |
| Contact CW | Aucun |
Toutes les masses doivent être reliées ensemble.
Si5351
| Si5351 | ESP32U |
| VCC | 3V3 |
| GND | GND |
| SDA | GPIO21 |
| SCL | GPIO22 |
| CLK0 | Vers filtre passe-bas 20 m |
Découplage :
- 100 nF entre VCC et GND
- 10 µF entre VCC et GND
au plus près du module.
DS3231
| DS3231 | ESP32U |
| VCC | 3V3 |
| GND | GND |
| SDA | GPIO21 |
| SCL | GPIO22 |
Le DS3231 partage le bus I²C avec le Si5351.
Découplage :
- 100 nF
- 10 µF
Écran ST7735
| ST7735 | ESP32U |
| VCC | 3V3 |
| GND | GND |
| SCL | GPIO18 |
| SDA (MOSI) | GPIO23 |
| RES | GPIO4 |
| DC | GPIO2 |
| CS | GPIO5 |
| BL | 3V3 |
KY-040
| KY040 | ESP32U |
| + | 3V3 |
| GND | GND |
| CLK | GPIO32 |
| DT | GPIO33 |
| SW | GPIO25 |
Ajouter :
- 100 nF entre + et GND
Contact CW manuel
| Contact | ESP32U |
| Une borne | GPIO26 |
| Autre borne | GND |
Configuration :
GPIO26 —- contact —- GND
L’entrée est configurée en :
INPUT_PULLUP
Sortie RF
| Élément |
| CLK0 Si5351 |
| Filtre passe-bas 20 m |
| Atténuateur 6 à 10 dB |
| Driver RF |
| Filtre passe-bas final |
| Antenne ou charge 50 Ω |
Découplage alimentation ESP32
Au plus près de l’ESP32 :
| Valeur | Type |
| 100 nF | céramique |
| 10 µF | électrolytique |
| 470 µF | électrolytique |
Découplage alimentation driver RF
Sur le +13 V :
+13V
│
470µF
│
100nF
│
RFC
│
Collecteur
Le 100 nF doit être au plus près du transistor.
Résumé des GPIO utilisés
| Fonction | GPIO |
| I²C SDA | 21 |
| I²C SCL | 22 |
| ST7735 MOSI | 23 |
| ST7735 SCK | 18 |
| ST7735 CS | 5 |
| ST7735 DC | 2 |
| ST7735 RESET | 4 |
| KY040 CLK | 32 |
| KY040 DT | 33 |
| KY040 SW | 25 |
| Contact CW | 26 |
Bonne réalisation. F4HQJ
Vous pouvez contacter Frédéric à l’adresse ci-dessous:




