lundi 8 août 2016

Divers: Afficheur NMEA

Ce dernier week-end a bien été occupé à développer un afficheur NMEA destiné à être connecté à un GPS-DO 10MHz. Cet afficheur permettra de vérifier le bon fonctionnement du GPS, et donc du verrouillage du TXCO.

Le dispositif utilise Arduino Nano pilotant un afficheur LCD 2x16 caractères. Le tout est intégré dans un boîtier plastique, l'adaptation de niveau est assurée par un MAX232. L'ensemble est alimenté par la base de temps laquelle transmet aussi le signal 1PPS pour contrôle.


La programmation reste simple quoique s'appuyant sur deux timers, l'un interne destiné à contrôler l'affichage des différentes séquences, le second contrôlé par le signal 1PPS. Aucune des librairies existantes pour l'Arduino ou pour le Teensy  ne gère proprement les erreurs protocolaires. Un automate d'état a donc été réécrit pour traiter chaque trame NMEA sans se limiter à la trame RMC comme le font la majorité des parseurs.


La connexion à base de temps permet de visualiser alternativement le nombre de satellites visibles au regard des 12 pouvant être traités, le niveau d'erreur (PDOP) mais aussi l'heure UTC, l'altitude de l'antenne (posée en haut du pylône) et les coordonnées du lieux en décimal et en 'd.m.s'. Deux symboles animés retranscrivent l'état de la liaison série et du signal 1PPS.

Le seul problème rencontré est celui de l'erreur sur la date. Cette erreur est liée au module GPS utilisé: un Jupiter disposant d'une sortie 10kHz utilisée comme référence de verrouillage. Depuis fin 2015, ce module fournit en effet une date décalée de 1024 semaines en arrière. Une correction dans le logiciel de l'Arduino permet de s'en affranchir.

Problème bien plus gênant, mon dernier Arduino Nano pourtant approvisionné via une boutique sérieuse il y maintenant quelques années s'est mis à transmettre le fameux message indiquant que le chip FT232R est une copie: "NON GENUINE DEVICE FOUND!". Le problème est ici que contrairement à ce qui est annoncé dans la littérature, le message n'est pas transmis par le driver FTDI Windows mais bien par le chip lui-même. La connexion de la platine sur une machine LINUX délivre ce même message. Serait-il possible que, d'une manière ou d'une autre, l'un des drivers de mes machines Windows ait reprogrammé le firmware du faux FT232R. Je n'y crois guère - ce serait une forme d'attaque active - mais je n'ai aucune autre explication à l'heure actuelle.