[LEAPSECS] BBC radio Crowd Science

Tom Van Baak tvb at LeapSecond.com
Mon Feb 6 22:44:19 EST 2017

> That's where my question is. A GPS receiver would read the UTC metadata 
> supplied in the GPS signal to generate UTC 23:59:60 from the primary GPS 
> time, right?


> We see from this discussion there are several ways folks use to 
> calculate this conversion, but what method to use may depend on the 
> organization of the metadata.

I can't speak for the "several ways" and the subtle trouble they cause. But...

GPS is one example of how to do it right. You start with a non-leap time scale like GPS system time. You then maintain not 1, not 2, but 3 values: old offset / transition date / new offset. That way, for any second you can generate a correct GPS time stamp or a correct UTC time stamp. The goal is to generate a time stamp. This also avoids the artificial worry about Bulletin C wording or the definition of "offset" or whatever else this thread has turned into. 

> How is the UTC metadata handled in a GPS receiver? IS-GPS-200G, 
> Coordinated Universal Time (UTC) explains a lot, but its 
> pretty complicated how the various metadata components are encoded and 
> updated. My question is, after decoding and adjusting the GPS data, when 
> is the TAI-UTC portion of the metadata updated? At the beginning of, or 
> the end of, the Leap Second?

There's no TAI-UTC metadata output. A typical GPS receiver outputs:

1) an digital pulse whose rising edge is closely aligned with either the GPS or TAI/UTC second, aka 1PPS.

2) a stream of binary or ascii packets, one or more of which contain a time stamp. Depending on user choice, the time stamp may be GPS time, or it may be UTC time. Depending on make / model, the time stamp may refer to the 1PPS that just occurred, or the 1PPS that will occur next.

That's all. It's very simple. I've never heard anyone remotely confused about the beginning, middle or end of a leap second. Again, there are precise pulses and there are date/time labels for those pulses.

> If I were building a GPS-to-PTP receiver/generator, how would I read the 
> GPS UTC metadata to populate the PTP UTC metadata? In particular, when 
> should timePropertiesDS.currentUtcOffset be incremented? This has 
> critical significance to the device receiving the PTP signal if accurate 
> UTC is a requirement.

If you're building a receiver *and* generator you need more than a single field named currentUtcOffset. Or maybe I don't quite understand what timePropertiesDS.currentUtcOffset actually means or how it's intended to be used in bi-directional conversion.

Let's settle this part of your question first, before we go on to talk about how GPS/GNSS receivers can or can't be used to mimic leap second tables.


More information about the LEAPSECS mailing list