PointPerfect getting started

Introduction

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 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 with the options to see the details or the credentials of the new Thing you just created.

Device Details

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 Status

  • the Plan associated with it

  • the Device ID

  • the User Agent that has connected

  • the Tags

  • 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.

Individual Plans

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

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

Device Provisioning

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.

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.

Device Configuration

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.

Dynamic Keys

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.

The dynamic key topic is shown in the Credentials tab and it must be configured in the device so it can subscribe to it.

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.

u-center

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 that supports PointPerfect MQTT can be obtained currently by sending a request to support@thingstream.io. The current publicly available version does not currently support the service.

Preparation

In order to access the service you need to download the certificates that are available in the Thing you have created according to the process described in the previous section. Once you have the certificates available you should configure u-center to use them, this is done by adding the certificates in the correct folders. First you must create a folder to hold the certificates in your u-center installation drive (assuming the installation drive is C): C:\GIT\u-center1\Certs.

Once you create the folder you must add the following files that hold the certificates and the keys you have downloaded from the Thingstream platform as described above:

  • C099-F9P.private.key

  • C099-F9P.public.key

  • root-CA.crt

The next step is to create the configuration file that u-center will use for the connection to the PointPerfect broker. You will need to copy and edit the following file and store it as your <your configuration>.xml file. You can freely choose the filename.

For the configuration to work you need to edit the Name and ClientID, using the values that are visible in your Thing details on the Thingstream platform.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<ns2:MqttSpyConfiguration xmlns:ns2="http://baczkowicz.pl/mqtt-spy-configuration">

<Connectivity>

<ConnectionV2>

<Name>YOUR DEVICE NAME HERE</Name>

<Protocol>MQTT 3.1.1</Protocol>

<ServerURI>ssl://a33sb7ib6wqeu4-ats.iot.eu-west-1.amazonaws.com:8883</ServerURI>

<ClientID>YOUR CLIENT ID HERE</ClientID>

<UserCredentials>

<Username>N/A</Username>

<Password>N/A</Password>

</UserCredentials>

<CleanSession>true</CleanSession>

<ConnectionTimeout>30</ConnectionTimeout>

<KeepAliveInterval>3600</KeepAliveInterval>

<SSL>

<Mode>BASIC</Mode>

<Protocol>TLSv1.2</Protocol>

</SSL>

<UserAuthentication>

<AskForUsername>false</AskForUsername>

<AskForPassword>false</AskForPassword>

</UserAuthentication>

<AutoOpen>false</AutoOpen>

<AutoConnect>false</AutoConnect>

<AutoSubscribe>false</AutoSubscribe>

<MinMessagesStoredPerTopic>10</MinMessagesStoredPerTopic>

<MaxMessagesStored>5000</MaxMessagesStored>

<MessageLog logQos="false" logRetained="false" logConnection="false" logSubscription="false" logBeforeScripts="false">DISABLED</MessageLog>

</ConnectionV2>

</Connectivity>

</ns2:MqttSpyConfiguration>

Configuration

Once you have downloaded and stored the certificates and created your XML configuration file, the final step is to load the xml 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 XML file you have created previously and then click OK.

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.