PointPerfect getting started
PointPerfect is a high performance GNSS augmentation service that enables high accuracy with high precision GNSS receivers. u‑blox delivers PointPerfect over IP or L-band satellite signals to any number of end-devices. PointPerfect’s broadcast is on a continental scale with homogeneous coverage in Europe and the contiguous USA, including up to 12 nautical miles (roughly 22 kilometers) off coastlines. It delivers sub-10-centimeter positioning accuracy with a convergence of just seconds.
PointPerfect adopts the industry-driven SPARTN messaging format. SPARTN is an industry-led format that enables the highly efficient transfer of GNSS correction data. It is transparent, and open to any integration partner.
In this guide we will see how to create PointPerfect Things in the Thingstream platform, how to provision them, and how to choose the plan that best suits your needs.
u-blox service platform sign-up
u-blox Thingstream is a service delivery platform providing a management console that you can use to enable and manage the entire suite of u-blox services , including IoT Location-as-a-Service and your Location Things (the logical representation of your location device in the Thingstream platform).
Sign-up is free, quick and easy. Just go to the management console and register with your company information. If you already have a Thingstream domain for IoT Communication-as-a-Service (MQTT Anywhere, MQTT Here or MQTT Now), or for IoT Security-as-a-Service you do not need to register again.
Creating PointPerfect Things
Before your devices can use the service, you must create a Thing that represents the device in the system. Click on the Location Services item in the navigation bar on the left of the page and then click on the "Add Location Thing" button on the top right of the page.
When you add a location Thing you can add different Things for different services, in this case we want to create /add a PointPerfect Thing.
When you click on the Add PointPerfect Thing button, you will be prompted to enter a friendly name for the newly created Thing.
After you added the name, click Create to continue, now you will be asked to choose a Plan. For now let's skip this step, more about plans later in the guide. When you click Skip a new dialog opens with the options to see the details or the credentials of the new Thing you just created.
Click on the View details to see the information of your newly created PointPerfect Thing.
In the Thing Details section you can see the information of the Thing and if it is active and connected (in the example above it is disconnected). Additionally you can see:
The Thing type
The Plan associated with it
The Device ID
The User Agent that has connected
The last time it connected
When it was created and updated
In this dialog you can also Activate the Thing, and by doing so you will need to choose a plan.
Choosing The Right Plan
When you want to activate a PointPerfect Thing you will need to choose a plan based on which you will be invoiced for using the service. u-blox offers a great selection of plans that are designed to meet most of the requirements and business plans that you might have.
Please see the Pricing page for the details of each plan.
The individual plans are a mix of fixed plans and hourly based plans. The fixed plans are meant for devices that will be consuming the service continuously, either over satellite L-band or over IP (MQTT). Conversely, the hourly based plans are optimal for devices that will consume the service only for an estimated monthly average. E.g. a device that is expected to use the service only 2 hours a day on average, would probably be satisfied with the monthly 60H plan.
Pooled plans are ideal for applications where the individual device usage may vary, depending on fluctuating factors, and where also the number of devices in use at any given time is not predictable or known. In this case, a fleet of a number of devices can be associated to a pooled plans to allow all the devices to share a pool of hours.
In the case below we will select the 250H individual plan and activate the device.
Once the plan is selected the Thing is now active and you can see its status now active and the plan to which it is associated. Also notice the renewal date that is now set on the monthly recurrence from when the plan was purchased.
Now that we created a new PointPerfect Thing and activated in the platform, we will need to enable it to connect to the platform. This is also known as "Provisioning".
To provision the Thing we will need to download the certificates that we will need to install (upload) to our physical device to make sure it can connect to the broker and receive the service.
Downloading Client Key and Certificate
To download the key and the certificate go to the Thing details and click on the Credentials tab.
In this tab you can see the information that are needed to provision and also configure the device for the service access. To download the key and the certificate click on the respective links and save the key and certificate to your system. Now you are ready to transfer the files to to your device so that it is fully authorized to connect to the service.
Please note that if you want to use u-center evaluation software, you only need to download U-Center Config JSON file which contains all the certificates and configurations needed by u-center.
The next step is to configure the device to subscribe to the right topics to access the service. In the Credentials tab, shown above, you can also find the topic names that are needed for the device to consume the service correctly.
The device will need to know where to get the keys that are needed to decrypt the encrypted SPARTN messages and to which topic to subscribe to receive the correct stream for PointPerfect data.
More details on the PointPerfect service can be found in the service description document.
For the device to use the service, it must have access to the Current key to decrypt the data. If the device does not have network connectivity, the keys can be copied from the Credentials tab (as shown above) and transferred manually to the device. The Current and Next keys are provided so that two keys can be provisioned at once. The key used to encrypt the data is expected to change every four weeks, thus giving a eight weeks time span in which the device should be able to access the service before a new set of keys is needed.
Dynamic Key Topics
If the device has network connectivity during the eight weeks of key validity, even if only for short periods, it can subscribe to the topics and receive the keys in real time when they change.
Note that due to the asynchronicity of MQTT, the device will always receive the latest keys even if it misses the publishing time.
Service Data Topics
The service data topics depend on the plans chosen and they will differ between the L-band + IP service plans and the IP only plans. So, please pay attention to the differences especially if you have two different plans in your domain to support different applications and devices.
The list of current topics can be seen in the service description document.
Once you configure the topics for the PointPerfect data streams, the device is ready to access and consume the service.
Putting it All Together
Now that your device is configured, it can access the service. If the configuration was successful you should be seeing the Thing status changing to Connected in the Things details. Furthermore , when the device subscribe to PointPerfect topics, the Events tab in the Thing Details will show the successful subscribing operation as shown below.
Using u-blox Products: u-center and ZED-F9P
If you are interested in evaluating PointPerfect as part of a full solution, you might want to use also a u-blox high precision module such as the ZED-F9P. The ZED-F9P ships with the C099-F9P evaluation board.
The first step is to install and configure u-center to use the high precision GNSS receiver board C099-F9P (please refer to the u-center and C099-F9P board documentation on how to configure the solution).
Once you have verified that your basic GNSS setup is operating, you can proceed to the configuration of u-center to access the service.
How to Obtain u-center
The version of u-center 22.02 that supports PointPerfect MQTT can be downloaded from Thingstream downloads portal portal.thingstream.io/app/downloads/pointperfect.
Note that u-center needs to be run as Adminstrator or installed in a folder that does not have restricted permissions, otherwise you will receive an error as shown in the screenshot below when trying to install the MQTT client configuration file.
In order to access the service you only need to download "U-Center Config" JSON file from Thingstream > Location Things > Credentials
This will be the configuration file that u-center will use for the connection to the PointPerfect broker. No editing is needed.
Once you have downloaded and stored the configuration file, the final step is to load the JSON into u-center.
First open the Receiver menu and select the MQTT Client item as shown in the next screenshot.
Selecting the MQTT Client item will open a new dialog. Click on the ellipsis to browse your file system and select the correct JSON config file then click on Update topics and select the topic you are interested in. currently we provide two option
Please note that what you select here should be aligned with your plan.
After you click OK, u-center will connect to the PointPerfect service and start receiving the augmentation data. You can see if the MQTT is connected in the u-center status bar and clicking on the green connector will open the log where you can see when each message is received, as shown below.
At this point the C099-F9P is receiving PointPerfect service and you can see the performance of the solution by utilizing u-center. Please refer to u-center and ZEDF9P documentation for more information on how to analyze the high precision GNSS performance.
Dynamic Keys in UBX format
/pp/ubx/0236/ip (Topic for IP dynamic keys in UBX format)
/pp/ubx/0236/Lb (Topic for L-band + IP dynamic keys in UBX format)
AssistNow over PointPerfect MQTT
Python sample script: PointPerfect MQTT Client
If you are interested to evaluate PointPerfect with an MQTT Client built-in your host application, you may please refer to PointPerfect MQTT Client sample python script available in the Thingstream Downloads PointPerfect section to get started. The script demonstrates on how to authenticate the MQTT client with the broker and subscribe to the topics.
Zero Touch Provisioning
The device provisioning process described above is tedious and often slows down the production line increasing manufacturing costs. That's why u-blox has developed a much more straightforward way of doing bulk provisioning on large fleets of devices. This process is called Zero Touch Provisioning (ZTP). You can refer to the PointPerfect ZTP solution here.
PointPerfect L-band Configuration: NEO-D9S, ZED-F9P and u-center
NEO-D9S is a satellite data receiver for L-band correction broadcast, which can be configured to be used with a variety of correction services. The PointPerfect L-band guide document provides instructions on how to configure NEO-D9S and the ZED-F9P receivers for PointPerfect L-band evaluation purpose.