ASTROSAUCATS - Astronomie Gironde 33 (AG33)
 
Multivers     Sociaux
Le deal à ne pas rater :
Cartes Pokémon : la prochaine extension Pokémon sera EV6.5 Fable ...
Voir le deal

Partagez
 

 Synchronisation de l'horloge d'un PC (au 1PPS d'un GPS) pour les occultations

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
LostFred
Membre
Membre
LostFred

Masculin Messages : 230
Date d'inscription : 24/12/2017
Age : 52
Localisation : Bordure extérieure
Emploi/loisirs : Electronique, radio, bidouille, Astro
Humeur : N'en fini pas d'apprendre

Synchronisation de l'horloge d'un PC (au 1PPS d'un GPS) pour les occultations Empty
MessageSujet: Synchronisation de l'horloge d'un PC (au 1PPS d'un GPS) pour les occultations   Synchronisation de l'horloge d'un PC (au 1PPS d'un GPS) pour les occultations I_icon_minitimeJeu 21 Sep 2023, 16:06

Voici le résultat d’une bidouille estivale que je voulais réaliser depuis un moment.
Comme ca me semble marcher plutôt bien, je partage.

L'idée de départ était de réaliser un dongle USB permettant de synchroniser l’horloge du PC avec un signal 1PPS sans aucun accés au reseau (offline) pour une utilisation en nomade.
La précision devait également être suffisante pour permettre une utilisation sur des occultations.
Voila pour le cahier des charges.

Précision suffisante, c’est un peu vague, disons <1ms.
Autre critère important, ce dongle se devait d’être simple à réaliser mais aussi à mettre en œuvre, et pour un cout moindre.

Comment ça se présente?

Synchronisation de l'horloge d'un PC (au 1PPS d'un GPS) pour les occultations Overal10

et à l’intérieur:

Synchronisation de l'horloge d'un PC (au 1PPS d'un GPS) pour les occultations Protoi10

Voila pour le proto.
C’est un peu de la microchirurgie, mais l’intégration/miniaturisation est aussi mon kiff, et ce n’est pas la première fois (contrôleur résistance chauffante ultra nomade, dongle GPS pour raquette Synscan).

Pour faire qqch de propre et surtout arriver à une version finale, j'ai lancé qqs PCB, ce qui évitera le coté “filaire-3D” qui n’est pas compatible avec la reproductibilité.
Voila à quoi ça ressemble:

Synchronisation de l'horloge d'un PC (au 1PPS d'un GPS) pour les occultations Finalv10



Comment ça marche?

Partie hardware:

Je pense que c’est la partie la plus simple, il n’y a pas grand chose mais chaque référence est importante.

-un module GPS intégrant un module de chez U-Blox (NEO-6M) et une antenne patch (utilisé sur les drones). Ce module GPS devait avoir une sortie 1PPS (et pas juste une led)
-un module driver USB gérant le contrôle de flux: ici un TinyLily Mini USB Adapter (mais qui semble difficile à trouver maintenant) équipé d'un FT231XS (moins populaire que le 232 mais aussi moins en “tension” sur les appros ces derniers temps…)
-un boitier miniature (merci Ali)
-le cable USB
-le PCB qui va bien (voir version finale)

cout hardware << 30€ (à la louche)!!!



Partie soft:

On utilise le client/seveur de Meinberg dont le rôle est de comparer/asservir l’horloge du PC à un serveur externe. Le but ici est de l'utiliser offline pour asservir l'horloge du PC au pulse 1PPS du module GPS (ce signal est extremement précis et synchrone à chaque seconde).

Ce 1PPS ne transporte aucune information (de localisation), mais marque chaque seconde avec une précision inférieure à la microseconde (mais on n'ira pas jusqu'à là...).



Dans cette application, 2 soft, fournis par Meinberg, seront utilisés:

*le client/serveur (NTP package with IPv6 support for Windows XP and newer pour Windows, mais peut etre installé sur d'autres plateformes)

Pour les puristes, le package NTP peut etre recompilé depuis les sources (en bas de https://www.ntp.org/downloads/)



*NTP Time Server Monitor (ne tourne que sous Windows), https://www.meinbergglobal.com/english/sw/ntp-server-monitor.htm

C'est une couche graphique bien pratique qui permet d’avoir une vue globale de la config et du fonctionnement. Mais dans une fenêtre de terminal, en faisant

Code:
ntpq -p

, on obtient la meme chose.


Un autre outil bien pratique, c'est le plotter de log:

* NTPplotter (https://www.satsignal.eu/software/NTPplotter.zip)

Juste pour tracer à posteriori les log obtenus.



Jusqu'à la, il n'y a rien d'exceptionnel, l’installation et la configuration de ces softs sont connus et documentés (http://www.satsignal.eu/ntp/setup.html).

Ca se corse lorsqu'on veut synchroniser en utilisant le 1PPS pour s’affranchir d’un accès réseau.

Ce signal (logique) va etre appliqué sur la broche DCD du driver USB de façon à synchroniser la trame GPS avec ce 1PPS.
Malheureusement, les drivers de chip USB standards ne gèrent pas tous ce type de synchro (on oublie le CH340).

C’était simple sur les anciens PC en RS232, mais en USB on n’a plus accès aux signaux de contrôle de flux. D'ou l'idée d'utiliser une dll particulière développée par des gens ferus de serveurs NTP, et reprise par Meinberg.

La procédure d'installation est décrite là ( https://support.ntp.org/Support/InstallingNTP#Section_4.6.1. bas de page) et est relativement simple: elle consiste à créer 2 nouvelles variables d'environnement, pour avoir l'image du screenshot suivant:

Synchronisation de l'horloge d'un PC (au 1PPS d'un GPS) pour les occultations Envvar10


Maintenant que tout est installé, il reste une configuration à réaliser.
C'est un peu long (le temps que tout se stabilise à chaque fois), mais c'est nécessaire (c’est pour compenser certains délais additionnels introduit par votre PC).
Le but est de calibrer une constante (timer2 dans le fichier de config) par tâtonnement. Oui, sa valeur est dépendante de la machine utilisée tout simplement.



Comment utiliser?

-Une fois que le PC est démarré, brancher le dongle

-Attendre qu’au moins 4 satellites soient acquis et que le 1PPS soit généré (la LED 1PPS doit clignoter). Ca dure 4-5min.

-Lancer alors Meinberg Monitor en mode admin

-Vérifier que la synchro est faite et c’est tout.



Les resultats:


Une fois tout ça réalisé, l'horloge du PC est synchronisée au 1PPS du module GPS.

Voici la vue du monitoring. La synchro est indiquée par le “o” dans la colonne à gauche de la colonne Remote.

Synchronisation de l'horloge d'un PC (au 1PPS d'un GPS) pour les occultations Locked10


Les résultats vont dépendre de chaque PC et surtout de l’occupation CPU.

Pour un laptop (celui qui me servira aux acquisitions d’occultations):

Stabilité sur le long terme (8 heures environ)

Synchronisation de l'horloge d'un PC (au 1PPS d'un GPS) pour les occultations Offset10

Distribution de l’offset sur ce lapse de temps:

Synchronisation de l'horloge d'un PC (au 1PPS d'un GPS) pour les occultations Offset11

Ce resultat montre une dispersion de l'offset (qui est la difference temporelle entre l'horloge du PC est le 1PPS) bien inférieure à 100µs.
C'est plutôt correct.


Pour ce qui est du temps d’établissement (verrouillage de la PLL), voici une vue typique du régime transitoire de stabilisation.

Synchronisation de l'horloge d'un PC (au 1PPS d'un GPS) pour les occultations Warmup10

Le système est verrouillé en quelques minutes.


Recommandations:

Si on veut réaliser une synchro efficace il faut impérativement arrêter les taches en arrière plan susceptibles d'occuper le CPU périodiquement (discord est très gourmand, Firefox aussi).

La preuvue, voici une courbe d’offset perturbée par Discord et Firefox:

Synchronisation de l'horloge d'un PC (au 1PPS d'un GPS) pour les occultations Discor10


Pour finir, ce dongle a été installé et utilsé sur W10 et W11 avec succès.


L'implémentation sur Linux (par exemple) doit etre possible, mais comme je n'y connais rien...
Alors si un linuxien est tenté, ca pourrait etre interressant.

Voilà, ce petit module permet de synchroniser, pour une somme modique, le PC avec un signal de référence (1PPS) avec un précision intéressante, bien inférieure à 1ms, ce qui devrait être suffisant pour le timing d’occultations.
Mais attention, cette précision ne fait pas tout: en effet, le logiciel d'acquisition, la camera utilisée et le firmware de la cam contribuent aussi à tout dégrader.

Si vous etes arrivé jusqu'à là, tout d'abord chapeau (j'ai taché d'etre conscis) et merci.

Et maintenant?
Et bien j'aurais aimé confronter mes maigres résultats à ce qui est considéré comme "la référence", je veux parler de la TimeBox.

Donc si vous avez une TimeBox (ou si vous connaissez qqn qui en a une), et que vous etre pret à me la préter pour comparaison, ce serait génial!!!
Revenir en haut Aller en bas
 
Synchronisation de l'horloge d'un PC (au 1PPS d'un GPS) pour les occultations
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

 Sujets similaires
-
» Discussion autour du matos
» PO pour mon C8
» appel à occas
» Réglage de la pression de la vis sans fin sur EQ6
» Solaire à Léognan vendredi 23 mars 2018

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
ASTROSAUCATS - Astronomie Gironde 33 (AG33) :: Le coin des passionnés :: Techniques et bricolages-
Sauter vers: