PointPerfect Service Description


The PointPerfect service is designed to provide high-precision GNSS corrections to suitable receivers within a client system to allow for decimeter-level location accuracy.

Data Format and Distribution Protocol

PointPerfect uses either the MQTT 3.1.1 protocol (for IP-based connections) or L-band satellite for distribution of correction data. The correction data consists of a collection of messages in the SPARTN 2.0 format. Typical client systems will either exclusively use IP connections or a combination of IP and L-band.

The table below shows the supported SPARTN message types:

For IP, PointPerfect publishes SPARTN correction messages to topics within the PointPerfect MQTT broker. To obtain correction data, a client system must connect to the broker, subscribe to the relevant topics and then read and process the published messages.

For L-band, the correction data is published as a stream of data.

MQTT Topic Structure

The topic structure follows the service distribution model to support both IP and L-band solutions and their combination. Currently the following models are supported:

  • L-band + IP

  • L-band

  • IP

The following table shows the topics used by the PointPerfect system.

Encryption/Authentication Implementation

The implementation of encryption & authentication for SPARTN messages is described in section 8.15 of the SPARTN 2.0 specification. However, PointPerfect implements a system-wide approach to authentication and encryption that combines elements of the SPARTN specification with those of MQTT.

Connections to the PointPerfect MQTT broker are made over TLS using system-unique X.509 certificates that can be downloaded and managed with the Thingstream portal. These certificates provide mutual trust between the client system and the MQTT broker. The MQTT client must also be configured with client-unique credentials (client ID, client certificate).

The SPARTN messages published onto the correction topics (/pp/<plan>/<region>) may be encrypted per section 8.15 of the SPARTN specification. In order to decrypt this data, the client system must subscribe to the key topic /pp/key/<plan> to obtain the dynamic key and lease. This topic has a single message published to it by the PointPerfect service with the MQTT RETAIN flag set or through a dedicated REST API over HTTPS. This message will be updated every time the dynamic key is rotated, by default every 28 days. However, the dynamic key lease message (see below) contains details of the key validity period.

Note: for hybrid IP and L-band systems, the key leases must be obtained via MQTT or HTTPS as described above. The keys may then be cached on the client while they remain valid.

u-blox Receivers

In the case of u-blox high precision GNSS receivers (such as the F9P and F9K) the decryption of the SPARTN correction messages and the validation of messages using the Group Authentication Message is performed in the module itself.

In the hybrid IP + L-band solution, the u-blox L-band receiver (the D9S) can be connected to either the host or directly to the F9 module. In the former scenario, the host is responsible for reading PMP data from the D9S and passing this to the F9P/K which (in addition to the SPARTN functions noted above) will also unpack the SPARTN payload from the PMP message.

Dynamic Keys Lease

The dynamic keys lease message is encapsulated in a JSON structure in the following format:




"start":"Current key lease start time (ms since start of epoch UTC)",

"duration":"Current key lease duration (ms)",

"value":"Current key as hex string"



"start":"The next key lease start time (ms since start of epoch UTC)",

"duration":"Next key lease duration (ms)",

"value":"Next key as hex string"



Example System Architectures

The first diagram (below) shows a typical client system architecture for an IP-only system:

The second diagram shows a typical hybrid IP+L-band client system:

Technical Specifications

The following table shows the initial technical specifications of the service for the SPARTN 2.0 version.

3. Horizontal accuracy: Typically, 3-6cm with compatible receiver. All accuracy results are based on 1) error-free GNSS observation data; 2) receiving complete and uninterrupted SAPA correction data; 3) ambiguity fixed position results4. Not available in the initial implementation5. Not available in the initial implementation

Service Coverage

Homogeneous coverage in Europe and the contiguous USA, including up to 12 nautical miles (roughly 22 kilometers) off coastlines.

Contiguous USA Operational

All states, excluding Alaska, Hawaii, and offshore US territories

Europe Operational

Albania, Andorra, Austria, Belgium, Bosnia and Herzegovina, Bulgaria, Croatia, Czech Republic, Denmark, Estonia, Finland, France, Germany, Holy see, Hungary, Italy, Latvia, Liechtenstein, Lithuania, Luxembourg, Monaco, Montenegro, Netherlands, Norway, Poland, Portugal, San Marino, Serbia, Slovakia, Slovenia, Spain, Sweden, Switzerland, UK.

Excluding Sardinia, Corsica and the western part of Northern Ireland

Device Provisioning

The service allows for device provisioning through the User Interface of the Thingstream platform, or through the API interface for programmatic provisioning.