A NIST 2010 quantum logic clock based on a single aluminum ion .
In 2010 an experiment placed two aluminum-ion quantum clocks close to each other, but with the second elevated 12 in (30.5 cm) compared to the first, making the gravitational time dilation effect visible in everyday lab scales. Thus reproving Einstein’s gravity theories. The clocks were reversed in positions and showed the same time offsets. NIST postdoctoral researcher James Chin-wen Chou with the worlds most precise clock, based on the vibrations of a single aluminum ion (electrically charged atom). The ion is trapped inside the metal cylinder (center right). He says ‘off by 1 sec in 3.7 Billion years’ …lets wait and see!
SUPER DUPER WOW.

So by using quantum vibrations which is really fast, you think faster is better. The 328 chip in Unos is sorta fast at 16mhz. That is far faster than the typical clock (watch) crystal that is 32.768 khz. That is 500 times faster ! And the 328 has a temperature sensor to compensate the clock.
So why can’t the 328 out preform a cheep watch crystal?

This is my second attempt to make a clock using ONLY the 328 chip. Each 328 runs at different times even though they have a 16mhz crystal. So you get poor results just counting millis(). Which runs at 1,000 hz. This makes ONE millis(1) average out to about +- 3.6 seconds per hour accurate. Arduino mills() dosen’t count factional mills or use floats. This makes counting fractions of a mill impossible. So using Arduino micros() is the next choice. But using micros() runs out in just 71 minutes. (this really is NOT a problem). The problem for me is dealing with the large numbers and making repeated adjustments based on gps clocked time. Another choice is an interrupt. This counts the seconds no matter where the code is running inside the loop. This makes the 328 as good as a RTC. Even if the specks of the ‘micros()’ are considered, at +- 4 uS, this works out to be a 250khz clock. That is 7 times better than the 32.768khz.

So here is my Arduino lcd clock based on a 16bit timerOne interrupts using microseconds. It is not quite as good as counting aluminum ions! But it is easy and with some calibrations it can be as good as a RTC. I have made 3 versions of this clock. From connect to computer usb. To stand alone with 4 buttons. To outside gps with temperature using a HC12. This instructable will cover the first 2 clocks and I will write another ‘in depth’ for the HC12.

See my other instructable on HC12 range problems.

What you can expect is an easy lcd clock/date using UNO and a 16x2 lcd. I made some custom numbers for the lcd. The ‘BIG numbers’ library take up 3 spaces, mine just 1. The 4 button have internal pull up so the build is easy. I have a case for this and a 2 lcd and backs.

The public library here in my small town has a 3d printer anyone can use. So check out a library near you for making the lcd case.

My tests show -+ second every 24-48 hours. That is about one minute off in two months. Three or four adjustments put the clock spot on. Only off by about 12 seconds pre MONTH. Repeated attempts to ‘calibrate’ seams to just be chasing numbers. The one BAD feature is using ANY ‘menu’ resets the seconds to 00. This changes the current time. I did leave a 60sec timeout for the button press as to allow for synk with another clock.”