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
The following table shows the topics used by the PointPerfect system.
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.
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:
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:
The following table shows the initial technical specifications of the service for the SPARTN 2.0 version.
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
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
The service allows for device provisioning through the User Interface of the Thingstream platform, or through the API interface for programmatic provisioning.