Merci et à bientôt depuis d’autres latitudes.

Comme certains l’ont peut-être déjà lu ailleurs, ce sont mes dernières semaines au Viêt-Nam, et donc les dernières semaines d’opérations en tant que XV4Y. Je vais bientôt partir découvrir de nouveaux horizons professionnels et challenge personnels. Comme nous vendons la maison, je vais aussi commencer à démonter les antennes dès la semaine prochaine pour ne garder que le dipôle filaire 80m qui lui se retire en moins d’une heure.

Ces dernières années ont été très riches pour moi autour de notre hobby commun : le radio-amateurisme. J’ai pu profiter de plusieurs de ses facettes comme la chasse au DX, les concours, la construction personnelle, les signaux faibles, les antennes et même un peu de réception de satellites. J’ai aussi rencontrer des personnalités intéressantes qui sont venu me rendre visite ici ou par le biais d’internet.

Dans les mois qui viennent mon activité radio sera plus limitée même si je vais emporter dans mes valises un peu de matériel. Je pense que je retrouverai les joies du traffic local en VHF sur relais et les réunions de radio-club où on peut partager ces derniers projets et qui m’ont manquées ces dernières années.

Ce blog en tant que tel n’a plus de raison d’être et sera arrêté d’ici la fin du mois. Toutes les adresses e-mails utilisées pour informer les lecteurs seront bien entendu supprimées dès ce week-end puisque c’est le dernier article. Depuis 2009 j’ai écrit plus de 800 articles sans compter ceux pour les divers magazines en France et aux USA. Tout ces articles seront archivés sur un blog plus “épuré” qui sera hébergé sur QScope.org.

Ce blog avait démarré comme de simples réflexions personnelles, il m’a ensuite permis de partager mes propres découvertes lorsque j’ai repris une activité radio après 10 ans d’inactivité. Béotien en traffic décamétrique, j’ai appris le DX, la propagation en HF, les concours radio, la télégraphie… et vous m’avez suivi.

Je ne donnerai pas de chiffres car on leur fait dire ce que l’on veut, mais le lectorat du blog a dépassé mes espérances et progressé au fil des ans même quand je publiais moins régulièrement. Merci pour cette fidélité qui m’a donné une raison de continuer à écrire et à toujours vouloir apprendre plus.

En guise d’au revoir voici une petite photo récente de ma famille prise sur le marché flottant juste avant le Nouvel An Lunaire. Aussi, si vous entendez ZL/F1TUJ au cours des mois qui viennent, n’hésitez pas à me faire un petit bonjour…

73,
Yannick – XV4Y.

Famille XV4Y (http://xv4y NULL.radioclub NULL.asia/wp-content/uploads/2016/02/DSC_0028 NULL.jpg)

Modification d’une radio DMR bon marché pour envisager les modes D-STAR, P25 et System Fusion

Tytera DM-380 VA3XPR (http://xv4y NULL.radioclub NULL.asia/wp-content/uploads/2016/01/IMG_9729-1024x768 NULL.jpg)Le MD-380 de Tytera est un petit transceiver portable disponible en version VHF et UHF (couvrant les bandes radioamateur) et qui permet de transmettre en analogique FM et surtout en numérique DMR (http://www NULL.va3xpr NULL.net/tyt-md-380-dmr-portable-radio-review/). Son prix très abordable (autour de 110 $US) et sa qualité de fabrication correcte le rendent attractif. Toutefois, les OMs on noté que son logiciel interne (firmware) d’origine est très mal ficelé avec de nombreuses incohérences et bugs. Certains OMs comme DD4CR et W7CPH ont donc commencé à regarder ses entrailles pour s’apercevoir qu’il était construit autour du très connu STM32F405 et donc en principe potentiellement modifiable (http://hackaday NULL.com/2016/01/19/shmoocon-2016-reverse-engineering-cheap-chinese-radio-firmware/). Ils ont réussi à casser la protection RDP et faire le reverse-engineering du firmware d’origine écrit autour de MicroC/OS-II.

La prochaine étape c’est d’écrire un logiciel complet mais à partir de FreeRTOS cette fois. Le groupe d’OM cherche des compétences capables d’implémenter de nouveaux protocoles de transmissions numériques comme D-STAR, P25 ou System Fusion. N’hésitez pas à les contacter si vous pouvez les aider.

Tytera DM-380 ouvert (http://xv4y NULL.radioclub NULL.asia/wp-content/uploads/2016/01/radioapart NULL.png)A noter que d‘autres OMs sur les forums de QRZ.com mettent en doute la faisabilité de la chose (http://forums NULL.qrz NULL.com/index NULL.php?threads/hams-hack-110-dmr-radio-to-allow-support-for-d-star-p25-and-system-fusion NULL.508733/). Pour eux le matériel utilisé par le DM-380 est trop bas de gamme (dérive de la synchro TDMA et premier étage RF trop large) et même le mode DMR est de piètre qualité.

L’article original de VA3XPR (http://www NULL.va3xpr NULL.net/hams-hack-110-dmr-radio-allow-support-d-star-p25-system-fusion/). A noter qu’il comporte certaines imprécisions.

Code source ultra-simpliste pour Arduino/MSP430 d’un VFO à AD9850/AD9851

Prototype kit Balise WSPR DDS XV4Y (http://xv4y NULL.radioclub NULL.asia/wp-content/uploads/2012/12/100_3339 NULL.jpg)Dans un commentaire Sylvain F6GGX m’a demandé après ce bout de code. Il était disponible gratuitement dans la boutique mais comme j’ai désactivé cette dernière il a disparu du site…
Voici donc le code source d’un VFO très simpliste à base de AD9850/AD9851 qui utilise les librairies que j’ai écrites ou adaptées (http://xv4y NULL.radioclub NULL.asia/docs/). Honnêtement je pense pas que ce code soit très utile, rien de particulièrement compliqué et l’ergonomie à 4 boutons n’est pas super. C’est utile en dépannage avec le kit balise WSPR que je produisais mais c’est tout. Le code est écrit pour Energia sur MSP430, le porter sur Arduino (ATMega328) ne devrait poser aucun problème.

/* Simple VFO with DDS for MSP430G2553
 * Code for Energia 009
 
 * By Yannick DEVOS - XV4Y - March 2013
    http://xv4y.radioclub.asia/

    Copyright 2012-2013 Yannick DEVOS under GPL 3.0 license
    Any commercial use or inclusion in a kit is subject to author approval

====
 * Agile Frequency generation using AD9850/9851 DDS
 * Output to Nokia 5110 compatible LCD
 * Check if P2_2 has changed state and switch VFO (like when PTT is pressed to operate split)

Usage for short press of buttons :
- Up / Down      increase or decrease the frequency following the choosen digit
- Left / Right   increase or decrease the digit
- OK             validate the frequency and send it to the DDS
Long press of buttons :
- Left           Set the current VFO to the next band bottom frequency
- Right          VFO A = VFO B
- OK             Switch between VFO A and VFO B

====
Revision history :
v1.00    2013-03-18
         First release

====
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You can download a copy of the GNU General Public License at <http://www.gnu.org/licenses/>
*/

// Here modify to your taste or needs

#define PTT_key          P2_2
#define ANALOG_BUTTONS   A5
#define AUTO_VALID       // Uncomment if you want the DDS frequency to be udapted automatically after each value change

#define DEFAULT_FREQ    8            // Value 8 in Frequencies array is 14000000
// Here under don't touch anything unless you know what you do

#include <legacymsp430.h>
#include <AD9850.h> // Library for AD9850 control by MSP430

#include <LCD_5110.h>

              // Frequencies (1 Hz precision) you can select
const unsigned long int frequencies[] = {
  137000, 471000, 501000, 1830000, 3500000, 5200000, 7000000, 10100000,
  14000000, 18068000, 21000000, 24890000, 28000000, 50000000, 70000000};
  
const byte Analog_Noise = 5;    // Margins for reading analog buttons

boolean   vfo=0, saved_PTT;  // VFO A or B and PTT input state
char      multiplier, aff_multiplier, freq_select=DEFAULT_FREQ;
unsigned  long int frequency_A=frequencies[DEFAULT_FREQ], frequency_B=frequencies[DEFAULT_FREQ], debounce;

char chaine_txt[6] = {' ', ' ', ' ', ' ', ' ', 0x00};


AD9850 myDDS (P1_0, P1_1, P1_2, P1_4);  // Call the AD9850 Library, AD9850 pins for CLOCK, LOAD, DATA and RESET
//AD9850 myDDS (P1_1, P1_2, P1_0, P1_4);  // Call the AD9850 Library, AD9851 pins for CLOCK, LOAD, DATA and RESET

LCD_5110 myScreen(P2_3,    // Chip Select *
         P1_6,    // Serial Clock *
         P2_5,    // Serial Data *
         P2_4,    // Data/Command *
         NULL,    // Reset *
         P1_7,    // Backlight
         NULL);  // Push Button 0

//******************************************************************
// Defining pins mode and initializing hardware

void setup() {
  pinMode(PTT_key, INPUT_PULLUP);

  myDDS.begin();
  
   
  pinMode(ANALOG_BUTTONS, INPUT);

  myScreen.begin();
  myScreen.setBacklight(1);
    
  myScreen.setFont(1);
  myScreen.text(0, 0, "sVFO");
  myScreen.text(0, 2, "AD9850");
  myScreen.setFont(0);
  myScreen.text(0, 4, "v1.00 - XV4Y");
  myScreen.text(0, 5, "Init...");
  
  delay(1000);
  
  myDDS.reset();
  
  myDDS.SetFrequency( frequency_A, 0, false );

  digitalWrite( PTT_key, LOW );

};

//******************************************************************
// Here starts the actual sequence sending

void loop() {
    myScreen.clear();
    myScreen.setBacklight(1);
    myScreen.setFont(1);
    if (vfo == 0) {
      myScreen.text(0, 0, "VFO A");
      myDDS.SetFrequency( frequency_A, 0, false );
    } else {
      myScreen.text(0, 0, "VFO B");
      myDDS.SetFrequency( frequency_B, 0, false );
    };

    myScreen.setFont(0);
    display_freq (frequency_A, 3);
    display_freq (frequency_B, 5);

    while (read_buttons()==5 || read_buttons()==4 || read_buttons()==2) delay(10); // Debounce except for UP/DWN

    while (1) {
      // Update the frequencies display
      if (multiplier > 5) {
        aff_multiplier = multiplier + 2;
      } else if (multiplier > 2) {
        aff_multiplier = multiplier + 1;
      } else {
        aff_multiplier = multiplier;
      };
      myScreen.text(0, 4, "          ");
      if (vfo == 0) {
        myScreen.text(9-aff_multiplier, 4, "^");
      } else {
        myScreen.text(9-aff_multiplier, 4, "v");
      }
      display_freq (frequency_A, 3);
      display_freq (frequency_B, 5);
  
      // Read the analog buttons input
      if(read_buttons()==1) {            // Up we increase frequency
        delay(200);  // Debounce
        if (vfo == 0) {
          frequency_A = frequency_A + powf(10,(float)multiplier);
        } else {
          frequency_B = frequency_B + powf(10,(float)multiplier);
        };
#if defined AUTO_VALID
        break;
#endif

      } else if (read_buttons()==3) {    // Down we decrease frequency
        delay(200);  // Debounce
        if (vfo == 0) {
          frequency_A = frequency_A - powf(10,(float)multiplier);
        } else {
          frequency_B = frequency_B - powf(10,(float)multiplier);
        };
#if defined AUTO_VALID
        break;
#endif

      } else if (read_buttons()==2) {    // Left we increase multiplier
        debounce = millis();
        while (read_buttons()==2) {  //Debounce
          if ((millis()-debounce)>1000) {  // Long press we do "Band UP"
            freq_select++;
            if (freq_select > 14) freq_select = 0;
            if (vfo == 1) frequency_B = frequencies[freq_select]; else frequency_A=frequencies[freq_select];
            multiplier--;
            break;
          };
        };
        multiplier++;
        if (multiplier > 7) multiplier = 7;

      } else if (read_buttons()==4) {    // Right we decrease multiplier
        debounce = millis();
        while (read_buttons()==4) {  //Debounce
          if ((millis()-debounce)>1000) {  // Long press we do VFO A=B
            if (vfo == 1) frequency_A = frequency_B; else frequency_B=frequency_A;
            multiplier++;
            break;
          };
        };
        multiplier--;
        if (multiplier < 0) multiplier = 0;

      } else if (read_buttons()==5) {    // OK we go out
        debounce = millis();
        while (read_buttons()==5) {  //Debounce
          if ((millis()-debounce)>1000) {  // Long press we switch VFO A/B
            if (vfo == 1) vfo=0; else vfo=1;
            break;
          };
        };
        break;   // Short press we just leave the loop so the frequency is transmitted to the AD9850
      }

      // Check if we are transmitting split (momentaneous VFO A->B switch)
      if (saved_PTT != digitalRead(PTT_key)) {
        saved_PTT = digitalRead(PTT_key);
        if (vfo == 1) vfo=0; else vfo=1;
        break;
      };
    }

};


//******************************************************************
// Display the frequency
void display_freq (unsigned long freq, char ligne) {
  myScreen.text(10, ligne, " Hz ");
  chaine_txt[5] = 0x00;
  chaine_txt[4] = 0x30 + (((freq)/1)%10);
  chaine_txt[3] = 0x30 + (((freq)/10)%10);
  chaine_txt[2] = 0x30 + (((freq)/100)%10);
  chaine_txt[1] = '.';
  chaine_txt[0] = 0x30 + (((freq)/1000)%10);
  myScreen.text(5, ligne, chaine_txt);
  chaine_txt[5] = 0x00;
  chaine_txt[4] = 0x30 + (((freq)/10000)%10);
  chaine_txt[3] = 0x30 + (((freq)/100000)%10);
  chaine_txt[2] = '.';
  chaine_txt[1] = 0x30 + (((freq)/1000000)%10);
  chaine_txt[0] = 0x30 + (((freq)/10000000)%10);
  myScreen.text(0, ligne, chaine_txt); 
}

//******************************************************************
// Display a 2 digits number
void display_number (byte number, char column, char ligne) {
  chaine_txt[2] = 0x00;
  chaine_txt[1] = 0x30 + (number%10);
  chaine_txt[0] = 0x30 + ((number/10)%10);
  myScreen.text(column, ligne, chaine_txt);
}

//******************************************************************
// Return a button value depending on the analog reading
byte read_buttons () {
  int value = analogRead(ANALOG_BUTTONS);
  if ( value<(1+Analog_Noise) ) {
    return 1;
  } else if ( value<(78+Analog_Noise) ) {
    return 2;
  } else if ( value<(146+Analog_Noise) ) {
    return 3;
  } else if ( value<(205+Analog_Noise) ) {
    return 4;
  } else if ( value<(255+Analog_Noise) ) {
    return 5;
  } else {
    return 0;
  }
}

Ampli 100W 630m par IK1HGI

Ampli 630m 472KHz 100W IK1HGI (http://xv4y NULL.radioclub NULL.asia/wp-content/uploads/2016/01/schematic-u3-100w NULL.jpg)Antonio IK1HGI nous propose son amplificateur 100W Moyenne Fréquences, spécialement étudié pour suivre une balise Ultimate 3 de QRP Labs (http://funkperlen NULL.blogspot NULL.ch/2015/11/630m-band-ein-100-watt-verstarker-fur NULL.html). La bande de travail ciblée est entre 472 et 479 KHz avec une tension d’alimentation de 13,8V. Il utilise 3 transistors IRFP264 pour un gain de 35dB et un rendement de 65%. Aucun problème pour les modes “continus” comme WSPR même sous 100W.

Mon Grabber QRSS est actif sur 40m

Capture ZL2IK grabber 2014-06-04 80m XV4Y (http://xv4y NULL.radioclub NULL.asia/wp-content/uploads/2014/06/Argo1140 NULL.jpg)Depuis peu, Pete de ZL2IK est actif en transmission QRSS. Il a très souvent décodé et retransmis des capture de mon signal reçu sur 80m, 40m et 30msur son grabber qui est une référence et un des rares à être actif presque 100% du temps depuis ces 5 dernières années (http://zl2ik NULL.com/Grabber NULL.html). Je souhaitais lui rendre la pareil. J’ai donc mis en place un grabber sur 40m. Malheureusement j’ai du faire face à une panne du récepteur SDR SoftRock puis du PC lui-même. Finalement depuis quelques jours cela fonctionne et Pete m’aide à affiner les paramètres.

En attendant, si vous souhaitez essayer d’être reçu au Viêt-Nam, vous pouvez vous connecter sur mon grabber et voir si votre signal QRSS arrive jusque le delta du Mékong (http://qsl NULL.net/x/xv4tuj//grabber/).

Résultats du sondage réalisé par le CQ WW – 2e partie

Sondage CQ WW - Durée d'opération limitée (http://xv4y NULL.radioclub NULL.asia/wp-content/uploads/2015/12/survey2-timebycont NULL.png)Les organisateurs du concours CQ WW ont publié la suite des résultats de leur enquête sur l’avenir du concours et les améliorations à y apporter (http://cqww NULL.com/blog/2015-cq-ww-survey-results-part-2/).

Je vous laisse prendre connaissance directement des graphiques, mais les conclusions importantes sont les suivantes :

  • Une majorité de participants souhaite conserver deux catégories distinctes Single Operator Non-Assisted et Single-Operator Assisted. Seul point notable, c’est que pour les opérateurs européens le résultat est inversé par rapport au reste du monde.
  • Quelque soit la situation (une ou deux catégorie), les personnes sondées disent que cela ne changerait pas leur participation.
  • Une très nette majorité souhaite limiter la durée maximale d’opération durant les 48 heures d’un concours. C’est vrai quelque soit le type d’opération et l’âge. Par contre cette majorité est écrasante pour les européens, peut-être sont-ils défavorisés par rapport aux horaires du concours ou plus liés à des activités familiales.
  • Les participants ne souhaitent pas raccourcir le délai de 5 jours pour remettre un log.
  • 54% des opérateurs pensent qu’il est juste de ne pas compter les QSO avec des indicatifs uniques (uniques pour tout le concours et non pas seulement un OM) car ils sont vraisemblablement issus d’erreurs.
  • Une large majorité souhaite aussi rendre l’envoi de certificat papiers “optionnelle” pour réduire les coûts.

Résultats du sondage réalisé par le CQ WW

CQ WW Sondage Ages (http://xv4y NULL.radioclub NULL.asia/wp-content/uploads/2015/12/survey4-age_EU NULL.png)Il y a quelques semaines, l’équipe qui organise le CQ WW avec à sa tête Randy K5ZD a lancé un sondage auprès des participants au concours (http://xv4y NULL.radioclub NULL.asia/2015/09/03/sondage-par-les-organisateurs-du-concours-cq-ww/). Le but était d’avoir une meilleure connaissance des données démographiques et des motivations des participants. Personnellement j’apprécie cette volonté de vouloir remettre en cause le format de concours existant pour qu’il le mieux possible aux aspirations des contesters actuels et surtout futurs. Attirer de nouveaux membres vers notre hobby doit être une priorité. En tout 5117 réponses ont été reçue ce qui est un échantillon très représentatif à mon avis.

La première partie des résultats tirés de ce sondage est disponible depuis environ une semaine (http://cqww NULL.com/blog/2015-cq-ww-survey-results-part-1/). Sans surprise elle dépeint une population plutôt âgée, même si elle est globalement 10 ans plus jeune en Europe qu’aux USA (les deux gros viviers de participants). Plus jeune signifie souvent moins disponible, car pouvoir consacrer 48 heures d’affilées à une activité n’est pas possible pour tous. Par contre à mon grand étonnement les participants européens sont presque deux fois plus nombreux que les américains, mais le concours CQ WW partie télégraphie tombe souvent durant le week-end de Thanksgiving ce qui limite l’assiduité.

CQ WW Sondage Motivations (http://xv4y NULL.radioclub NULL.asia/wp-content/uploads/2015/12/survey6-mode NULL.png)Autres points intéressants, les motivations sont très diverses mais une grande partie des compétiteurs se considèrent comme “sérieux”. De plus, le mode favori reste la CW ce que je comprends car je la trouve plus adaptée tant au DX qu’au concours (automatisation plus facile, meilleure efficacité…). Il serait intéressant d’avoir des informations plus détaillées (motivations pour les jeunes européens par exemple), mais elles ne sont pas disponibles.

Un deuxième article devrait suivre par le comité du CQ WW qui donne des pistes de changement de règles pour réagir par rapport aux résultats du sondage. Il est maintenant disponible (http://xv4y NULL.radioclub NULL.asia/2015/12/30/resultats-du-sondage-realise-par-le-cq-ww-2e-partie/).

KLog version 9.2.2

KLog EA4TV screenshot (http://xv4y NULL.radioclub NULL.asia/wp-content/uploads/2015/12/Screen-Shot-2016-01-05-at-10 NULL.09 NULL.09 NULL.png)Jaime EA4TV m’a récemment informé d’une nouvelle version de KLog, son logiciel de cahier de traffic gratuit qui fonctionne sous OS X, Linux et Windows.

La version 9.2.2 comprend pas mal de corrections de bogues et quelques nouvelles fonctionnalités (http://jaime NULL.robles NULL.es). Elle est disponible en Anglais, Espagnol (Castillan) et Catalan. Jaime est ouvert à d’autres traductions avec votre aide si vous la souhaitez en français.

Mise à jour firmware 2.02 pour les Kenwood TS-590 et TS-590G [MAJ]

Facade TS-590s (http://xv4y NULL.radioclub NULL.asia/wp-content/uploads/2012/09/1873_800_350 NULL.jpg)Il y a quelques jours Kenwood a diffusé une mise à jour du logiciel interne de son transceiver TS-590 (l’ancien modèle) (http://www NULL.kenwood NULL.com/i/products/info/amateur/ts_590/ts590_update_e NULL.html). Cette version 2.02 ne semble corriger qu’un seul bogue mineur liant changement de Mode et fonction Split que je ne pense pas avoir rencontré. Encore une fois j’apprécie beaucoup que Kenwood prenne le temps de corriger des bogues mêmes mineurs sur un modèle qui n’est plus en production depuis bientôt 2 ans.

Attention, cette mise à jour ne concerne pas le TS-590G qui ne semble pas souffrir du problème.

MAJ : Une nouvelle version du firmware est aussi disponible pour le TS-590G et elle porte le numéro 1.03 (http://www NULL.kenwood NULL.com/i/products/info/amateur/ts_590g/ts590g_update_e NULL.html). Le bogue corrigé est le même.

Des nouvelles positives pour Ten-Tec

Logo Ten-Tec (http://xv4y NULL.radioclub NULL.asia/wp-content/uploads/2015/12/TenTecLogo NULL.png)Comme vous le savez certainement, les derniers mois ont été très difficiles pour Ten-Tec qui est passé au bord d’une disparition pure et simple. RKR n’avait pas fait de secrets en interne sur le fait que leur reprise était temporaire et qu’ils souhaitaient revendre Ten-Tec (http://xv4y NULL.radioclub NULL.asia/2014/05/13/alpha-amplifiers-et-ten-tec-fusionnent/). Tout le stock de Ten-Tec avait été soldé dans une démarche de liquidation du stock et de nombreux équipements vendus à pertes alors que les marges étaient déjà mauvaise (on parle de 200$ perdu par transceiver).

Aujourd’hui un nouveau repreneur privé a fait son apparition et K4SWL nous relate une très longue discussion que John Henry KI4JPL a eu sur un forum à propos de l’avenir de l’entreprise et son implication dans le renouveau technique de la gamme (http://qrper NULL.com/2015/12/ten-tec-has-a-new-owner-with-a-long-term-vision/). Les projets semblent sur le long terme et si les finances le permettent de nouveaux produits verront le jour. L’article en question est plutôt long et je ne peux pas vous en faire une traduction. Reportez-vous au site de QRPer.com et utilisez les traducteurs de Google ou Bing pour en comprendre les grands traits.

Archives des chroniques hertziennes de XV4Y, ZL4YY

WordPress » Erreur

Il y a eu une erreur critique sur ce site.

En apprendre plus sur le débogage de WordPress.