PointPerfect L-band Configuration
Introduction
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 services-support@u-blox.com 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.
-------------------------------------------------------------------------------------------
Do's & Don'ts: Best Practices and Common Pitfalls
Do's:
Use a compatible antenna: Ensure you're using an antenna that supports L1 & L2/L5 frequencies that your GNSS receiver requires. Pair the NEO-D9S with an L1 antenna capable of tracking frequencies between 1540-1559 MHz.
Update your F9/X20 firmware: Keep the firmware up to date to ensure decryption of L-band corrections and benefit from new features, fixes, and performance improvements.
Create a PointPerfect L-band Thing: After requesting a PointPerfect L-band plan from u-blox, create your L-band Thing via the u-blox portal to enable the service.
Ensure clear line-of-sight: Place the antenna in an open area with a clear view of the sky to ensure accurate L-band signal reception, free from obstruction by buildings or trees.
Check baud rates: Ensure the GNSS reciever and NEO-D9S baud rates are correctly configured and match.
Check the initial NEO-D9S satellite lock-on and monitor: On the NEO-D9S, verify satellite lock by checking the UBX-RXM-PMP message. Regularly monitor correction reception during rover operation by reviewing the F9/X20 UBX-RXM-COR message to assess NEO-D9S signal quality and ensure uninterrupted corrections.
Don'ts:
Don’t test indoors: L-band corrections require a direct view of the sky. Indoor testing will result in signal loss and reduced performance. Keep the antenna away from sources of radio interference such as Wi-Fi routers, metal structures, or high-voltage power lines that could disrupt signal reception.
Don’t use the u-blox ANN-MB antenna outside North America: The L-band frequency used by this antenna differs by region. Ensure compatibility before deployment in non-North American areas.
Don’t send the NEO-D9S HEX code to the F9/X20: The HEX code is intended only for configuring the NEO-D9S. Sending it to the F9/X20 will have no effect.
Don't forget RAM, BBR & Flash layers: When modifying the configuration (e.g. CFG-SPARTN-USE_SOURCE), apply the changes to all three layers to ensure they persist after a power loss.
-------------------------------------------------------------------------------------------
Architecture
With our L-band service, encrypted continental SPARTN PointPerfect corrections are provided by a geostationary L-band satellite positioned above the equator. The corrections are delivered to a NEO-D9S receiver. The NEO-D9S receiver then passes the data to a high-precision receiver, such as 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.
Still need help?
If you need more help or have any questions, please send an email to services-support@u-blox.com.
Hardware Requirements and Prerequisites
To use the PointPerfect L-band solution, you need two receivers:
a high-precision GNSS receiver
Examples: ZED-F9P, ZED-F9R, NEO-F9Pan L-band GNSS correction receiver
Examples: NEO-D9S receiver from u-blox
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 C101-D9S (and user guide)
the EVK -F9P or C099-F9P or similar application board from our vendor partners
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 services-support@u-blox.com.
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 corresponding region on the NEO-D9S receiver before it can receive PointPerfect correction data.
Please contact us at services-support@u-blox.com 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:
Extracting the HEX value from the file you receive
Pasting this HEX value into the Custom field in u-center (View -> Message View -> Custom)
Selecting the HEX Radio button
Clicking the Send button at the bottom of the Message – CUSTOM window
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
CFG-UART2OUTPROT-UBX 1 (true)
CFG-UART2-BAUDRATE 38400
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.
Confirm your L-band antenna is connected, and placed in an open sky view to retrieve L-band messages with a direct line-of-sight to the geo-stationary satellite (typically south facing)
Confirm communication has been established with the NEO-D9S (e.g., via u-center) through UART1 or USB.
Use the Connect icon in the communication toolbar to connect to the corresponding COM port for your NEO-D9S
go to View, Packet Console to view incoming messages
Confirm the NEO-D9S firmware version is PMP 1.04
use View, Messages View, and open UBX-MON-VER
The L-band configuration item values have been verified.
use View, Messages View, open UBX-RXM-PMP
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
CFG-SPARTN-USE_SOURCE 1 - LBAND
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
CFG-UART2INPROT-UBX 1 (true)
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:
The user has established communication with the F9 module (e.g. via u-center 23.08 or later through UART1 or USB
The F9 module has the latest FW version - find within each of our high-precision GNSS product pages under the documentation and resources section
The GNSS antenna has been plugged in and has a clear view of the open sky
The L-band and keys configuration is completed for the F9 as described above.
Enable and view the UBX-RXM-SPARTNKEY message to verify the L-band dynamic keys.
The F9 UART2 has been connected to the NEO-D9S UART2.
UBX-MON-COMMS messages can be enabled to verify that UBX messages (including UBX-RXM-PMP) are received on the F9 UART2:
View the UBX-RXM-COR message to check the correction streams on the connected F9 as shown in the image below.
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 services-support@u-blox.com for assistance.
Maintaining Fix in degraded locations
It is IMPORTANT to NOTE there may be circumstances that cause your device to lose its corrections and fall back to 3D/DGNSS. This could be due to an interrupted L-Band connection - for example when driving under trees.
To delay the fallback to DGNSS we recommend increasing the CFG-NAVSPG-CONSTR_DGNSSTO timeout value, please see the following article for further information: My Rover loses RTK Fix & goes into 3D/GNSS
Increasing the timeout value will need to be managed against how important it is for your use case to drop to DGNSS faster. The accuracy degrades by a few Centimetre per minute, so setting the timeout to the maximum value of 255 seconds (approximately 4 minutes) will mean a reduced accuracy of approximately 10-20 CM.
Determining your rover's line of sight to the PointPerfect L-Band satellite
You can use this third-party website www.dishpointer.com to determine the line of sight from your rover's position to the PointPerfect L-band satellite. Simply enter your location and select the matching satellite from the list below.
NA/SA Satellite: 97.6W INMARSAT 4-F3
L-band Dynamic Keys and Decryption
The SPARTN corrections are decrypted within the F9 module itself. When an internet connection is available, the host controller can subscribe to the specified topic "/pp/ubx/0236/Lb" via MQTT to collect the L-band dynamic keys and transfer them to the F9 receiver in UBX format. The F9 will then use the keys to decrypt the SPARTN corrections. If an internet connection is not available, you can extract the keys from the u-center config json file provided within your Thingstream Portal and send them directly to the F9. See: L-band "send key" example python script. Please contact services-support@u-blox.com 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 the F9 again.
Each encryption key is rotated every four weeks, and both the current and next keys are always available in your Thingstream Portal. The current dynamic key must be provided to the F9 to retain connectivity. The host controller must manage the dynamic keys and reconnect every 4 to 8 weeks, based on the key cycle and acquisition date, to collect the new set of dynamic keys.
Understanding Age of Corrections in PointPerfect L-band Delivery
For customers accustomed to IP-based correction services, where correction ages are typically around 1-5 seconds, the 30-second correction age seen with L-band delivery may raise concerns. However, this is a normal characteristic of L-band transmission, which involves more transmission paths and higher latency compared to the faster IP method. In open-sky environments, an average correction age of 30 seconds is expected and does not affect performance. PointPerfect's hybrid PPP-RTK service is designed to operate reliably with these higher correction ages, maintaining precision and accuracy. As long as corrections remain under 60 seconds, the service functions as intended; beyond this threshold, the F9 module will revert to 3D/DGNSS to ensure reliable positioning data.
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