Keeping Time on the PC

I have something of a clock fetish. My latest acquisition is a nixie tube clock from my wife, as a Christmas gift.

This is a companion discussion topic for the original blog entry at:

Greyware offers a freeware domain time variance tester for Win32 here:

I find hwclock a fun command to run on linux systems, as it’s a good diagnostic to see if the cmos battery is failing. My clock itself is -0.214587 seconds behind, which seems like a lot.

But as for the media centre pc, there is always the issue if their computers keeping the right time :P. They probably don’t have the same sort of issue XP has with time.

I haven’t seen clock drift personally, but as an issue with email; trusting the client’s reported time in sending email has led to embarrassing newsgroup postings that don’t show up right when sorted by time received. email itself is entirely reliant on client-reported times :confused:

This still doesn’t answer what five things we don’t already know about you Jeff. Cough it up man.

The RTC in a PC uses a crystal to keep time. But I guess extreme temperature variations and electromagnetic interference have more to do with clock skew than cheap chips. Your wrist watch almost never loses time because your body keeps it at a constant temperature.

It might be possible to create a USB/Serial dongle to sync the PC clock using good quality crystal (or just feed output of your nixie clock :slight_smile:

This is another thing that should not be relied on. For example, network can’t guarantee certain speed or latency or even connection itself. Likewise, system clock should not be expected to be precise or accurate, have constant speed relative to other systems or always incrementing (time can leap back any moment, e.g. when it is synchronized). If you need atomic clock precision and stability, use atomic clock.
By the way, think about clocks on satellites. Not only they are very distant from Earth and another satellites, you even have relativistic effects there.

Suraj wrote: The RTC in a PC uses a crystal to keep time.

That’s the heart of the problem: Typical quartz crystals have manufacturing tolerances of between 10ppm (30 secs/month) and 100ppm (5 mins/month!). To improve this, board designers often fit a trimming capacitor which can be adjusted manually.

But, those adjustable caps cost money to fit and time to set up. I expect many mobo manufacturers simply don’t bother to do this.

As for deriving timing from the AC supply frequency, I think that’s pure FUD. I don’t expect this technique has been used with ANY computers in the last 20 years. Remember, your clock keeps running even when your computer is powered off - and that PCs have universal supplies that work from 100-230VAC, 50-60Hz…

  • Roddy

My time nightmare happened back in the WinNT 4.0 days.

I and a coworker were trying to delete a server out of the PDC on the domain. We were planning on building it back with the same name and put it back in. Well we would blow the dead server away, force a sync, give it 15 minutes to make sure it was gone across the whole domain.

Then at about the 30 minute mark the dead server name would show up again. It took about 7 rounds and 4 hours till we figured out what was going on.

A little noticed/used BDC at our recovery location was off by 32 minutes. What would happen is that it would sync up our local servers, but the off site BDC when it got the message wasn’t deleting the dead server. Then when the PDC would pass the 32 minute mark the BDC was re-adding it back. Once we did a net time on the BDC our problems were solved.

Instead of using W32Time service (and using SNTP), you could make your computer a NTP server, which updates the software clock periodically, measures clock drift and proactively steps the clock accordingly.

Meinberg offers an easy-to-install, open-source NTP server and monitor/statistic software for Windows (NT-based), which is a port of the de facto standard NTP/XNTP reference software.

It works well, usually within 0.1 second of a NTP stratum 2 (publically available) server if your connection to the Internet is stable. You also get nice graphs that tell you how your computer is drifting.

It may not be atomic clock goodness, but obviously your tolerance for clock drift is pretty high. This is one step before buying your own clock hardware.

I don’t know about how the manufacturers build 'em in PCs, but if my 10 Casio can keep good time, I really don’t see why my 1500 PC can’t.

And now from the Department of Truly Minor Things:

Thank you, Jeff, for using “difference” instead of “differential.” This is a pet peeve of mine which you negatively triggered.

Longer thank-you note here:

My Windows XP’s time synchronisation doesn’t work somehow, so I was expecting someone would link some cute small utility that can sync tyme without 2MB+ of spyware…
Anyway, here it is :))

“You can’t sync your clock with a NTP source if the clock is already too far out of date. How ironic.”

Actually, you can, it just takes an ungodly long time to go from 1980 to 2007. (Or does windows simply prevent this after all?)

I haven’t had a really overloaded system in years now, but I remember back when I had the 486 that lots of clock skew would occur anytime a high priority (kernel?) process sat on the cpu; the bios or kernel was missing time signal interrupts.

I happen to have a Nixie tube sitting in my cube as decoration that I kept when I worked for MSOE, and one of my jobs was to tear apart old electronic equipment for disposal. I thought it was pretty cool, and have kept it every since.

Point being… where did she find that clock?! I want one!

Where did your wife find that nixie clock? It is certainly one of those desktop items that will get lots of stares and comments. Very hip…in that 1899 sort of way.

I remember a discusion between old time mainframe programmer where on some of the early 360 systems there was a button that allowed the time clock change instruction to run. Someone would get the program queued up and then hold the button down while starting the program. They would typically be shifting the clock from its current time by a couple of microseconds. There was a lot of concern about file time stamps and log entries that were around the time change event in the event that the clock was moved back.

I wrote this a while back, so that I could set the sync schedule.
It uses that SpecialPollInterval key you mentioned.

(yeah, yeah, I wrote VB6 code for fun, so? :p)

From my signature file:

A man with a watch knows what time it is. A man with two watches is never sure.
Segal’s Law

We got our Nixie clock from Peter Jensen, at

As for deriving timing from the AC supply frequency, I think that’s pure FUD.

OK, then how do you explain the massive clock skew of a PC connected to a UPS that’s connected to a UPS? And why, when we removed one of the UPSes from the chain, the clock skew cleared up?

So buy three watches, and always have a very good idea.