PointPerfect Localized Distribution



PointPerfect Localized correction service via MQTT (Internet) offers quick delivery of high precision accuracy by providing your device only the SPARTN corrections applicable to your location.  This feature offers several advantages over the traditional continental streams, including significantly reduced bandwidth requirements, unencrypted streams, and seamless transition between regions.  

This page describes our PointPerfect correction service with localized corrections delivered via our MQTT service.  If you wish to receive all continental corrections, see our Continental corrections page.  If you wish to use our continental corrections service with an L-Band satellite delivery, please see our L-Band Configuration page

Benefits of Localized Corrections Distribution

PointPerfect Localized offers many benefits to users, including:

PointPerfect Localized System Architecture

The correction data used by the Localized distribution method is the same as in our high-precision Continental streams.  For the localized PointPerfect architecture, the correction data is spread across multiple nodes and delivered through individual node MQTT Topics. 

How it works

PointPerfect Localized works by dividing the coverage area into a grid of tiles. Each tile contains a set of nodes that are relevant to a user located within that tile. Unlike the continental level approach where a device subscribes to the continental level topic, in the localized approach a device subscribes to the localized node topic based on its location. This ensures that the device receives only the correction data that is relevant to its location, greatly reducing the required bandwidth.


Nodes are locations for which SPARTN correction streams are generated to enable a highly precise positioning solution. Each node is named according to its location, and this name is used to access the localized SPARTN data through the corresponding localized node topic. The data transmitted through each node is optimized based on its location, which greatly reduces the amount of bandwidth. This optimization process filters out unnecessary data that is not relevant to the user, ensuring that the remaining corrections are for the node's location as explained in the image below. Dynamic users moving throughout the region must transition to different nodes, to continuously and seamlessly access the SPARTN correction streams. 


The distribution of node information within the coverage areas is facilitated through the use of tiles in the service. The tiles layout is designed based on a pre-defined algorithm similar to a "GeoHash". Each tile name is based on its location and zoom level, which determines its specific location and size. Each tile contains a set of nodes that are relevant to a user located within that tile. This may include nodes outside the tile boundaries to support users on dynamic platforms.

In the image shared below, the triangles represent nodes and the green rectangle is a tile. The number of nodes in a tile depends on the zoom level. 


The device uses its location to select the localized node topic to subscribe to. This ensures that the device receives relevant localized data. The image below is an example architecture for a service to device distribution of localized data. 

After provisioning the device, i.e. obtaining the client credentials from the Thingstream portal as explained in the Point Perfect Getting Started guide, the device calculates the tile location

Once the tile has been calculated, the device subscribes to the node dictionary topic (tile topic) for the calculated tile to receive localized corrections for the closest node. 


Below is a continuation of configuration steps from the PointPerfect Getting Started guide. 

You should already have:

1.      Created a PointPerfect location thing in your Thingstream domain account,

2.      Downloaded the JSON file from your Thingstream PointPerfect location thing and

3.      Downloaded, installed, opened u-center and connected to the port of your F9P device

The final step is to load the JSON configuration file using u-center.

Open the Receiver menu and select the MQTT Client item as shown in this screenshot.

Selecting the MQTT Client item will open a new dialog as shown in the image below.

After clicking 'OK,' the MQTT client will establish a connection to the broker, subscribe to the nearest node topic as determined by your device's location and receive localized corrections data. 


You can check the MQTT connection status in the u-center's status bar.

Clicking on the green connector icon will open the log, where you can monitor the messages being received and view the MQTT topic subscriptions as demonstrated below.

Python sample script: PointPerfect MQTT Client 

To evaluate the PointPerfect localized version with an MQTT Client built-in your host application, please refer to the PointPerfect MQTT Client sample python script available in the Thingstream Downloads PointPerfect section to help you get started. 

Reference Documentation

[1] ZED-F9P Integration manual, UBX-18010802
[2] u-center User guide, UBX-13005250
[3] u-blox F9 HPG 1.32 Interface description, UBX-22008968
[4] C099-F9P application board User guide, UBX- 18063024
[5] EVK-F9P-01 evaluation kit User guide, UBX-22038408  
[6] Thingstream Knowledge Base – Services Support