PointPerfect Service Description

Overview

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 where clock corrections come in every 5 seconds and GAD, HPAC and OCB messages come in every 30 seconds.  The size of the clock corrections is few hundreds of bytes. And the GAD, OCB messages are less than 1 kB each while HPAC message is around 5 kB. 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:

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:

 {

   "dynamickeys":{

   "current":{

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

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

         "value":"Current key as hex string"

   },

   "next":{

      "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"

   }

   }

L-Band Frequency Topic

The topic provides you information about the current frequency in MHz ("value") that is in use for a particular region. It also provides you with the information about the next frequency and the next frequency "start" time (in milliseconds since start of epoch UTC). Once the "start" time  to next frequency has passed, you would no longer see the next frequency, you would only see the current frequency. This information is provided so you can configure your receivers to the right frequency when the frequency switches. 

Here is a sample .json message that you would receive when subscribed to L-band frequency topic.

{

   "frequencies":{

      "us":{

         "current":{

            "value":"1558.21"

         },

         "next":{

            "start":"1642089600000",

            "value":"1556.29"

         }

      },

      "eu":{

         "current":{

            "value":"1545.26"

         }

      }

   }

}

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.

* Horizontal accuracy: Typically, 3-6cm with compatible receiver. All accuracy results are based on :1) error-free GNSS observation data2) receiving complete and uninterrupted PointPerfect correction data
3) ambiguity fixed position results

Service Coverage

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

Contiguous USA and Canada Operational

Europe Operational

Australia Operational

3. New South Wales, Victoria, South Australia and Queensland regions, including Sydney, Melbourne, Adelaide, Brisbane and Tasmania regions. 

Device Provisioning

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

PointPerfect Deserialized MQTT Topics

The SPARTN correction data IP topics (e.g. /pp/ip/eu) provide the SPARTN messages in a sequential order, where clock corrections come in every 5 seconds and GAD, HPAC and OCB messages come in every 30 seconds. The GAD, HPAC and OCB messages are required by the receiver to achieve a PointPerfect solution. 

To reduce the time the receiver takes to start using the correction data and achieve a PointPerfect solution, the device can subscribe to each of the SPARTN message topics individually. This enables the device to get the required data right away rather than waiting for 30 seconds while subscribed to the assembled SPARTN topic. 

The device needs to subscribe to the individual topics in the order described as follows to utilize them. Once the receiver has a fix (position information), the device shall first subscribe to the GAD topic. The device shall then subscribe to the HPAC topic, and finally to the OCB topic. After the data from these three topics have been received, the device shall subscribe to the CLK topic to receive the clock corrections.  Please refer to message sequence diagram shared below.

The individual topics used by PointPerfect for SPARTN messages for IP based plan are described in the table below.