Obtenez une heure précise sur votre PC
Introduction
Depuis quelques temps, et suite à l’excellent compte-rendu de F4DLM relatant ses essais en WSPR pendant sa participation à l’expédition TO7CC sur l’Ile de la Réunion, je m’intéresse à ce mode numérique utilisé à des fins d’étude de propagation, fort peu gourmand en énergie et en bande passante (6 Hz). Néanmoins, une condition indispensable à son exploitation est d’avoir une machine qui génère l’émission (et/ou qui décode la réception) qui soit parfaitement à l’heure. Sans entrer dans les détails techniques du WSPR (qui feront peut-être l’objet d’un autre article), une précision d’une ou deux secondes maximum est requise.
Force a été de constater que mon PC était loin du compte, et les paramètres par défaut que j’utilisais nécessitaient régulièrement une synchro forcée pour être dans les clous. La « synchro Internet » (Propriétés de Date et Heure / Temps internet / Synchro auto) ne suffisait pas à maintenir une précision suffisante. J’avais parfois plusieurs dizaines de secondes de décalage. Même en diminuant la période de mise à jour à 6h (par le truchement de la modification d’une clé de registre), ça ne suffisait pas encore. Il est certes est fort probable que l’oscillateur dont est équipé mon PC soit particulièrement mauvais (dérive avec le temps et la température), mais il était indispensable de le « discipliner » !
Le service W32Time qui, comme son nom l’indique, gère l’heure dans Windows n’est en fait qu’un ersatz de NTP, protocole connu et reconnu pour assurer cette fonction. Les périodes de mise à jour de W32Time sont longues et non auto-adaptatives, entre autres inconvénients. Microsoft reconnait lui-même qu’avoir une ou deux secondes de précision n’est pas vraiment possible avec W32Time. J’ai donc décidé de désactiver le service W32Time, et de le remplacer par un véritable service NTP.
Installation
Le package d’installation de NTP pour Windows se trouve ici. On trouve également sur cette page un utilitaire graphique permettant un paramétrage plus fin, et un suivi des données (notamment le décalage par rapport à l’heure « vraie ») par le truchement de fichiers de statistiques générés à la demande.
L’installation ne nécessite que de suivre les écrans et d’utiliser les choix par défaut (sauf si vous savez ce que vous faites). A noter néanmoins qu’il est conseillé de choisir le pool de serveurs le plus proche de chez vous (si vous êtes en France Métropolitaine, ce sera fr.pool.ntp.org). De plus, avant même de lancer l’installation, faites une synchro forcée de votre horloge. Cela facilitera le travail du nouveau service NTP à son démarrage. Après l’installation et son lancement automatique, vérifiez que W32Time est bien désactivé (Propriétés de Date et Heure / Temps internet / Synchro auto doit être décochée). Une fois tout en place, il ne reste plus qu’à attendre quelques minutes (ou quelques heures…) pour constater l’efficacité de ce nouveau service.
Fonctionnement
Le plus simple est d’installer le moniteur graphique (cf lien plus haut), de le lancer, et aller dans l’onglet NTP Status.
Une liste de serveurs doit être affichée. Celui en vert est celui sur lequel se base à cet instant le service pour corriger votre horloge. Les autres en jaune sont également candidats pour une synchro si besoin. Si certains sont en rouge, ils sont pour l’instant écartés, soit parce qu’ils sont trop éloignés statistiquement, soit que la liaison avec le serveur est trop instable. Les deux paramètres les plus intéressants sont l’offset (décalage entre l’heure vraie et votre horloge, exprimé en ms), et le jitter (dispersion). Le poll indique la période (en secondes) à laquelle le service refait un tour des serveurs et ajuste l’oscillateur de votre horloge. Ce qu’il faut bien comprendre, c’est que le service ne met pas brutalement et simplement votre horloge à jour, mais l’ajuste par petites touches régulières, de plus en plus fines. Et au fur et à mesure du temps, la période de mise à jour s’adapte en fonction des écarts. Voici par exemple ci-dessous l’évolution du décalage entre l’heure vraie et celle de mon horloge (tracé rouge) sur une dizaine d’heures.
On constate des amplitudes d’évolutions de plus en plus petites au fur et à mesure du temps. Les rebonds sont causés par une augmentation de la période de polling, qui diminue de nouveau après quelques minutes car l’écart augmente trop. Comme indiqué en introduction, la stabilité de l’oscillateur de ma machine est probablement assez mauvaise, et les évolutions de la température du boitier en fonction de l’heure de la journée et/ou de l’utilisation du CPU ne doivent pas aider. Cela dit, même obtenir une horloge précise à +/- 100 msec me suffit amplement !
Bien entendu, l’utilisation d’un tel service NTP est assujetti à la disponibilité d’une connexion Internet. Pour une solution nomade ou autonome, on peut faire appel à des horloges radio-pilotées (type DCF77), ou à des modules GPS qui sont devenus désormais très abordables. Mais c’est un autre sujet !
Références
- Description détaillée de l’installation et l’utilisation de NTP sur Windows (anglais) : http://www.satsignal.eu/ntp/setup.html
- L’heure précise avec un navigateur : http://time.gov
- La page wikipedia française sur NTP : https://fr.wikipedia.org/wiki/Network_Time_Protocol
- Comment fonctionne NTP (anglais) : http://www.ntp.org/ntpfaq/NTP-s-algo.htm#Q-CLOCK-DISCIPLINE