Forget for a moment about GPS position. A GPS or GNSS also calculates time. And it does it very accurately. As precise as 10 nanoseconds. This is 0.00000001 seconds.
Imagine you have 2 devices in 2 different countries or 2 sensors in 2 different locations and you want to synchronize whichever action or measurement they are taking. You could use internet to get an accuracy of around 10 milliseconds, or use a GPS receiver on each device to get it down to 10 nanoseconds. And the best, no internet needed.
When we arrive to this level of timing accuracy, it is also important to know in which time scale we are working. GNSS receivers usually synchronize with global UTC time scale, but can also synchronize time scale to a specific constellation (GPS, GLONASS, Galileo, BeiDou). Each time scale has its own absolute counter (for example there are few seconds difference between GPS and UTC), but in general the change of second is synchronized to the millisecond level. In any way the takeaway is: check that all your sensors are using the same time scale.
Theory is very nice, but how can you actually make use of GPS time pulse in your project?
All ArduSimple boards have a pin called Timepulse, PPS or TPS. These are different names for the same signal. By default, this timepulse is configured at 1 Pulse Per Second (PPS). That means that every second, at the exact moment of change of second, this signal will be triggered to inform the application of the exact moment of change of second. The receiver might need some time to make the calculation of the actual new position and will make it available to you as soon as possible. In the next image you will find a visual representation of this.

In your application, you can connect the Timepulse and the Serial Data Out to your processor or computer. At some point, your application will read that time is 8:30:00. It’s time to get ready for the next timepulse, that will indicate exactly 8:30:01.
But you might say, what if the signal I want to measure is between 2 timepulses?
- Option A. You have a high running oscillator inside your processor (MHz or more) that you can synchronize every time that there is a timepulse.
- Option B. Use another feature of GPS receivers: the EXTINT or EVENT Input. We will talk about this signal another day, we will update this post with a link.