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