time-nuts@lists.febo.com

Discussion of precise time and frequency measurement

View all threads

Small NTP appliance

EN
Eamonn Nugent
Fri, Nov 6, 2020 4:16 AM

Hi, all

This is my first major post on the list. I've been really enjoying the back
and forth, and especially loved reading about some of the Cesium clocks,
their limitations, and their hardware (especially the thought of trying to
repair a Cesium lamp on a 5061A - or, more accurately, how it would be
impossible).

I've been toying around with the idea of building a GPS-synchronized NTP
appliance for myself based off a microcontroller with Ethernet. This is
purely for fun at the moment, I want to learn the theory and design, rather
than just buying one off the shelf. I don't need to bore with the details,
but essentially, I'm going to take a GPS receiver chip (NEO-M8P), hook it
up to a small microcontroller (STM32F767ZI, if anyone's asking), and use
the GPS unit's 1PPS signal to synchronize an internal clock, which then can
be read for NTP-related purposes.

I have one general question. I don't believe that an internal crystal in
the microcontroller will have the accuracy or precision required to have
better than a few milliseconds of accuracy (whereas NTP likes to live in
the microsecond realm), though I very well could be wrong on that one. My
general thought was to find an accurate enough external crystal, or perhaps
OCXO, to synchronize with GPS, and then read from that unit. Are there any
"best practices" I should be following, with regards to this? Or any
suggestions from the Old Guard as to the most "proper" way to accomplish my
goal? I can wire in an external resonator to drive the processor, at up to
26MHz, so I was thinking I could use that to build a relatively simple
counter of some sort to be read from, or perhaps grab an RTC chip, but my
skills and knowledge fall off in this realm.

For context, I'm a software engineer with no fear of C, and have worked
with microcontrollers before, along with writing a small OS for fun, so I'm
not worried about any of the software side. Just want to get some input on
the best method of "timekeeping."

Can't wait to hear feedback!

P.S. If anybody has recs for a Rubidium clock to pick up, just for fun,
feel free to send them my way.

Thanks,

Eamonn

Hi, all This is my first major post on the list. I've been really enjoying the back and forth, and especially loved reading about some of the Cesium clocks, their limitations, and their hardware (especially the thought of trying to repair a Cesium lamp on a 5061A - or, more accurately, how it would be impossible). I've been toying around with the idea of building a GPS-synchronized NTP appliance for myself based off a microcontroller with Ethernet. This is purely for fun at the moment, I want to learn the theory and design, rather than just buying one off the shelf. I don't need to bore with the details, but essentially, I'm going to take a GPS receiver chip (NEO-M8P), hook it up to a small microcontroller (STM32F767ZI, if anyone's asking), and use the GPS unit's 1PPS signal to synchronize an internal clock, which then can be read for NTP-related purposes. I have one general question. I don't believe that an internal crystal in the microcontroller will have the accuracy or precision required to have better than a few milliseconds of accuracy (whereas NTP likes to live in the microsecond realm), though I very well could be wrong on that one. My general thought was to find an accurate enough external crystal, or perhaps OCXO, to synchronize with GPS, and then read from that unit. Are there any "best practices" I should be following, with regards to this? Or any suggestions from the Old Guard as to the most "proper" way to accomplish my goal? I can wire in an external resonator to drive the processor, at up to 26MHz, so I was thinking I could use that to build a relatively simple counter of some sort to be read from, or perhaps grab an RTC chip, but my skills and knowledge fall off in this realm. For context, I'm a software engineer with no fear of C, and have worked with microcontrollers before, along with writing a small OS for fun, so I'm not worried about any of the software side. Just want to get some input on the best method of "timekeeping." Can't wait to hear feedback! P.S. If anybody has recs for a Rubidium clock to pick up, just for fun, feel free to send them my way. Thanks, Eamonn
BK
Bob kb8tq
Fri, Nov 6, 2020 1:32 PM

Hi

If this is a scratch build without using the typical software, pretty much anything
could be done. As noted earlier, the “normal” way to do this is to go to something
that will run some flavor of Linux.

On a practical basis, you could have a good antenna location for your GPS.
That would mean you alway have a pps. That pps should be good to < 50 ns.

You probably can “guess” the crystal frequency to 0.1 ~ 0.01 ppm on a second
to second basis ( like by an average over the last 100 seconds). If so, that
puts your“ clock error” into the 10 to 100 ns region.

Net result would be a device that can indeed hang in below 1 us as it does
it’s thing.

Bob

On Nov 5, 2020, at 11:16 PM, Eamonn Nugent elg.nugent@gmail.com wrote:

Hi, all

This is my first major post on the list. I've been really enjoying the back
and forth, and especially loved reading about some of the Cesium clocks,
their limitations, and their hardware (especially the thought of trying to
repair a Cesium lamp on a 5061A - or, more accurately, how it would be
impossible).

I've been toying around with the idea of building a GPS-synchronized NTP
appliance for myself based off a microcontroller with Ethernet. This is
purely for fun at the moment, I want to learn the theory and design, rather
than just buying one off the shelf. I don't need to bore with the details,
but essentially, I'm going to take a GPS receiver chip (NEO-M8P), hook it
up to a small microcontroller (STM32F767ZI, if anyone's asking), and use
the GPS unit's 1PPS signal to synchronize an internal clock, which then can
be read for NTP-related purposes.

I have one general question. I don't believe that an internal crystal in
the microcontroller will have the accuracy or precision required to have
better than a few milliseconds of accuracy (whereas NTP likes to live in
the microsecond realm), though I very well could be wrong on that one. My
general thought was to find an accurate enough external crystal, or perhaps
OCXO, to synchronize with GPS, and then read from that unit. Are there any
"best practices" I should be following, with regards to this? Or any
suggestions from the Old Guard as to the most "proper" way to accomplish my
goal? I can wire in an external resonator to drive the processor, at up to
26MHz, so I was thinking I could use that to build a relatively simple
counter of some sort to be read from, or perhaps grab an RTC chip, but my
skills and knowledge fall off in this realm.

For context, I'm a software engineer with no fear of C, and have worked
with microcontrollers before, along with writing a small OS for fun, so I'm
not worried about any of the software side. Just want to get some input on
the best method of "timekeeping."

Can't wait to hear feedback!

P.S. If anybody has recs for a Rubidium clock to pick up, just for fun,
feel free to send them my way.

Thanks,

Eamonn


time-nuts mailing list -- time-nuts@lists.febo.com
To unsubscribe, go to http://lists.febo.com/mailman/listinfo/time-nuts_lists.febo.com
and follow the instructions there.

Hi If this is a scratch build without using the typical software, pretty much anything could be done. As noted earlier, the “normal” way to do this is to go to something that will run some flavor of Linux. On a practical basis, you *could* have a good antenna location for your GPS. That would mean you alway have a pps. That pps should be good to < 50 ns. You probably can “guess” the crystal frequency to 0.1 ~ 0.01 ppm on a second to second basis ( like by an average over the last 100 seconds). If so, that puts your“ clock error” into the 10 to 100 ns region. Net result would be a device that can indeed hang in below 1 us as it does it’s thing. Bob > On Nov 5, 2020, at 11:16 PM, Eamonn Nugent <elg.nugent@gmail.com> wrote: > > Hi, all > > This is my first major post on the list. I've been really enjoying the back > and forth, and especially loved reading about some of the Cesium clocks, > their limitations, and their hardware (especially the thought of trying to > repair a Cesium lamp on a 5061A - or, more accurately, how it would be > impossible). > > I've been toying around with the idea of building a GPS-synchronized NTP > appliance for myself based off a microcontroller with Ethernet. This is > purely for fun at the moment, I want to learn the theory and design, rather > than just buying one off the shelf. I don't need to bore with the details, > but essentially, I'm going to take a GPS receiver chip (NEO-M8P), hook it > up to a small microcontroller (STM32F767ZI, if anyone's asking), and use > the GPS unit's 1PPS signal to synchronize an internal clock, which then can > be read for NTP-related purposes. > > I have one general question. I don't believe that an internal crystal in > the microcontroller will have the accuracy or precision required to have > better than a few milliseconds of accuracy (whereas NTP likes to live in > the microsecond realm), though I very well could be wrong on that one. My > general thought was to find an accurate enough external crystal, or perhaps > OCXO, to synchronize with GPS, and then read from that unit. Are there any > "best practices" I should be following, with regards to this? Or any > suggestions from the Old Guard as to the most "proper" way to accomplish my > goal? I can wire in an external resonator to drive the processor, at up to > 26MHz, so I was thinking I could use that to build a relatively simple > counter of some sort to be read from, or perhaps grab an RTC chip, but my > skills and knowledge fall off in this realm. > > For context, I'm a software engineer with no fear of C, and have worked > with microcontrollers before, along with writing a small OS for fun, so I'm > not worried about any of the software side. Just want to get some input on > the best method of "timekeeping." > > Can't wait to hear feedback! > > P.S. If anybody has recs for a Rubidium clock to pick up, just for fun, > feel free to send them my way. > > Thanks, > > Eamonn > _______________________________________________ > time-nuts mailing list -- time-nuts@lists.febo.com > To unsubscribe, go to http://lists.febo.com/mailman/listinfo/time-nuts_lists.febo.com > and follow the instructions there.