This section describes how to set up all the software needed for a precision time server using SatPulse.

For a complete PTP/NTP time server on Linux, follow these steps.

  1. Install Linux. The goal of this stage is to get Linux installed and set up to the point where you can login with SSH. For Raspberry Pi, I recommend installing Raspberry Pi OS (note that kernel version 6.12.34 does not work for SatPulse or PTP). It is also possible to use Fedora. I wrote a guide for installing Fedora 41. In either case you probably want to set a static IP address.
  2. On a Raspberry Pi, if you are connecting the TX/RX pins on the GPS board to the 40-pin HAT connector on the carrier board, then you need to configure the UARTs.
  3. Install SatPulse. After this, you can use satpulsetool without any additional configuration.
  4. Identify the devices connected to the GPS and verify that data is being received. This can most easily be done with satpulsetool. There are two devices involved:
  5. [Configure and run satpulsed](/setup/satpulsed.html. This will install a service that runs the satpulsed daemon, which will synchronize the PHC with the GPS.
  6. Setup chrony. This:
    • synchronizes the system clock to the PHC;
    • runs an NTP client; this provides an important check that the PHC time is correct; and
    • runs an NTP server, if desired.
  7. Setup a PTP server. This uses the ptp4l daemon, which is part of LinuxPTP.