Setup guide
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.
- 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.
- 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.
- Install SatPulse. After this, you can use satpulsetool without any additional configuration.
- 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:
- a serial device; configuration also needs to know the baud-rate;
- a network interface with PTP hardware clock; configuration also needs to know what pin on the ethernet card is connected to the GPS PPS output.
- [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.
- 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.
- Setup a PTP server. This uses the ptp4l daemon, which is part of LinuxPTP.