time-nuts@lists.febo.com

Discussion of precise time and frequency measurement

View all threads

Re: [time-nuts] Serial or other simple protocols for exchanging time

GC
Gary Chatters
Thu, Aug 8, 2019 2:17 AM

If I understand correctly, your Arduino based device is generating the
time code to send to your computer.

In the past I have used GPS NMEA messages and IRIG-B for data
acquisition time stamps.  I considered SMPTE, but it did not look useful.

I would expect that making your Arduino device look like a GPS receiver
outputting NMEA messages and a PPS signal would be about the simplest
approach you could take.  It has the advantage that there is existing
software to deal with the messages, including NTP drivers.

IRIG-B has the advantages that it has a lower bit rate and only requires
one signal line.  I looked at NTP source code and there is a driver for
IRIG-B (and E) using 1 kHz modulation.

Two questions come to mind:

  • How is your Arduino going to get time?

  • What is the computer going to do with it?

Gary
WA9ZZZ

On 8/7/19 8:13 AM, Ralph Aichinger wrote:

Hi everybody!

I am a newbie and am wondering what options there are for exchanging time

on a more basic level than NTP or PTP (that is for situations when a

full network stack is too complex).

For now I have found:

NMEA (probably ZDA only)

IRIG timecode (this is rather complex, I would rather have a

            full network stack than IRIG?)

SMPTE timecode (this too?)

Are there any other obvious candidates I missed? How did e.g.

HP atomic clocks tell their time to connected devices before

there was the NTP protocol? Did they output NMEA or something

else? Did they emit IRIG directly?

I want to create an Arduino based clock that tells time to a computer

it is linked too. For exact seconds alignment I want to use a PPS signal,

but I need a means to tell the computer about second numbers, hours etc.

too.

Of course I could invent a serial protocol, but I suppose if I invented a

text based serial protocol, it would probably end up looking very

similar in structure to NMEA ZDA sentences.

Is NMEA the most practical time protocol at the 1 second level

(that is when a PPS pulse takes care of second alignment?) or should

I use something else if I am free to design stuff clean slate?

TIA

/ralph

If I understand correctly, your Arduino based device is generating the time code to send to your computer. In the past I have used GPS NMEA messages and IRIG-B for data acquisition time stamps. I considered SMPTE, but it did not look useful. I would expect that making your Arduino device look like a GPS receiver outputting NMEA messages and a PPS signal would be about the simplest approach you could take. It has the advantage that there is existing software to deal with the messages, including NTP drivers. IRIG-B has the advantages that it has a lower bit rate and only requires one signal line. I looked at NTP source code and there is a driver for IRIG-B (and E) using 1 kHz modulation. Two questions come to mind: - How is your Arduino going to get time? - What is the computer going to do with it? Gary WA9ZZZ On 8/7/19 8:13 AM, Ralph Aichinger wrote: > Hi everybody! > > > I am a newbie and am wondering what options there are for exchanging time > > on a more basic level than NTP or PTP (that is for situations when a > > full network stack is too complex). > > > For now I have found: > > > NMEA (probably ZDA only) > > IRIG timecode (this is rather complex, I would rather have a > > full network stack than IRIG?) > > SMPTE timecode (this too?) > > > Are there any other obvious candidates I missed? How did e.g. > > HP atomic clocks tell their time to connected devices before > > there was the NTP protocol? Did they output NMEA or something > > else? Did they emit IRIG directly? > > > I want to create an Arduino based clock that tells time to a computer > > it is linked too. For exact seconds alignment I want to use a PPS signal, > > but I need a means to tell the computer about second numbers, hours etc. > > too. > > > Of course I could invent a serial protocol, but I suppose if I invented a > > text based serial protocol, it would probably end up looking very > > similar in structure to NMEA ZDA sentences. > > > *Is* NMEA the most practical time protocol at the 1 second level > > (that is when a PPS pulse takes care of second alignment?) or should > > I use something else if I am free to design stuff clean slate? > > > TIA > > /ralph >
RA
Ralph Aichinger
Thu, Aug 8, 2019 8:06 AM

Am Do., 8. Aug. 2019 um 05:09 Uhr schrieb Gary Chatters <
gcarlistaa@garychatters.com>:

I would expect that making your Arduino device look like a GPS receiver
outputting NMEA messages and a PPS signal would be about the simplest
approach you could take.  It has the advantage that there is existing
software to deal with the messages, including NTP drivers.

Yes, this is exactly my thinking. I am looking for a simple way to monitor
this
rubidium device (and the Arduino clock linked to it), and having an NTP
server
tracking its performance is probably the easiest way to do this (graphing
drift,
catching systematic errors in the Arduino programming etc.).

  • How is your Arduino going to get time?

