Accurate Time with an Arduino…

Since getting a little back into amateur radio and making contacts, I found the need to have  some type of accurate time in the shack / workroom / man-cave…whatever the function of this room is at that particular moment.  A while back, a friend of mine, N1KMO, showed me one of his nixie tube clocks and I think he also had a very accurate clock either attached to it, or next to it.  Either way, I needed a totally accurate clock with millisecond accuracy!

I found a Spectracom Netclock/2 on Ebay several weeks later and purchased it.  I found out that I also needed a decent 60 kHz antenna for it, so I purchased that too.  Ok, I was now out about $350, but, hey, I now had a clock truely accurate to within a few milliseconds. O, sweet joy.

Well, reality set in when I found out that the WWVB signal was changing.  This would allow for better reception of the signal by consumer “atomic” clocks as found in hardware stores and Radio Shack, etc.  Unfortunately, the Netclock/2’s of the world would no longer work. No wonder why people were dumping their NetClocks on Ebay!  Now, all this went down / was to go down 10-29-2012, with a bit of a transition period afterward, but, I still find that the NetClock is providing a lock most of the time.  So, either the transition period has been lengthened, or the unit provides a false positive confirmation of signal lock.  Either way, I needed something else.

I found an Arduino Mega at the local Radio Shack and picked one up.  I figured that it would be an excellent platform to create a new clock on.  I also picked up a EM-406A from Spark Fun, along with the breakout board for the EM-406A which allows for easier soldering.

I won’t bore you with the details, but I now have a functioning GPS clock based on an Arduino Micro (although it will probably work on almost anything.)  My needs were basic…provide the correct time with some indication of second pulses, like a flashing LED with the start of the second.  The GPS unit EM-406A is good for this purpose because it also has a 1 pulse per second output which is accurate to 1μ second….give or take.

Here is a picture of the breadboard setup.  I’ll try my hand at a nice PCB to put the Arduino Micro on, and get a nice box.  I hear that SparkFun has an inexpensive facility for PCB’s.

Here is the Arduino ‘sketch’.  I like to think of myself as a programmer…but I’m not, or at least not lately, so this might not be the most elegant solution, but it does work.


Currently, there is no functionality to minimize extra NMEA data from the EM-406, you will have to do that on your own, but it also can be done with your Arduino Micro.  If I get a chance, I’ll post that sketch also.


Leave a Reply