I maintain a large collection of hardware for testing SatPulse. I have chosen the hardware to provide coverage along multiple dimensions: CPU architecture, OS, PHC, GPS protocol and serial connection type. For 0.3, the machines on which I have performed automated testing of SatPulse with a PTP hardware clock are as follows.

Hostname Machine OS Ethernet GPS
abondance ASUS S500SD Debian 13 I225-T1 ZED-F9P
I225-T1 mosaic-G5
banon BeagleY-AI Debian 13 onboard TAU951M-P200
brie Intel 12th Gen PC Ubuntu 26.04 E810-XXVDA4T NEO-F10T
burrata Raspberry Pi CM4 Debian 13 (32-bit) onboard ATGM332D-F8N-76
caciocavallo Raspberry Pi CM4 Debian 13 onboard BG7TBL CM55
chaource Raspberry Pi CM4 Ubuntu 26.04 onboard TAU1201
gubbeen Raspberry Pi 5 Debian 13 I210-T1 M10050-KB
maasdam Minisforum MS-01 Fedora 44 I226-T1 ZED-F9T-20B
morbier Raspberry Pi CM4 Debian 13 onboard LEA-M8F
pecorino Raspberry Pi CM4 Fedora 44 onboard LEA-6T
ricotta Raspberry Pi CM4 Debian 13 onboard AT362-6T-30
roquefort Raspberry Pi CM4 Debian 13 onboard LG290P
serpa Raspberry Pi CM5 Debian 13 onboard UM980
taleggio Raspberry Pi 5 Debian 12 TimeHAT NEO-M9N
vacherin Raspberry Pi CM5 Debian 13 onboard ZED-X20P
valdeon Raspberry Pi CM5 Debian 12 onboard MAX-F10S
valencay Raspberry Pi CM5 Debian 12 onboard LEA-M8T
valtellina Raspberry Pi CM5 Debian 13 onboard T303-5D
venaco Raspberry Pi CM5 Debian 13 onboard ATGM332D-5N
wensleydale Raspberry Pi CM4 Debian 12 onboard UM960

More details on the machines that are new or have changed since the 0.2 hardware test matrix:

abondance
ASUS S500SD desktop (Intel B660 chipset) with an Intel i5-12400 and 64 GB RAM. It has two Intel I225-T1 PCIe cards: one is connected to an internal ArduSimple simpleRTK2B M.2, which has a u-blox ZED-F9P, and the other is connected to a Septentrio mosaic-G5 P3 USB dongle from gnss.store. This supports cross-timestamping with PTM.
banon
BeagleY-AI with 4 GB RAM, booting from a microSD card. GPS is an Allystar TAU951M-P200 connected to UART1; its PPS goes into the PHC of the onboard Ethernet (the CPTS) through header pin 33.
burrata
Raspberry Pi CM4 with 1 GB RAM and 8 GB eMMC, in a Waveshare case, running 32-bit Raspberry Pi OS. GPS is a Zhongke ATGM332D-F8N-76 connected to UART0.
caciocavallo
Raspberry Pi CM4 Lite with 2 GB RAM and a 64 GB SD card, on a Waveshare PoE Base Board B. GPS is a BG7TBL CM55 GPSDO, which has a LEA-M8T, connected over RS232 to UART3.
chaource
Raspberry Pi CM4 Lite with 8 GB RAM, on the official IO board with a 256 GB NVMe SSD in the PCIe slot. GPS is an Allystar TAU1201 on a Star River SR1723TAU1201 board, connected to UART0.
ricotta
Raspberry Pi CM4 with 8 GB RAM and 32 GB eMMC, on the official IO board. GPS is a Zhongke AT362-6T-30 connected to UART0.
roquefort
Raspberry Pi CM4 with 4 GB RAM and 8 GB eMMC, on a Waveshare PoE board. GPS is a Quectel LG290P on a Mozihao breakout board, connected by USB.
serpa
Raspberry Pi CM5 with 8 GB RAM and NVMe SSD, on a Geekworm X1500 carrier board. GPS is a Unicore UM980 connected to UART0.
vacherin
Raspberry Pi CM5 Lite with 8 GB RAM and 500 GB NVMe SSD, on the official IO board. GPS is a u-blox EVK-X20P connected by USB.
valdeon
Raspberry Pi CM5 with 4 GB RAM and 32 GB eMMC, on a Waveshare Mini Base Board (A). GPS is a u-blox MAX-F10S on a Timebeat sandwich board.
valtellina
Raspberry Pi CM5 Lite with 8 GB RAM and NVMe SSD, on the official IO board. GPS is a Techtotop T303-5D connected to UART0.
venaco
Raspberry Pi CM5 with 8 GB RAM and NVMe SSD, on the official IO board. GPS is a Zhongke ATGM332D-5N connected to UART0.

Compared to 0.2, the GPS modules I am testing are considerably more diverse. Notable additions are:

  • from Zhongke Microelectronics using CASIC:
    • ATGM332D-5N is a very inexpensive, common, single-band module (module cost is $2 in quantity)
    • ATGM332D-F8N-76 is a very inexpensive dual-band module (module cost is $3 in quantity)
    • AT362-6T-30 is a modern, single-band timing receiver
  • from Allystar:
    • TAU1201 is an inexpensive, common dual-band module (not quite as cheap as ATGM332D-F8N-76)
    • TAU951M-P200 is an RTK-capable dual-band module
  • from Septentrio, mosaic-G5 P3 is a very nice but very expensive ($400) module
  • from Techtotop (one of the main vendors of timing receivers in China, but not known in the West), the T303-5D is their latest dual-band timing receiver

On the OS side, I have SatPulse working on 32-bit architectures and test this on 32-bit armhf Debian. I have also added Ubuntu.

On the PTP hardware clock side, SatPulse now works on the BeagleY-AI. (Documentation has not been updated for this yet, but it needs a device-tree overlay.)

In addition to PHC-centric testing, I also perform ad-hoc testing of the NTP and RTK functionality using the following machines.

asiago
ASUS NUC running Windows 11.
mimolette
Mac mini M4 Pro running macOS 26.
cheshire
13-inch MacBook Air M3 running macOS.
piave
Mini-PC with an Intel i3-7130U and 8 GB RAM, running FreeBSD 15.1.
edam
Mini-PC with an Intel N5105, 16 GB RAM and four Intel I226 NICs, running Fedora 44.
crottin
Raspberry Pi 5 with 1 GB RAM, running Debian 13.
beaufort
Raspberry Pi 4 Model B with 8 GB RAM, running Debian 13.
montasio
Raspberry Pi 3B with 1 GB RAM, running Debian 13.
ossau
ODROID-M1 (Rockchip RK3568) with 4 GB RAM, running Debian 13 (Armbian 26.8.3).
tomino
Radxa ZERO 3E (Rockchip RK3566) with 1 GB RAM, running Debian 13 (Armbian 26.5.1).

Additional GPS receivers tested during the 0.3 development cycle include:

  • from u-blox:
    • EVK-M101 (M10)
    • MAX-M8Q on a Waveshare HAT
    • a Star River SR1612U7F using a u-blox UBX-G7020
  • from Unicore, the UM982
  • from Quectel:
    • LC29H(AA) on a Waveshare HAT and a Mozihao board
    • LC29H(DA) on a Waveshare HAT
    • LC76G
  • from Allystar, the TAU1312
  • from Bynav:
    • M10
    • M20
  • from SinoGNSS:
    • K803
    • K901
    • K902
  • from Zhongke Microelectronics:
    • AT372-6P-34 (a single-band RTK board)
    • AT372-F8P-36 (a dual-band RTK board)

Updated: