OCXO-based Real-Time Clock

MrChips

Joined Oct 2, 2009
30,821
OK, I see your point. Zenith tells me the time locally but it doesn't tell be the time in Greenwich nor does it tell me how far away I am from Greenwich. This is not a circular situation. I would still need to know the time in Greenwich to determine my longitude.
How does one find out the time in Greenwich?
 

Thread Starter

benha

Joined Jan 4, 2011
71
By looking at the clock. That needs to be accurate over long periods of time. That you set when you had a good reference to GMT and never adjusted to local time. That I'm trying to build.

;-)

I'm not trying to come up with an accurate local clock (which is what you're building) I'm trying to come up with an accurate reference to GMT/UTC.
 

Thread Starter

benha

Joined Jan 4, 2011
71
The circularity came from the idea that you were trying to use the local noon to adjust the clock. Since the clock isn't tracking local time (it's tracking GMT), you'd need to extrapolate from your noon to know what time it was in Greenwich. But to perform that extrapolation you'd need to know precisely where you are.

We were talking past each other since you were focused on tracking local time.
 

MrChips

Joined Oct 2, 2009
30,821
Ok, I think I'm with you now. You set your clock to GMT once and never set it again. You then hope that your clock never drifts.
 

Thread Starter

benha

Joined Jan 4, 2011
71
Bingo!

(And since "hope" is seldom a great strategy, here I am working on building something that's very stable.)
 

Thread Starter

benha

Joined Jan 4, 2011
71
OK. New issue. Disappointingly, the DS1341/42 chips can't use a TCXO in place of a standard crystal. So if I want to be anal about this and benefit from the accuracy of a TCXO and - when available - a rubidium oscillator, I need to feed both of them in on the 1PPS input. Doing that requires me to multiplex them.

I'm going to start by assuming that this is a switch that will happen very infrequently, so I don't need to try to compensate for runt pulses during the switchover. I can live with that being a bit ugly.

I figure I take the TCXO and run it through a bunch of frequency dividers to get it down to 1PPS, and then it becomes one input to a multiplexer.
The other input is the 1PPS from the rubidium oscillator.
The rubidium would be selected when the control pin was high, and the TCXO when the control pin was low.
Then what I'd need to do is to come up with a way to have a constant, high voltage on the mux control pin when there's a 1pps pulse coming from the Rubidium Oscillator. This is where I get out of my depth. Can that be done with a big cap? Or do I need some kind of timer circuit in there?

-Ben
 
Last edited:

THE_RB

Joined Feb 11, 2008
5,438
OK. New issue. Disappointingly, the DS1341/42 chips can't use a TCXO in place of a standard crystal.
...
Are you sure? Normally any chip that runs from a xtal can instead receive a frequency from another logic device, TCXO, xtal oscillator module, etc.

This is sounding like a difficult project! Are you sure it is necessary? I set my analogue watch by satellite time a couple of weeks back, and checked it again last night and it was within 1 second of the correct time. Over 14 days that is better than 1PPM just from a decent quality $150 watch. :)

To build a xtal oven capable of 1PPM is quite a bit of work, and even more work calibrating and testing it!
 

TomBales

Joined Apr 7, 2020
1
OK.

You guys are pointing me in good directions. I've continued to investigate and here's what I've found:

Some Rubidium Oscillators that can be had cheaply on eBay, in addition to running at 10MHz, will also output a 1PPS pulse:
http://www.ebay.com/itm/Symmetricom...Television_Test_Equipment&hash=item45ff920bad

Dallas' DS1341/42 RTC Chip supports an external sync 1PPS signal that is used when present, and then it'll default back to a standard crystal oscillator when not.

So...

It seems to me I can build an Arduino shield based on the DS1341/42 and the DS32KHZ clock (though I'm not positive that this clock will work for that chip) and then have an optional plug for an input from the rubidium oscillator. That gives me a high-power-consumption, high-accuracy version of the clock for "normal" operation, and the ability to fail back to a low-power-consumption, good-accuracy version (rubidium-free) for times when I need to run on batteries.

-Ben
Ben, are you still working on this project, or have you made any progress? I've been working on a very similar idea (an equally obsessive one): a navigational clock for a post-apocalypse future. The time base is a cesium CSAC (the price went up a lot before I bought mine) which is, itself, disciplined by a GPS receiver. The 1pps from the CSAC is also used to synchronize a back-up RTC circuit (using the ds1341/ds1342 chip). Freewheeling of the RTC would be done by a low-power (200mW) OCXO, and if power for that is lost, the native oscillator in the RTC with the best crystal I can find (probably 2-5ppm at best). The purpose of all this is to "discipline" a mechanical marine chronometer (Hamilton 21) that would be the "Plan Z" system if all else fails. The Hamilton has an autowinder but can be manually wound if there's no electricity at all. In operation, there would be a printed record made of the time deviation of the mechanical chronometer by occasionally measuring it against the CSAC, and that record would serve as a calibration source as is customarily used for celestial navigation with a chronometer. The mechanical chronometer will be kept in sync with the CSAC 1pps output by rotating the entire giimbal mount occasionally to force its balance wheel to be in sympathy with the CSAC. Is that obsessive enough?

I have most of the pieces of this contraption breadboarded, but a couple of things remain to be figured out. The one I need help with is configuring the ds1341 RTC chip. As far as I can find, although there is plenty of arduino software for the ds1307/ds3231 chips, and that software can read time and date from the ds1341, I can't find anything that can set up the 1pps input interrupt and adjust the clock output to a 1pps square wave. I found Windows PC software that will do all that with a similar chip (MAX31341), but that chip has different control register addresses from the ds1341. Anyway, I want to do it with a microcontroller and drive a low-power display, so I need something like arduino or PIC code.

Does anyone have any ideas?
 

Papabravo

Joined Feb 24, 2006
21,227
Ben, are you still working on this project, or have you made any progress? I've been working on a very similar idea (an equally obsessive one): a navigational clock for a post-apocalypse future. The time base is a cesium CSAC (the price went up a lot before I bought mine) which is, itself, disciplined by a GPS receiver. The 1pps from the CSAC is also used to synchronize a back-up RTC circuit (using the ds1341/ds1342 chip). Freewheeling of the RTC would be done by a low-power (200mW) OCXO, and if power for that is lost, the native oscillator in the RTC with the best crystal I can find (probably 2-5ppm at best). The purpose of all this is to "discipline" a mechanical marine chronometer (Hamilton 21) that would be the "Plan Z" system if all else fails. The Hamilton has an autowinder but can be manually wound if there's no electricity at all. In operation, there would be a printed record made of the time deviation of the mechanical chronometer by occasionally measuring it against the CSAC, and that record would serve as a calibration source as is customarily used for celestial navigation with a chronometer. The mechanical chronometer will be kept in sync with the CSAC 1pps output by rotating the entire giimbal mount occasionally to force its balance wheel to be in sympathy with the CSAC. Is that obsessive enough?

I have most of the pieces of this contraption breadboarded, but a couple of things remain to be figured out. The one I need help with is configuring the ds1341 RTC chip. As far as I can find, although there is plenty of arduino software for the ds1307/ds3231 chips, and that software can read time and date from the ds1341, I can't find anything that can set up the 1pps input interrupt and adjust the clock output to a 1pps square wave. I found Windows PC software that will do all that with a similar chip (MAX31341), but that chip has different control register addresses from the ds1341. Anyway, I want to do it with a microcontroller and drive a low-power display, so I need something like arduino or PIC code.

Does anyone have any ideas?
How much is it worth to you?
 
Top