This page describes other software that SatPulse works closely with or addresses similar problems to what SatPulse addresses.

These are all open source, unless otherwise stated.

Timing

LinuxPTP

The LinuxPTP is the leading PTP implementation for Linux. It is written in C. It provides a number of programs. The main one is ptp4l, which implements the PTP protocol. SatPulse is intended to work in conjunction with ptp4l. It also includes the ts2phc program, which, with the -s nmea option, can transfer time from a GNSS receiver to a PHC using NMEA messages and PPS timestamps on an SDP, and the phc2sys program, which, with the -E refclock_sock option, can generate samples for chrony.

It is included in Debian and Fedora.

statime

statime provides a PTP daemon for Linux written in Rust. It can also be used as a library to implement PTP on other platforms, including embedded platforms.

NTP/NTPsec

NTP is the original implementation of NTP, which has now mostly been supplanted by the NTPsec fork.

SatPulse can provide timing information to NTPsec using the SHM reference clock protocol.

It is included in Debian and Fedora.

chrony

chrony is an implementation of NTP with advanced features lacking in NTP and NTPsec, notably support for using a PHC as a reference clock.

SatPulse can provide timing information to chrony using the SOCK reference clock protocol. SatPulse’s NTP support is mostly tested with chrony.

It is the default NTP implementation for Fedora.

ntpd-rs

ntpd-rs is a relatively new implementation of NTP in Rust.

ntpd-rs supports the SOCK reference clock protocol defined by chrony, and SatPulse also works with it.

It has been adopted by Ubuntu.

Positioning

RTKLIB

RTKLIB is the pioneering implementation of software RTK. It includes a number of versatile command-line utilities that are very useful when working with RTK, notably str2str and convbin. The original author of RTKLIB no longer maintains it. RTKLIB Explorer is an actively maintained fork.

It is included in Debian.

BKG Ntrip Caster

BKG Professional NtripCaster is the leading open source Ntrip caster. BKG is the German Federal Agency for Cartography and Geodesy, which was one of the main developers of the Ntrip protocol. It works on Linux.

SatPulse has been tested with it.

BNC

BNC, the BKG Ntrip Client, is a cross-platform graphical Ntrip client. It can perform a variety of realtime GNSS processing. Notably, it includes a realtime implementation of PPP, which combines raw observations from a GNSS receiver with RTCM-SSR corrections fetched over Ntrip. It can also work in batch mode.

SNIP

SNIP is a proprietary Ntrip caster, used to operate the RTK2go free public Ntrip service.

GNSS

gpsd

gpsd comprises a daemon and associated clients and tools. The daemon provides a socket interface through which clients can discover and receive information from GPS receivers using a device-independent JSON-based protocol. It is designed to work without a configuration file.

It is very widely used and included in Debian and Fedora.

This blog post compares the design of SatPulse and gpsd.

PyGPSClient and pygnssutils

PyGPSClient is a cross-platform GNSS monitoring and configuration GUI. pygnssutils is a collection of command-line GNSS tools (gnssreader, gnssstreamer, gnssserver, gnssntripclient, gnssmqttclient, pyrinexconv). They are both written in Python and use a common set of Python libraries for parsing various GNSS protocol formats.

There is a lot of overlap of functionality with SatPulse.

Lady Heather

Lady Heather is a timing-oriented monitoring and control program for GNSS disciplined oscillators and receivers. There is also a useful GitHub repo, whose status is not completely clear.

It was originally written for Windows, but has been ported to X11 on macOS and Linux.

Geoclue

GeoClue is the standard geolocation service for the Linux desktop. It distributes geolocation information over D-Bus. It can get geolocation information in NMEA format from a TCP port.

Vendor tools

Vendors all have their own proprietary programs for working with their receivers. These are all Windows-only.

  • u-blox: u-center/u-center2
  • Unicore: UPrecise
  • Quectel: QGNSS
  • Zhongke: GnssToolkit3
  • Allystar: Satrack
  • Techtotop/Taidou: TDMonitor
  • ByNav: BY_Connect
  • ComNav/SinoGNSS: CRU