From a GPS receiver with PPS output, via serial NMEA.

I plan to do three things when the Arduino based clock is set (by plugging
in a cable and pressing a button or something, so not continuously):

  1. the GPS signal will be sanity checked (enough sats, is there a fix)
  2. the PPS divider (either on the Arduino itself or one of  Tom's PicDivs)
    of the rubidium will be reset to zero when the next PPS from the GPS
    arrives.
  3. The NMEA time from the GPS is parsed and used to set time and date
    above seconds level on the Arduino based clock.
  • What is the computer going to do with it?

For now mainly monitor it: Is the rubidium off from GPS time, did the
dividers/counters count right, etc., both to check hardware and my
poor attempts at programming ;)

/ralph -- thanks!

Gary
WA9ZZZ

On 8/7/19 8:13 AM, Ralph Aichinger wrote:

Hi everybody!

I am a newbie and am wondering what options there are for exchanging time

on a more basic level than NTP or PTP (that is for situations when a

full network stack is too complex).

For now I have found:

NMEA (probably ZDA only)

IRIG timecode (this is rather complex, I would rather have a

            full network stack than IRIG?)

SMPTE timecode (this too?)

Are there any other obvious candidates I missed? How did e.g.

HP atomic clocks tell their time to connected devices before

there was the NTP protocol? Did they output NMEA or something

else? Did they emit IRIG directly?

I want to create an Arduino based clock that tells time to a computer

it is linked too. For exact seconds alignment I want to use a PPS signal,

but I need a means to tell the computer about second numbers, hours etc.

too.

Of course I could invent a serial protocol, but I suppose if I invented a

text based serial protocol, it would probably end up looking very

similar in structure to NMEA ZDA sentences.

Is NMEA the most practical time protocol at the 1 second level

(that is when a PPS pulse takes care of second alignment?) or should

I use something else if I am free to design stuff clean slate?

TIA

/ralph


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.

Am Do., 8. Aug. 2019 um 05:09 Uhr schrieb Gary Chatters < gcarlistaa@garychatters.com>: > I would expect that making your Arduino device look like a GPS receiver > outputting NMEA messages and a PPS signal would be about the simplest > approach you could take. It has the advantage that there is existing > software to deal with the messages, including NTP drivers. > Yes, this is exactly my thinking. I am looking for a simple way to monitor this rubidium device (and the Arduino clock linked to it), and having an NTP server tracking its performance is probably the easiest way to do this (graphing drift, catching systematic errors in the Arduino programming etc.). - How is your Arduino going to get time? > >From a GPS receiver with PPS output, via serial NMEA. I plan to do three things when the Arduino based clock is set (by plugging in a cable and pressing a button or something, so not continuously): 1. the GPS signal will be sanity checked (enough sats, is there a fix) 2. the PPS divider (either on the Arduino itself or one of Tom's PicDivs) of the rubidium will be reset to zero when the next PPS from the GPS arrives. 3. The NMEA time from the GPS is parsed and used to set time and date above seconds level on the Arduino based clock. > - What is the computer going to do with it? > For now mainly monitor it: Is the rubidium off from GPS time, did the dividers/counters count right, etc., both to check hardware and my poor attempts at programming ;) /ralph -- thanks! > > > > Gary > WA9ZZZ > > On 8/7/19 8:13 AM, Ralph Aichinger wrote: > > Hi everybody! > > > > > > I am a newbie and am wondering what options there are for exchanging time > > > > on a more basic level than NTP or PTP (that is for situations when a > > > > full network stack is too complex). > > > > > > For now I have found: > > > > > > NMEA (probably ZDA only) > > > > IRIG timecode (this is rather complex, I would rather have a > > > > full network stack than IRIG?) > > > > SMPTE timecode (this too?) > > > > > > Are there any other obvious candidates I missed? How did e.g. > > > > HP atomic clocks tell their time to connected devices before > > > > there was the NTP protocol? Did they output NMEA or something > > > > else? Did they emit IRIG directly? > > > > > > I want to create an Arduino based clock that tells time to a computer > > > > it is linked too. For exact seconds alignment I want to use a PPS signal, > > > > but I need a means to tell the computer about second numbers, hours etc. > > > > too. > > > > > > Of course I could invent a serial protocol, but I suppose if I invented a > > > > text based serial protocol, it would probably end up looking very > > > > similar in structure to NMEA ZDA sentences. > > > > > > *Is* NMEA the most practical time protocol at the 1 second level > > > > (that is when a PPS pulse takes care of second alignment?) or should > > > > I use something else if I am free to design stuff clean slate? > > > > > > TIA > > > > /ralph > > > > > _______________________________________________ > 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. >