For my mobile version of hamlinux, based on a raspberry pi, I integrated a GPS receiver to make the system both autonomous and precise. It is used both to determine geographic position and as a time reference source. In this context, it is useful to clarify the role of the Network Time Protocol (NTP), which is the standard mechanism used by operating systems to synchronize the clock. NTP works by exchanging packets with one or more remote servers and estimating network delay and jitter; under good conditions it can achieve millisecond-level precision, but the quality of the result strongly depends on connection stability. On mobile or congested networks, the error can increase significantly, making this method not always suitable for radio applications requiring strict timing.

To achieve higher precision, it is necessary to use a hardware time source such as the Pulse Per Second (PPS) signal available on some GPS receivers. The GPS does not only provide position data but also an absolute time reference derived from the atomic clocks aboard satellites. However, the time information transmitted in the NMEA serial stream is not sufficiently precise due to transmission and processing latency. The PPS signal solves this by providing an electrical pulse precisely aligned with the start of each UTC second. In practice, while the NMEA stream tells what time it is, PPS tells exactly when the second begins, allowing system clock alignment with microsecond-level accuracy. The two sources are therefore complementary: PPS alone is not sufficient without the temporal context provided by NMEA.

more info on my website