PointPerfect L-band Configuration


In this guide, we will review the hardware requirements and device configuration to receive and use PointPerfect service via L-band. The instructions on how to configure NEO-D9S and ZED-F9P for this purpose are explained in the respective configuration sections of the modules. The diagram below shows the L-band solution architecture.

Hardware Requirements

If you are interested to evaluate PointPerfect L-band solution, you need to have a u-blox L-band receiver NEO-D9S to receive PointPerfect L-band corrections, in addition to the high precision receiver supporting SPARTN format. The NEO-D9S receives the PointPerfect encrypted L-band stream and passes it to ZED-F9P.

The NEO-D9S and ZED-F9P receivers follow the u-blox configuration concept. The UBX-CFG-VALSET, UBX-CFG-VALGET, and UBX-CFG-VALDEL messages can be used to configure the SPARTN L-band correction data reception.

NEO-D9S and ZED-F9P can be connected via UART2.
Using the UART2 connection is common practice and recommended for customer designs, while UART1 or USB are the most convenient interfaces for monitoring and configuring both modules, using u-center, for instance.

The easiest way to configure the NEO-D9S and ZED-F9P receivers is to make use of the
C099-F9P and C101-D9S application boards (see the related user guides in particular Chapter 4 of the C101-D9S Application board user guide.

NEO-D9S configuration

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

L-band configuration

The PointPerfect service-specific configuration for CFG-PMP keys need to be done for your region (either US or EU) before the NEO-D9S receiver can receive PointPerfect correction data.

The L-band configuration keys to be setup are listed below:


Please contact us at support@thingstream.io to obtain the NEO-D9S PointPerfect L-band configuration keys value for your specific region.

Interface configuration

The UART2 interface of NEO-D9S needs to be configured to allow communication with ZED-F9P, using the following configuration items:

Configuration item Value



Also, check 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.

Functional Check

Initial functional checks that are required to verify that NEO-D9S is operating correctly:

  • NEO-D9S communication has been established (e.g., via u-center) through UART1 or USB.

  • NEO-D9S shall be running running FW PMP 1.04 available online.

  • The L-band antenna is plugged in.

  • The L-band configuration item values have been verified.

  • The UBX-RXM-PMP message can be used to check the decoded correction data(from u-center Messages View). The image below is for reference only.

It is important to check the UART2 communication to ZED-F9P, e.g., using the UBX-MON-TXBUF message as shown in image below.

ZED-F9P Configuration

ZED-F9P needs to be configured to receive and use the SPARTN L-band correction stream, in the form of a UBX-RXM-PMP message, from NEO-D9S.

L-band configuration

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

Configuration item Value


Enable CFG-SPARTN-USE_SOURCE as 1-LBAND (from Advanced Configuration View). Please refer to the image shared below. For more details regarding SPARTN source configuration, please refer to ZED-F9P integration manual.

Interface configuration

The UBX protocol needs to be enabled on the ZED-F9P UART2 input:

Configuration item Value

  • CFG-UART2INPROT-UBX 1 (true)

L-Band Dynamic Keys and Decryption

The decryption of the SPARTN messages happens inside ZED-F9P module. ZED-F9P needs to have the proper L-band dynamic keys to decrypt the encrypted SPARTN data stream. The device can subscribe to the /pp/ubx/0236/Lb topic via MQTT to get the L-band dynamic keys in UBX format. Please contact support@thingstream.io if you need help with getting the L-band keys to ZED-F9P 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 ZED-F9P again.

Functional Check

Functional checks that are required to verify that ZED-F9P is operating correctly with NEO-D9S:

  • The user has established communication with the ZED F9P module (e.g. via u-center 22.07 through UART1 or USB)

  • ZED-F9P shall be running running FW HPG 1.32 available online. The GNSS antenna has been plugged in.

  • The L-band and keys configuration has been done for ZED -F9P as described above. UBX-RXM-SPARTNKEY message can be enabled to verify the module has L-band dynamic keys. The description of UBX-RXM-SPARTNKEY message can be seen in the applicable interface description.

  • ZED-F9P UART2 has been connected to the NEO-D9S UART2.

  • UBX MON COMMS messages can be enabled now to verify that UBX messages, including UBX-RXM-PMP, are received on the ZED-F9P UART2:

  • Check the correction streams at ZED-F9P connected to u-center by viewing the UBX-RXM-COR message as shown in below image.

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.