Paul Barker

@pbarker@social.afront.org

Professional #SoftwareEngineer, #EmbeddedLinux expert & #OpenSource enthusiast.

I also enjoy amateur #WildlifePhotography and #Rambling.

Pronouns
He/Him
Location
Leeds, UK

Replying to @ravenlb@infosec.exchange

@ravenlb Oh, and you didn't ask, but:

Installed Raspbian on an SD card.

`apt update && apt install gpsd gpsd-clients pps-tools chrony`

Removed `console=ttyAMA0,115200` from /boot/firmware/cmdline.txt

Added to /boot/firmware/config.txt:

```
enable_uart=1
dtoverlay=pps-gpio,gpiopin=18
dtoverlay=disable-bt
init_uart_baud=115200
```

`systemctl disable --now serial-getty@ttyAMA0.service && systemctl mask serial-getty@ttyAMA0.service` (to be sure)

Modified in /etc/default/gpsd:

```
DEVICES="/dev/ttyAMA0 /dev/pps0"
GPSD_OPTIONS="-n -s 115200"
```

Added to /etc/chrony/chrony.conf:

```
refclock SHM 0 refid NMEA offset 0.0 precision 1e-1 poll 3 noselect
refclock SHM 1 refid PPS lock NMEA prefer precision 1e-7
allow <LAN IP address range>
```

Maybe some other fiddling, but that was about it!

Replying to @ravenlb@infosec.exchange

@ravenlb Sure! I bought from The Pi Hut, you can probably find the same parts from other vendors:

Uputronics GPS hat: thepihut.com/products/raspberr

Adafruit GPS antenna: thepihut.com/products/gps-ante

The Pi Hut also sell a GPS Hat Case, but don't buy it. Poor manufacturing tolerances mean it doesn't fit together properly with the hat above (despite advertising compatibility).

thepihut.comGPS/RTC Expansion Board for Raspberry Pi

Completely pointless Sunday project done! Stratum 1 NTP server on a Raspberry Pi 4, with an RMS offset of ~0.5µs.

```
$ chronyc tracking
Reference ID : 50505300 (PPS)
Stratum : 1
Ref time (UTC) : Sun Jul 05 17:18:17 2026
System time : 0.000000368 seconds fast of NTP time
Last offset : +0.000000479 seconds
RMS offset : 0.000000579 seconds
Frequency : 10.106 ppm fast
Residual freq : +0.004 ppm
Skew : 0.023 ppm
Root delay : 0.000000001 seconds
Root dispersion : 0.000010284 seconds
Update interval : 16.0 seconds
Leap status : Normal
```