Posts Tagged “QR code”

Il y a environ une semaine, des signaux étranges et inhabituels sont apparus sur les grabbers QRSS d’Europe et d’Amérique du nord. Ces signaux ont bien vite été identifiés sur la liste de diffusion spécialisée “KnightsQRSS” comme étant des codes barres 2D. Laurent (F1JKJ) aura d’ailleurs été le premier à reconnaître un QR code.

Les QRcodes sont notamment utilisés par certains transporteurs et ils sont apposés sur les étiquettes de nos colis. Plus récemment, une autre application est apparue. Les téléphones portables, devenus de véritables ordinateurs de poche et doté d’appareil photo sont en mesure de décoder une image comprenant un QRcode pour en délivrer le message. On peu ainsi inclure une adresse email ou l’adresse d’un site Web sur une carte de visite ou sur une page publicitaire.

Et bien voila qu’un QRcode arrive sur la bande des 40m et des 30m le week-end du 6-7 novembre 2010.

Voila l’un des QRcode qui à été relevé sur la bande des 40m. Il mesure 100Hz de haut.

Certains amateurs intriqués ont creusé le sujet sur la liste de diffusion et le secret du code à finalement été percé. Pour la résolution de ce mystère, je n’y suis absolument pour rien, je m’en suis même bien gardé, et pour cause, je suis à l’origine de cette petite énigme :)

Revenons un peu plus en arrière… Alors que je regardais une douchette de lecture de code barre à mon travail, il m’est venu à l’idée de transmettre autre chose que des signaux habituels QRSS FSKCW ou DFCW. La question était de savoir si quelqu’un serait en mesure de le déchiffrer une telle transmission inhabituelle. Aussi, j’ai entamé un paquet de tests et de simulations pour savoir dans quelle mesure le décodage était possible.


Première capture de mon émission ! On voit que l’émission monte légèrement car le petit SoftRock n’était pas encore chaud. L’offset ne dépasse néanmoins pas 5 Hz. A noter également le QRM généré. Mon émission sera alors décalée vers le haut (cf. capture ci-dessous)


Le grabber de G6AVK, sur lequel apparaît d’excellents contrastes. Mon émission est ici décalée vers le haut pour ne pas perturber l’émission QRSS en cours.

La famille des codes barres 2D est assez nombreuse et je me suis amusé à en tester une bonne partie via ce site : Online Barcode Generator. J’ai également testé des codes barres 1D dont le célèbre code 39 très présent en Europe et que l’on retrouve sur tout les paquets des produits disponibles dans nos supermarchés. Mais après quelques tests, il s’est avéré que cet encodage n’est pas utilisable et il me fallait par ailleurs une correction d’erreur robuste pour résister aux aléas de la propagation et du QRN. Parmi les codes 2D comme Aztec, MaxiCode, QRcode et Data Matrix, le QRcode est un de ceux les plus connus mais également facilement identifiable. Les 3 carrés sont assez caractéristiques et ce code dispose d’un correction d’erreur intéressante et configurable. Je me suis donc focalisé sur ce code avec un facteur de correction d’erreur de 25% et j’ai réalisé des simulations.

Image originale du QRcode passé à SpectrumLab pour l’émission. A noter que l’image est inversée, le blanc correspondant à la trace qui sera laissée.


Les résultats de l’analyse FFT par SpectrumLab, sur le principe, cela marche parfaitement bien. En pratique, les lignes verticales contenant moins de surface seront transmises avec plus de puissance… (logique)

Il apparaît vite qu’un traitement de l’image est nécessaire (inversion, contraste, conversion bitmap) pour permettre un décodage. Il apparaît aussi que les douchettes professionnelles sont plus tolérantes que les applications pour téléphones portables ou les sharewares disponibles sur Internet. Il  faut dire que ces applications n’ont pas été conçues pour lire et décoder des codes bruités.

Tout ces tests étant terminés, j’ai alors lancé mon émission sur la bande des 40m puis sur la bande des 30m, à raison d’une activité RX/TX de 50%. Le transceiver utilisé était un SoftRock RXTX v6.3, ajusté à une puissance de sortie de 550 mW. L’occupation spectrale était de 80 Hz et de 100Hz pour les deux QRcodes envoyés.

Les deux messages contenus étaient : “WELL DONE / F4GKA QSL PSE 73″ et ” F4GKA QSL PSE 73″.

J’ai suivi avec grande attention tout les messages échangés sur la liste de diffusion et j’ai bien cru que mon message tomberait à l’abandon. Heureusement, plusieurs participants ont relancé le débat (Merci Peter, Bill & William). J’ai également constaté que mon émission n’était pas toujours la bienvenue. En effet, avec mon graphique relativement large (80 et 100Hz), j’ai occupé une bonne place sur les grabbers Européen et j’ai certainement parasité quelques émissions QRSS de très faible intensité. Aussi, j’ai présenté mes excuses aux personnes concernées sur la liste de diffusion. Ceci dit, pour mener à bien ce petit challenge, il aurait été difficile de faire autrement.

Pour conclure, je suis bien content que la solution ait été trouvée et que ce challenge ait été bien accueilli. Je ne renouvellerais cependant pas cet expérience car l’identification étant faite, cela n’aurait plus d’intérêt (ni même un autre code d’ailleurs) et il faut bien rendre les grabber QRSS à leurs utilisateurs :)

Je termine avec un lien portant sur le blog de l’auteur de la réponse. Il s’agit de Scott, AJ4VD qui accuse réception du message sous l’indicatif du radio club W4DFU, et c’est tout à son honneur. Son analyse est consultable ici : Deciphering QR code from Radio Spectrograph.

Encore merci à tous les contributeurs pour ce travail d’équipe !

Comments 3 Comments »