I was surprised to see that the GPS receiver I'm working with has a pin reserved for outputting a 1 PPS (Pulse Per Second) signal. What is the point of this? Can't the microcontroller easily generate its own 1 PPS signal?
-
4Just a nested question. It is clear for me that that PPS signal is extremely accurate in the long term. However, is it also assured that it has a very low jitter? (so, does it retain its accuracy down to the very short term of one cycle?) Does that signal come out of an MCU pin, or directly from a divider coupled to a PLL? – Telaclavo Apr 26 '12 at 17:40
-
1The PPS signal has extremely low (near zero) DC jitter, but its high-frequency jitter cannot be assumed to be at the same standard. It's best used to use it to synchronize an oscillator like those described by Russell McMahon below – antijon Apr 26 '12 at 21:29
10 Answers
The 1 PPS output has a much lower jitter than anything a MCU can do. In some more demanding applications you can use that pulse can be used to time things very accurately. With some scientific grade GPS's this 1 PPS output might be accurate to better than 1 nS.
-
-
GPS satellites have atomic clocks, which is why the PPS signal is so accurate. Even if the output is instantaneously accurate to only 1 ms, it will never accumulate more than 1 ms of error relative to the actual number of seconds that have elapsed. – ajs410 Apr 26 '12 at 16:38
-
1How come that very accurate 1PPS signal doesn't get disturbed while its travelling on its way from outer space or some other circuitry doesn't disturb it? – abdullah kahraman Apr 27 '12 at 22:56
-
6@abdullahkahraman The 1 ppm output doesn't come directly from a satellite. It comes from the receivers own internal clock. That clock is synchronized with the satellites. The 1 pps output doesn't go away if the receiver looses reception (it just gets less accurate). – Apr 28 '12 at 03:37
-
"With some scientific grade GPS's this 1 PPS output might be accurate to better than 1 nS." Really? Do you have a cite for that? It sounds a little hopeful. And accurate over what period of time? – dfc Jul 15 '13 at 18:36
-
@dfc The keyword there is "might". That being said, 5 minutes of searching came up with this system that is accurate to withing 10 ns of UTC time: http://www.symmetricom.com/products/time-frequency-distribution/time-frequency-systems/Precise-Time-Scale-System/ So it is not unreasonable to expect that some obscure lab somewhere has one that can get 1 ns accuracy. – Jul 15 '13 at 19:04
-
2@DavidKessner you linked to an _atomic clock_ that "can combine up to six high performance cesium frequency standards or active Hydrogen Masers in a time scale that drives the local real-time clock (RTC) signal." Know of any GPSDOs that can come with 6 hydrogen masers or cesium standards? The system you linked to is better than the equipment the some countries use for thier standard national time. This question was about GPSs not high end atomic clocks. – dfc Jul 15 '13 at 22:30
Update - 11 years on, April 2023. The GPS module used to make the "super simple disciplined oscillator" mentioned below seems to be no longer available, although it might be found on the surplus market.
So, I've added a well documented DIY solution using the available-in-2023 UBlox LEA-6T. This is already showing signs of being replaced, but the features it has that make it ideal should also be in newer modules. See below ...
Long term the 1 Hz signal is probably the most accurate time, and so also frequency, reference that you will ever encounter.
You are effectively obtaining something like a cesium clock time reference for the cost of a GPS module. A bargain. You can buy commercial "disciplined oscillator" units and designs for DIY ones are available. A DO is not frequency locked per se but is gently kicked into lock by error signals between a 1 Hz signal generated by local and GPS clocks.
Disciplined oscillators
Standard time anywhere They say -
Ovenized Quartz Crystal Oscillators When a single (OCXO) or double (DOCXO) temperature-controlling oven is wrapped around the crystal and its oscillating circuitry, the frequency stability may be improved two to four orders of magnitude relative to that of the TCXO. Such oscillators are used in laboratory and communications grade applications and often have the means to adjust their output frequency via electronic frequency control. In this way they may be "disciplined" to match the frequency of a GPS or Loran-C reference receiver.
GPS-disciplined DOCXOs are the Stratum I Primary Reference Sources (PRS) for many of the world's wired telecommunications systems. They are also widely deployed as GPS time and frequency references for the base stations operating under the IS-95 standard for the Code Division Multiple Access (CDMA) cellular mobile phone systems originated by Qualcomm. The sheer volume of these base station applications has profoundly affected the OCXO market by driving prices down and consolidating vendors.
Super simple DIY DO <--
As of 2023 the GPS involved for this solution is obsolete.
So - Updated alternative:
A more than adequate GPS replacement is the ublox LEA-6T which has a user programmable frequency output driven by a divider from the modules internal 32 MHz oscillator which in turn is GPS synchronised.
NEO-6T LEA-6T datasheet here
The relevant output is timepulse2 / pin 9 on the LEA-6T.
Here is a writeup of the EEVblog community, based on his initial test here.
User lars makes the following comments on achieved stability/accuracy. These need to be read in context in the article referenced above.
- " ... My guess is that you may get an ADEV from the GPS 1MHz (after the RC-filter) that is around 1E-9 for 1sec, 1E-10 for 10secs and 1E-11 for 100secs. If the OCXO is better than the GPS at the time constant chosen it will limit the performance (but still work well). One thing with the 1MHz giving so low ripple after the RC-filter I believe is due to the GPS TCXO "48Mhz" is not exact. If it is exact it could give a sawtooth that moves the output. I warmed my module and could get a much higher ripple after the RC-filter (In other modules cooling may give the same increase instead).
Working out how well you've done
Commercial module - 0.1 parts per billion per day.

- 147,325
- 18
- 210
- 386
-
2023: another is the [E108](https://www.qrp-labs.com/images/qlg2/e108.pdf) module, used the radio experiment small-scale supplier [QRP Labs](https://www.qrp-labs.com/qlg2.html). I believe they use the 1PPS to calbibrate their radio transmission frequencies. – jonathanjo Apr 07 '23 at 11:18
@DavidKessner's answer is in line with what I'm about to say, but I wanted to elaborate, and this is a bit more than a comment.
This output could be used to, say, wake the MCU (from a deep sleep mode) once per second (to within a couple nano-seconds) in an application where you cared about the MCU doing something on a particular second, within great accuracy.
An MCU could also use this signal to calculate it's own timing accuracy and compensate for it in software. So the MCU could "measure" the pulse duration, and assume that it is a "perfect" 1s interval. In doing so it could effectively determine the time stretching or squeezing it is experiencing, say due to temperature effects on its crystal or whatever, and apply that timing factor to any measurements it is taking.

- 22,499
- 13
- 79
- 155
Having designed ruggedized OCXO for harsh rocket environments and tracking floating weather stations before GPS .. actually after only 1st GPS (GOES 1) was launched, it brings back fond memories.
The importance of stability depends on outages and how much error you can tolerate during outage or LOS (loss of signal) as well as capture time. When you multiply f by N by PLL divider you also multiply phase error. So care to minimize drift and phase noise is essential.
In my OCXO I chose 10MHz for the OCXO, 100KHz for the rocket's FM sub-carrier telemetry and 10KHz for the mixer ground station to track the rocket's position. The range for vehicle travel is simply the phase difference using the difference frequency and phase of the telemetry sub-carrier and the ground station at the chosen f with Δλ=c/f with Δposition=Δλ + cycle counts. The frequency error represents velocity as in radar speed. So with 1 PPS (1Hz) clock you can support a large range and time interval without cycle skips or counts on precise phase difference. Note that a cycle skip in phase error could be N cycles which means ambiguity of accumulated error.. assuming LOS error is important.
Redundancy is key for reliability if you have choice and ranking of sources from Stratum 1,2,& 3 clocks in case of outage. Telecom synchronous high speed networks depend on precise clocks as do licensed radios. Networks use intelligent error logging for ranking references of Stratum clock sources.
Of course that takes uber diligence in the design of your DO. Volumes of books on standards define these rules.

- 1
- 3
- 54
- 182
While a GPS receiver can send a complete timestamp upstream (via NMEA etc), the amount of time it'd take for the timestamp to make it way over to the host would render the timestamp inaccurate. A 1PPS signal is the GPS receiver equivalent of "at the tone the time will be twelve thirty three and 35 seconds ... [beep]". The assumption here is that the host's clock can stay accurate for 1 sec, and every second it gets a correction via the 1PPS.

- 81
- 1
- 1
I think you need to read up on the unit you have (as some are different) but I would guess that it is to be used as a time sync. Ie you get a message saying next Pulse will come at timeInUTC.
"The GPSClock 200 has an RS-232 output that provides NMEA time codes and a PPS output signal. About a half-second before, it outputs the time of the next PPS pulse in either GPRMC or GPZDA format. Within one microsecond of the beginning of the UTC second, it brings the PPS output high for about 500 ms."

- 684
- 5
- 6
All of the existing answers talk about precision timing applications; I just want to point out that the 1 pps signal is important for navigation, too — particularly when the receiver is moving.
It takes some time for the receiver to compute each navigation solution, and additional time to format that solution into one or more messages and transmit them over some sort of communication link (usually serially). This means that by the time the rest of the system can make use of the information, it is already "out of date" by perhaps several hundred milliseconds.
Most low-precision hobbyist applications ignore this detail, but in a precision application that might be traveling at 30 to 100 meters/second, this introduces many meters of error, making it the dominant source of total error.
The purpose of the 1 pps output is to indicate exactly when the position indicated in the navigation message(s) was valid, which allows the application software to compensate for the communication delay. This is particularly important in hybrid GPS-inertial systems, in which MEMS sensors are used to provide interpolated navigation solutions at high sample rates (hundreds of Hertz).

- 168,369
- 17
- 228
- 393
-
Never thought of that, but if course! By convention is the fix typically match to the rising or falling edge of the pps out? – bigjosh Mar 12 '19 at 04:51
-
@bigjosh: The distinction between rising and falling depends on polarity and is therefore arbitrary. You should speak about a leading and trailing edge of the pulse. Which can be defined by polarity (which is negotiable), or by specifying a length of the pulse or a duty cycle, preferably other than 50% ;-) I've coded something around the Intel i210 GPIO used as a PPS input, and it throws an event on every edge, rising or falling, and there's no way to figure out polarity in the SW. I had to infer the difference from timing, knowing the duty cycle of my PPS source... – frr Aug 06 '19 at 10:01
The 1PPS signal is used for synchronization purposes. Suppose you have two devices located far away from each other and you want to generate clock pulses in both devices which start at exactly the same time. What can you do? This is where this 1PPS signal is used. GPS modules can give pulses at an accuracy of 1ns worldwide, which makes them a simple, cheap and easy way to get devices that are otherwise not connected to perform operations in synchrony.

