How can I collect raw GNSS data and prepare it for PPP processing, e.g., CSRS-PPP

Hi all,

Just to build on Paul’s advice - the X20P and other new generation UBX GNSS modules no longer support legacy UBX CFG commands (with some exceptions). You need to use the newer configuration database commands CFG-VALSET, CFG-VALGET and CFG-VALDEL.

Here’s a screen shot of the relevant panel in PyGPSClient:

… and here are the enabled UBX RXM-RAWX and RXM-SFRBX messages appearing in the PyGPSClient console:

The pyubx2 library has dedicated helper methods to facilitate this. In addition, PyGPSClient has a built-in helper method which can convert binary UBX messages to preset strings suitable for incorporation into the ubxpresets_l section of your .json configuration file.

NB: Just be careful with the configuration key names - pyubx2 uses underscores throughout, so use "CFG_MSGOUT_UBX_RXM_RAWX_UART1" rather than “CFG-MSGOUT-UBX_RXM_RAWX_UART1”

Here’s a sample python script which incorporates these helper methods:

"""
Illustration of how to create UBX configuration database
messages and convert them to a UBX preset entry which can
be inserted into the ubxpresets_l section of a .json config
file.

Created on 21 Feb 2024
@author: semuadmin
"""

from pyubx2 import SET_LAYER_RAM, TXN_NONE, UBXMessage
from pygpsclient import ubx2preset

layers = SET_LAYER_RAM  # volatile RAM
transaction = TXN_NONE
cfgdata = [("CFG_MSGOUT_UBX_RXM_RAWX_UART1", 1), ("CFG_MSGOUT_UBX_RXM_SFRBX_UART1", 1)]

msg = UBXMessage.config_set(layers, transaction, cfgdata)
print(msg)
preset = ubx2preset(msg, "Enable RAWX and SFRBX messages on UART1")
print(preset)

If you’re minded to try to deconstruct the contents of the individual RXM-SFRBX messages, be aware that this is not for the faint-hearted, but the following references may help:

(specifically section 20.3.2 Message Structure)

(note that the 30-bit NAV words are padded to 32-bits in RXM-SFRBX for ease of processing, but the specific padding treatment depends on the signal ID (L1, L2, L5, L6)).

2 Likes