Setup guide
This section describes how to set up SatPulse and the software that works with it.
Before installing SatPulse, you obviously need a working OS. SatPulse runs on Linux, macOS and Windows, although not all features are available on every OS. When running headless, you should get to the point where you can log in with SSH.
On a 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 install Fedora. On a CM4 or CM5, if you are connecting the TX/RX pins on the GPS board to the 40-pin HAT connector on the carrier board, then you also need to configure the UARTs.
The first two preliminary steps are:
- Install SatPulse. After this, you can use satpulsetool without any additional configuration.
- Identify the serial device connected to the GPS and verify that data is being received. You will also need to know the baud rate.
After that, you can use SatPulse in a couple of ways. The easiest way to get started is to use SatPulse Workbench to test out your receiver; no configuration is needed.
If you want to use your receiver in production, then you will want to use the satpulsed service.
In this case, you will probably want a static IP address;
the network configuration page describes how to do this on Linux.
After that you will want to establish a baseline setup where satpulsed is running, and monitoring is working:
- Configure and run satpulsed.
- Monitor satpulsed in a variety of ways.
On top of the baseline, you can add support for positioning with RTK and/or timing.
For positioning, RTK setup shows how to configure SatPulse for the base side and the rover side of an RTK setup.
For timing, there are two levels, depending on your hardware:
- Basic use with NTP builds an NTP server on general-purpose, widely available hardware, such as a Raspberry Pi, with accuracy in the microsecond range.
- Precision timing with a PHC uses a network interface with a PTP Hardware Clock that timestamps the GPS PPS signal in hardware. This supports a PTP server as well as NTP. It can achieve accuracy in the tens of nanoseconds, but needs very specific hardware. This capability is available only on Linux.