- 3,101
- 1
- 11
- 16

- 51
- 1
- 1
-
-
1This is the only answer that explicitly mentions the killer implication, IMHO - synchronisation! Therefore I decided to tidy it up so it reads a bit better and correct "1 PPM" to "1PPS". – Heath Raftery May 13 '21 at 03:56
-
I was looking for information on how accurate 2 separated GPS units would really be with their PPS. Is there anything that takes into account GPS satellite transmitter delays, GPS receiver delays, and accuracy of the PPS. This answer at least talks about synchronizing distributed signals. – charo Mar 26 '22 at 15:19
I like the response from "PV Subramanian" as being to the point. This is precisely the typical purpose of 1 PPS. Provide a precise 1-second edge, to augment a full "time of day" information block received by some less accurate means (async serial line, typically).
Speaking of oscillators, it seems that in the trade of "time standards" and GPS, 10 MHz is a very popular choice. And, local oscillators in GPS receivers can roughly be split into two categories: those that result in precisely 1:10000000 ratio between the 10MHz output and PPS (phase-synchronous) and those where the PPS output exhibits step-wise adjustments (skipping/inserting ticks of the 10 MHz timebase). The "synchronous" crystal oscillators are more precise and are required for some purposes. They also require "oven control" (OCXO), which consumes some extra power. No good for battery-powered devices, excellent for stationary timekeeping use. The "skipping" oscillators are good enough for basic positioning use, and are cheaper, so this is what you get in the cheapest GPS receiver modules. As they typically lack oven control, they generally fall into the TCXO category.
For PLL control of some external crystal oscillator, the edges of 1 PPS are perhaps spaced rather far apart, you would need a pretty long integration time in the PLL servo loop. A good quality 10 MHz signal source will allow you to achieve good lock much faster. But the catch is - "good quality". See above. Other than that, 1PPS is certainly plenty good enough to discipline the system timebase of some OS or NTPd running on PC hardware.
As others have said, the 1PPS output from a GPS receiver is derived from a local crystal oscillator, ticking inside the receiver. Typically this used to be a 10 MHz crystal. This local crystal oscillator is really a VCO, allowing for small adjustments in its actual clock rate. This VCO input is used for closed-loop control (negative feedback style), where the GPS signal from a handful of satellites (combined) serves as a reference. The function block in a GPS receiver, that does the decoding of the "scrambled spaghetti" of pseudo-random bitstreams on a shared carrier, with varied signal levels and doppler shifts, this block is called a "correlator". It uses some heavy number crunching to find an optimum "solution" to the position and time "problem", based on the radio signals received, comparing them to the local timebase - and continuously evaluates a small error / deviation between the radio reception and the local crystal, which it feeds back into the crystal's VCO input... hence closed-loop control. From timing perspective, the GPS receiver's correlator is just an extremely complex PLL comparator thing :-)
Others have mentioned Symmetricom and TimeTools... Meinberg Funkuhren have a nice table of the oscillators they offer, containing all thinkable precision parameters: https://www.meinbergglobal.com/english/specs/gpsopt.htm Note that the precisions quoted are probably still conservative/pessimistic estimates.

- 2,573
- 12
- 14
We use the 1PPS output generated by GPS receivers to provide very accurate time for stratum 1 NTP Network Time Servers. The 1PPS is generated at the start of each second and in the case of many receivers is accurate to within a few nanoseconds of UTC time. Some GPS receivers are not so good at providing time, since the associated serial time output can 'wander' each side of it's intended pulse output. This effectively periodically generates a one second offset.
The 1PPS output can also be used to discipline OCXO or TCXO based oscillators to provide holdover in the event of loss of GPS signals. The link below provides some more information regarding the use of GPS in time references:
http://www.timetools.co.uk/2013/07/23/timetools-gps-ntp-servers/

- 31
- 1