pyubx2 driver for C102-F9R #178
-
I have driver to connect to F9R (C102-F9R) over a serial port and parse incoming UBX protocol messages using pyubx2. This driver works great (setting configurations and parsing incoming data) with older F9R devices (assembled 01/23) with firmware 1.21. I got 2 new F9Rs (C102-F9R, assembled 04, 24) and I am not able to get the driver to work with these. However, I can do all configurations and streaming in u-center, so the devices seem to work fine. The least I want to do is parse UBX messages being received on the serial port, here are the things I tried: Setting configurations:
|
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 6 replies
-
Hi @Shreyas120 I'm not entirely clear what the issue is here or what exactly you mean by 'driver' in this context, but I would offer the following general observations:
Starting handler threads. Press Ctrl-C to terminate...
Polling UART configuration in the volatile RAM memory layer via CFG-VALGET...
(This should result in ACK-ACK and CFG-VALGET responses)
<UBX(CFG-VALGET, version=1, layer=0, position=0, CFG_RATE_MEAS=1000, CFG_RATE_NAV=1, CFG_USBOUTPROT_UBX=1, CFG_NAVSPG_DYNMODEL=0)>
<UBX(ACK-ACK, clsID=CFG, msgID=CFG-VALGET)>
Polling UART configuration in the BBR memory layer via CFG-VALGET...
(This should result in an ACK-NAK response in the absence of an existing BBR configuration setting)
<UBX(ACK-NAK, clsID=CFG, msgID=CFG-VALGET)>
Setting UART configuration in the BBR memory layer via CFG-VALSET...
(This should result in an ACK-ACK response)
<UBX(ACK-ACK, clsID=CFG, msgID=CFG-VALSET)>
Polling UART configuration in the BBR memory layer via CFG-VALGET...
(This should result in ACK-ACK and CFG-VALGET responses, provided the configuration is valid for your particular device)
<UBX(CFG-VALGET, version=1, layer=1, position=0, CFG_RATE_MEAS=50, CFG_RATE_NAV=4, CFG_USBOUTPROT_UBX=1, CFG_NAVSPG_DYNMODEL=4)>
<UBX(ACK-ACK, clsID=CFG, msgID=CFG-VALGET)>
Unsetting UART configuration in the BBR memory layer via CFG-VALDEL...
(This should result in an ACK-ACK response)
<UBX(ACK-ACK, clsID=CFG, msgID=CFG-VALDEL)>
Polling UART configuration in the BBR memory layer via CFG-VALGET...
(This should result in an ACK-NAK response as the BBR configuration setting has now been removed)
<UBX(ACK-NAK, clsID=CFG, msgID=CFG-VALGET)>
Commands sent. Waiting for any final acknowledgements...
Stop signal set. Waiting for threads to complete...
Processing complete
from serial import Serial
from pyubx2 import UBXMessage, SET_LAYER_BBR, TXN_NONE
# change baud rate first...
with Serial("/dev/ttyUCM0", 38400, timeout=3) as stream:
# change baudrate to 115200...
keys = [("CFG_UART1_BAUDRATE", 115200)]
msg = UBXMessage.config_set(SET_LAYER_BBR, TXN_NONE, keys)
stream.write(msg.serialize())
# then, once reconnected at new baud rate, make other changes...
with Serial("/dev/ttyUCM0", 115200, timeout=3) as stream:
# make other config changes...
keys = ...
msg = UBXMessage.config_set(SET_LAYER_BBR, TXN_NONE, keys)
stream.write(msg.serialize())
|
Beta Was this translation helpful? Give feedback.
-
FYI I updated the firmware on my F9R (a SparkFun GPS-RTK Dead Reckoning Breakout - ZED-F9R, SMA) to HPS 1.40 (UBX protocol 33.40) and can confirm that the minimum supported measurement rate is still 50ms (20 Hz). Couple of observations:
![]() ![]() |
Beta Was this translation helpful? Give feedback.
-
Some of the older model C102-F9R-0 didn't come with the NEO-D9S / D9C fitted, it could be added by just soldering on the part, as the SMA connectors and RF path components are all fitted. The NEO-D9S will not accept most of the keys, resulting the ACK-NAK https://www.u-blox.com/sites/default/files/u-blox-D9-PMP-1.04_InterfaceDescription_UBX-21040023.pdf The Series 9 parts don't support HNR the same way, they use CFG-RATE-NAV_PRIO to output a subset of messages, like UBX-NAV-PVT, at a higher rate (30 Hz). As I recall these will be an interpolated / synthetic mix of GNSS and IMU/SENSOR measurements, using cm level RTK solutions to constrain / gate-post the positioning. The RTK solutions typically being at much more limited rates, perhaps 2 Hz in earlier firmwares, and perhaps up to 4 Hz in later ones. HPS 1.40 Release Notes |
Beta Was this translation helpful? Give feedback.
Hi @Shreyas120
I'm not entirely clear what the issue is here or what exactly you mean by 'driver' in this context, but I would offer the following general observations: