WSPR autonome

Le petit montage WSPR que j’avais commencé à fabriquer fonctionne ! 🙂 Rien de bien sorcier: un oscillateur quartz pour lequel on fait varier légèrement fréquence en jouant sur la capacité d’une diode, un étage de sortie et un microcontrôleur qui pilote le timing des différents symboles encodés.

En fait, les gens qui utilisent des kits QRSS pourraient facilement modifier le leur pour en faire un émetteur WSPR autonome, car les segments WSPR et QRSS sont très proches sur la bande des 30m.

Pour mon montage, j’ai utilisé un contrôleur Ardiuno, et c’est aussi ma première utilisation de cette plate-forme. En une phrase : c’est simple, bien pensé, et ultra-fastoche à programmer 🙂

Bref, pour les bricoleurs ou les curieux, voici le code :

/* WSPR Controler
 * VA2GKA, from scratch, Go :)
 * Tone separation: 1.4648 Hz (total = 5.8592 Hz)
 * Number of symbols: 162
 * Keying rate: 12000/8192 = 1,46484375 baud
 * Duration of transmission: 162 x 8192/12000 = 110,592s
 * Wait time: 9,408 (9408000us)
 * Symbole duration: 0,68266667s (682667us)
 */

int wsprPinA = 13 ;
int wsprPinB = 12 ;
int wsprReset = 11 ;
int counter = 0;
char symbol;

/* Sequence pour VA2LTF... */
char sequence[] = {
3,3,0,2,2,0,0,0,3,0,2,2,1,1,3,2,2,2,1,0,2,1,0,3,3,1,
3,0,2,0,2,2,0,0,1,0,0,1,2,3,2,0,2,2,0,2,3,0,3,3,0,2,
3,3,0,1,2,0,2,3,1,2,3,2,2,0,2,1,1,2,3,2,1,2,3,2,3,0,
0,3,2,0,1,2,3,3,2,2,0,1,3,0,3,2,1,0,0,0,1,0,2,2,0,0,
3,2,2,1,0,2,1,3,3,2,1,1,2,2,1,1,2,3,0,2,2,1,1,3,2,2,
0,2,0,1,2,3,0,0,3,1,0,2,0,0,0,2,2,1,3,0,3,2,1,1,0,0,
2,3,1,0,0,2};

void setup() {
  pinMode(wsprPinA, OUTPUT);
  pinMode(wsprPinB, OUTPUT);
  pinMode(wsprReset, INPUT);
  //attachInterrupt(0, intReset, RISING);
}

void loop() {
  counter = 0;
  for (;counter> 1) );
    symbol = sequence[counter];
    digitalWrite( wsprPinB, (symbol >> 1) );
    symbol = sequence[counter];
    digitalWrite( wsprPinA, (symbol & 1) );
    delay(682.667);
  }
  //digitalWrite( wsprPinA, LOW );
  //digitalWrite( wsprPinB, LOW );
  delay(9408);
}

void intReset() {
  counter = 0;
}

Et voici un petit aperçu d’une émission avec l’émetteur :

Deux émissions WSPR de 2 minutes visibles (waterfall horizontal)

A noter que j’ai résolu mes petits problèmes de stabilité. Je pourrais encore améliorer un peu l’oscillateur avec un contrôle de température au niveau de quartz.

Fabrication d’un MEPT

Dernièrement, je m’étais amusé avec des montages 3D. C’est bien, simple et rigolo, mais j’ai vite compris le revers de la médaille. Loin du plan de masse, avec des fils qui font des détours dans tous les sens, je me suis vite retrouvé avec des inductances parasites et des signaux indésirables, avec pour conséquence une petite dérive hasardeuse de mon oscillateur (toute relative puisqu’elle n’excédait pas +/- 8Hz).

Donc on enlève tout et on recommence, cette fois-ci à plat ! Et ça donne ceci :

L’oscillateur, l’étage de sortie et le filtre qui arrive sur une dummy load (autre image ici)

A noter qu’entre temps, le montage à bien évolué. L’oscillateur de type Colpitt s’est vu doté d’un étage de sortie basé sur un PNP 3906. Pour une grande partie des MEPT, l’étage de sortie est constitué d’un MOSTFET comme un BS170 ou un 2N7000. C’est tout à fait adapté (haute impédance d’entrée et faible en sortie), mais je voulais juste tenter quelque chose de différent. Un PNP monté en émetteur commun devrait pouvoir faire le même travail, et un 3906 peut monter jusqu’à 200mA, ce qui est largement suffisant pour les 250mW de sortie que je visais.

La modulation FSK est faite avec une diode électroluminescente, très bonne idée que j’avais repérée il y a quelque temps sur le site de Hans (G0UPL). Un petit microcontrôleur devrait piloter tout ceci bientôt.

Voilà le schéma pour les curieux :

 

Schéma de la partie centrale de mon petit MEPT

 J’ai ensuite modifié le zinzin pour pouvoir en faire un WSPR autonome. L’astuce n’est pas bien compliquée, il faut juste balancer une séquence de 162 symboles sur deux minutes environ (pour le détail du protocole, voir la doc. de K1JT). Il n’y a que 4 états avec WSPR et 2 bits suffisent donc. Une échelle de résistance 2R-R fonctionne donc à merveille pour un simple petit DAC. Côté réalisation, voici ce que cela donne :

 

 La dernière version de la platine, avec les 2 boutons à l’arrière pour piloter les deux états FSK.

Ça marche au poil pour la modulation 2 bits, mais il faudra attendre une autre version pour arriver sur les logs de WSPRnet car mon cristal est axé sur 7MHz et non sur 7.038. Qu’à cela ne tienne, j’ai du 10.140MHz, j’irais donc prochainement sur la bande des 30m 🙂

Coté qualité du signal, pas de surprise à l’oscillo (normal vu le filtre 7 pôles).

Peu informatif par rapport à un analyseur spectral, mais permet néanmoins de voir que les tension de sorties sont correctes

La stabilité me chagrine un peu par contre. Il est stable à +/-1 Hz, ce qui est déjà pas mal, mais limite pour du WSPR ou comme osc. de référence pour des fréquences plus hautes. Je vais encore regarder du côté du découplage du 1er transistor (3904) car ce n’est pas impossible que ces mini-fluctuations proviennent de charges parasites. Voici une capture d’écran du grabber :

 

Grabbeur QRSS axé sur la fréquence du MEPT

Un de ces prochains week-end, VA2LTF devrait donc arriver sur le 40m. Allumer vos grabber QRSS :p

Jeu des différences : L’OM attentif aura remarqué une erreur flagrante sur les photos (par rapport au schéma). Cette erreur n’a cependant pas d’influence sur le bon fonctionnement du MEPT. Le premier qui la reporte aura droit à 1 bon point 🙂