PointPerfect L-band Configuration


PointPerfect L-band is a correction service delivered through an L-band satellite.  This delivery is ideal for use in remote and rural areas where cellular data services are unavailable, including offshore areas up to 12 nautical miles (roughly 22 kilometers) off coastlines.   

This guide will review the hardware requirements and device configuration to receive and use the PointPerfect service via L-band.  Instructions on configuring NEO-D9S and F9 receivers for this purpose are explained below. 

Note:  PointPerfect L-Band Satellite distribution is intended for customers in enterprise environments or those with B2B (business-to-business) agreements, and access may be provided when requested from an appropriate commercial domain account. At u-blox's discretion, exceptions may be made when the intended use is for academic purposes. Please email support@thingstream.io to request PointPerfect L-band access.

Benefits of PointPerfect L-band Corrections Distribution

PointPerfect L-band provides corrections offline without the need for a continuous internet connection.


With our L-band service, encrypted continental PointPerfect corrections are provided by a geostationary L-band satellite positioned above either the European or North American continents to a NEO-D9S receiver.  The NEO-D9S receiver passes the data to a high-precision receiver like the ZED-F9P. 

The diagram below shows the L-band solution architecture.

Please note:  PointPerfect corrections are provided via L-band, internet connectivity is not needed with our L-band service.  The MQTT delivery of PointPerfect keys depicted in this diagram is simply one method to transfer the dynamic keys to the F9 device, which are required to decrypt the corrections data.  More information about the L-band Dynamic Keys and Decryption is provided in later sections in this document. 

Hardware Requirements and Prerequisites 

To use the PointPerfect L-band solution, you need two receivers:

The correction receiver (NEO-D9S) receives encrypted PointPerfect L-band corrections from the L-band satellite and passes them to the F9 receiver.  The decryption of SPARTN messages happens within the F9 module using the current L-band dynamic keys.  

If you have not acquired the hardware to use L-band corrections, you can get started with both NEO-D9S and F9 receivers such as: 

The NEO-D9S and F9 receivers must be connected via UART2 which is common practice and recommended for customer designs. (See jumper configuration example in C101-D9S user guide.)  UART1 or USB are the most convenient interfaces for monitoring and configuring both modules (i.e. when using u-center etc.)

The NEO-D9S receiver requires an antenna that supports frequencies between 1540 MHz - 1559 MHz.  Please refer to section 4.2 of the NEO-D9S Integration manual [6] to learn more about antenna requirements. 

Along with the appropriate hardware devices mentioned above, PointPerfect L-band plans must be enabled on your thingstream domain to use the service. If you cannot select our PointPerfect L-band plans within your PointPerfect Location thing, please contact support@thingstream.io.   

L-band Receiver Configuration

The sections below describe how each receiver is configured. 

NEO-D9S configuration

NEO-D9S must be configured to receive SPARTN L-band correction data and forward these, encapsulated in UBX-RXM-PMP messages, to the F9 receiver via UART2.

L-band Configuration (D9S)

PointPerfect service-specific configuration for CFG-PMP keys (Point to multipoint configuration) must be implemented for your region (either US or EU) on the NEO-D9S receiver before it can receive PointPerfect correction data. 

Please contact us at support@thingstream.io to obtain the NEO-D9S PointPerfect L-band HEX (a decimal) configuration string of these keys for your specific region.

The HEX string can be loaded by:

Interface Configuration (D9S)

The UART2 interface of NEO-D9S needs to be configured to allow communication with the F9 receiver, using the following configuration items.  In u-center, use View -> Generation 9 Configuration View -> Advanced Configuration View.

Configuration item Value

Also, confirm the CFG-MSGOUT-UBX_RXM_PMP_UART2 is set to 1 (by default is enabled).
This message enables UART2 of NEO-D9S to output UBX-RXM-PMP messages. 

Note:  The baud rate of 38400 is stated because it is the default setting for an F9 device.  You can make this higher, but make sure both devices (D9S and F9) have the same baud rate setting.

Functional Check (D9S)

Verify that NEO-D9S is operating correctly with these functional checks, most can be performed with u-center, see the Pointperfect Getting Started Guide for how to download it, and the u-center user guide for more information.

The UBX-RXM-PMP message can be used to check the decoded correction data (the image below is for reference only)

It is important to check the UART2 communication to the F9.  In u-center, go to View, Messages View and find the UBX-MON-TXBUF message as shown in the image below.

F9 Receiver Configuration

Please confirm via the UBX-MON-VER message that the F9P has the latest firmware version.  

To use our L-Band service, the F9P device must be configured to receive and use the SPARTN L-band correction stream from the NEO-D9S in the form of a UBX-RXM-PMP message. 

L-band Configuration (F9)

The CFG-SPARTN-USE_SOURCE configuration key needs be set to LBAND:

Configuration item Value

This message value can be set using the View -> Generation 9 Configuration View -> Advanced Configuration View in u-center, please see the image below.

For more details regarding SPARTN source configuration, please refer to your product’s integration manual. 

Interface Configuration (F9)

The UBX protocol needs to be enabled on the ZED-F9P UART2 input (via View -> Generation 9 Configuration View -> Advanced Configuration View):

Configuration item Value

PointPerfect Configuration (F9)

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.

NOTE:  The steps below are to connect your MQTT client and retrieve the dynamic keys provided in your plan to decrypt the SPARTN messages from L-band corrections using the NEO-D9S.  

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

In the dialog box shown below, click on the ellipsis (...) icon to browse your file system and select the correct JSON config file. 

Choose the Continental correction type.  Continental corrections are the only correction type applicable to our PointPerfect L-band corrections.

Select “Subscribe to key topic” to retrieve the dynamic keys from MQTT.  Optionally you can “Subscribe to AssistNow topic.” Do not select “Subscribe to data topic”, as your source of corrections will be via L-band.   

After clicking 'OK,' u-center will establish a connection with the PointPerfect MQTT service and receive your encryption keys.  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 dynamic key (and AssistNow) messages being received, as demonstrated below. 

At this point the F9P is receiving data from the PointPerfect service via L-band.  You can see the performance of the solution via u-center. Please refer to u-center [2] and F9 documentation (integration manuals) for more information on how to analyze the high-precision GNSS performance.  

Functional Check (F9)

Functional checks that are required to verify the F9 module is operating correctly with NEO-D9S:

If all these checks pass, the ZED-F9P receiver should get into RTK positioning fix. If you are not able to see any of the messages above, please contact support@thingstream.io for assistance.

L-band Dynamic Keys and Decryption

Decryption of SPARTN messages happens within the F9 module. The configured F9 device must subscribe to the key topic /pp/ubx/0236/Lb via MQTT to collect and transfer the L-band dynamic keys to the F9 receiver in UBX format. Please contact support@thingstream.io if you need help with getting the L-band keys to the F9 receiver.

Note: The keys are not stored in non-volatile memory and will be deleted on every module reset or restart. In such cases, the keys need to be passed to F9 again.

Encryption keys switch mid-month, and both current and next keys are always available in Thingstream.  The current dynamic key must be provided to the F9 to retain connectivity.  Host systems can manage dynamic keys, requiring connection every two months or less, based on the key cycle and acquisition date.

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] NEO-D9S Integration manual, UBX-19026111
[7] u-blox Knowledge Base – Services Support