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.

Be Sociable, Share!
4 Responses to “WSPR autonome”
  1. Yan - XV4Y says:

    Super, ton code est très épuré et lisible. Quand j’aurais un peu de temps je ferais un petit essai en branchant l’Arduino sur ma balise G0UPL/G0XAR. Le code devrait tenir dans l’ATTiny13 livré avec le kit mais il faudra utiliser certaines broches en sortie plutôt qu’en entrée et “recâbler” un peu le circuit.

    A+,
    Yan.

  2. Guenael says:

    Merci pour ton commentaire et bonne chance pour ton adaptation !

  3. psyke says:

    Bonjour, du coup, avez-vous déterminé exactement d’où venaient les problèmes de stabilité de votre oscillateur ?
    Etait-ce un élément particulier qui posait problème, ou avez-vous révisé votre montage dans sa globalité ?

  4. Guenael says:

    J’ai suspecté et testé bien des choses (lumière sur la led, stabilité d’alim, remontée RF après la diode, fuite capa après quartz, etc…) mais au final, une petite capa (100n) de découplage bien proche du 1er transistor à été le patch le plus efficace! Je pense que ce sera difficile de pousser plus loin, car mon petit montage pattes en l’air ne doit pas aider…
    Je prendrais une photo du nouveau montage pour la bande des 30m.

  5.  
Leave a Reply

Merci de remplir le Catcha ci-dessous pour prouver que vous êtes humain / Prove you are human by reading this resistor:
0Ω+/- 5%

0
0
1
2
3
4
5
6
7
8
9

0
0
1
2
3
4
5
6
7
8
9

0
0
1
2
3
4
5
6
7
8
9

5
5
10
20

Faites correspondre chaque glissière aux couleurs de la résistance. Une fois validé correctement, votre commentaire sera publié immédiatement. Si vous ne voyez pas les glissières, vérifier que JavaScript est bien activé sur votre navigateur. Ce système est un anti-spam / anti-bot, merci de votre compréhension.

Cliquer ici pour un autre résistance.

Si vous souhaitez en savoir plus sur les résistances et le code des couleurs, consulter la page Wiki ici.