NISTSync V1.0.1-beta by Paul KanevskyCopyright © 2010 by Paul Kanevsky. All Rights Reserved. |
NISTSync is freeware to synchronize your PC clock to the Internet time servers provided by NIST. Intended use is where the precise time (to within +/-10 milliseconds) is important. For Astronomical use, timing of occultations, search for extra-solar planets, and measuring precise position of objects are some of the tasks that may require this level of precision. Disclaimers and CopyrightCopyright © 2010 by Paul Kanevsky. All Rights Reserved. NISTSync is provided free of charge for all non-commercial use. Permission is given to distribute NISTSync in its original, un-modified form and only free of charge. The author accepts no responsibility for direct or consequential damage caused by the use of this software: use it at your own risk! NISTSync is provided as-is, and although I will attempt to make changes and fixes as they become necessary, I provide no guarantees about its suitability for any purpose whatsoever. The ProblemMicrosoft Windows provides a simple time synchronization with an internet server, but its accuracy leaves something to be desired, and can be off by as much as 1 second. Furthermore, this synchronization happens with long intervals in between, leaving the PC clock to run ahead or behind by many seconds, sometimes in a single day. Here’s the measured clock from my high-end laptop over a period of 35 minutes (the Y axis is in milliseconds, the X axis in minutes): Note that left to its own devices, the clock on my PC will lose approximately 1.5 milliseconds per minute. In 24 hours, it will be running behind by over 2 seconds. Not good for precise time monitoring! What can NISTSync do about it?The first thing to note is that the clock has an almost constant linear drift down. It would be very nice to be able to adjust the speed of the PC clock up or down to eliminate the constant drift. NISTSync has a built-in drift removal function. This function works by adjusting the rate of the PC time keeping clock, so as to eliminate all measured drift. The adjustment is done in Windows, so that once adjusted, Windows will continue to track time at the corrected rate, even if you don’t use NISTSync. Here’s what my PC clock looks like after drift-correction with NISTSync (this was measured over a period of two hours):
Looks a bit more ugly than the first chart, but look at the scale on the Y axis! Even after two hours, the final error is still within 2 milliseconds of the Internet NIST clocks. Overall, the error stays within +/-10 milliseconds for the whole time. Even the occasional spikes remain well within the +/-10 millisecond interval.
So, can anything be done to improve the clock precision even further? In addition to the clock drift removal, NISTSync also provides a periodic update function that can execute at an interval of 1 or more minutes. Each time it executes, NISTSync will update the PC clock to the latest, correct time from the Internet. Here’s a chart showing my PC clock over a period of 8 hours while NISTSync updated the PC clock at a rate of once per minute:
Note that the overall precision is well within the desired +/-10 milliseconds range for the whole 8 hours. Since the drift was already removed, it is possible to increase the update interval to once every 5 minutes or less and still achieve the desired accuracy.
Communicate problems, suggestions, commentsIf you're having problems using NISTSync or have comments or suggestions for improving it drop me a line here.
|