nk
July 16, 2026, 9:19pm
1
Hello,
I have a F9R-03B GPS module, and I am looking to have 30Hz fix output.
I have the following configurations but my fix only updates at a rate of 14~16Hz max, IMU updates at a rate of 45~49Hz. Can someone help me with why the fix data is not at 30Hz?
If you want any other piece of info please let me know I will try to get it.
Sensor: Ublox F9R-03B-00
Firmware: 1.30
Communication: USB
// USB output protocol
add_kv_u8(0x10780001, 1); // CFG-USB-OUTPROT-UBX: enable
add_kv_u8(0x10780002, 0); // CFG-USB-OUTPROT-NMEA: disable
// Explicitly disable other NAV messages that could add bandwidth
add_kv_u8(0x20910045, 0); // CFG-MSGOUT-UBX-NAV-VELNED-USB: disable
add_kv_u8(0x20910027, 0); // CFG-MSGOUT-UBX-NAV-POSECEF-USB: disable
add_kv_u8(0x2091002c, 0); // CFG-MSGOUT-UBX-NAV-POSLLH-USB: disable
add_kv_u8(0x20910040, 0); // CFG-MSGOUT-UBX-NAV-VELECEF-USB: disable
add_kv_u8(0x20910031, 0); // CFG-MSGOUT-UBX-NAV-HPPOSECEF-USB: disable
add_kv_u8(0x20910036, 0); // CFG-MSGOUT-UBX-NAV-HPPOSLLH-USB: disable
// All four enabled at every epoch
add_kv_u8(0x20910009, 1); // CFG-MSGOUT-UBX-NAV-PVT-USB
add_kv_u8(0x20910020, 1); // CFG-MSGOUT-UBX-NAV-ATT-USB
add_kv_u8(0x20910117, 1); // CFG-MSGOUT-UBX-ESF-INS-USB
add_kv_u8(0x2091062d, 1); // CFG-MSGOUT-UBX-NAV-PVAT-USB
// Auxiliary
add_kv_u8(0x2091004a, 1); // CFG-MSGOUT-UBX-NAV-TIMEGPS-USB
add_kv_u8(0x209102a2, 1); // CFG-MSGOUT-UBX-ESF-RAW-USB
// Rate: 33ms = 30Hz
add_kv_u16(0x30210001, 33); // CFG-RATE-MEAS
add_kv_u16(0x30210002, 1); // CFG-RATE-NAV
// Rate: 33ms = 30Hz
add_kv_u16(0x30210001, 33); // CFG-RATE-MEAS
add_kv_u16(0x30210002, 1); // CFG-RATE-NAV
PaulZC
July 17, 2026, 7:37am
2
Hi @nk ,
It looks like you have not set CFG-RATE-NAV_PRIO?
I hope this helps,
Paul
nk
July 17, 2026, 5:37pm
3
Hello @PaulZC ,
I added the change, but I am getting 1Hz on my fix now. Is there anything else I need to do?
Excluding the CFG-NAV-RATE change, for a brief moment I was able to get 30Hz. But it has now stopped functioning. I am unsure on what exactly changed. Is there is some additional u-center changes I need to make sure I have to get consistent 30Hz? or maybe there is a different way (non u-center method) to write/flash the configurations?
// All four enabled at every epoch
add_kv_u8(0x20910009, 1); // CFG-MSGOUT-UBX-NAV-PVT-USB
add_kv_u8(0x20910020, 1); // CFG-MSGOUT-UBX-NAV-ATT-USB
add_kv_u8(0x20910117, 1); // CFG-MSGOUT-UBX-ESF-INS-USB
add_kv_u8(0x2091062d, 1); // CFG-MSGOUT-UBX-NAV-PVAT-USB
// Auxiliary
add_kv_u8(0x2091004a, 0); // CFG-MSGOUT-UBX-NAV-TIMEGPS-USB
add_kv_u8(0x209102a2, 1); // CFG-MSGOUT-UBX-ESF-RAW-USB
add_kv_u8(0x20210004, 1); //CFG-RATE-NAV
// Rate: 33ms = 30Hz
add_kv_u16(0x30210001, 33); // CFG-RATE-MEAS
add_kv_u16(0x30210002, 1); // CFG-RATE-NAV
Thank you,
rftop
July 17, 2026, 5:58pm
4
I’ve never tested the F9R-03B, but these ‘types’ often need full sension fusion to maintain the max spec’d performance. This module might want odometer (wheel ticks, etc) in addition to the IMU to maintain 30hz in priority mode ?
Just a guess…
PaulZC
July 17, 2026, 6:09pm
5
From the datasheet, the fastest non-priority navigation mode the F9R supports is 4Hz / 250ms.
Please try:
add_kv_u16(0x30210001, 250); // CFG-RATE-MEAS (0.001s)
add_kv_u8(0x20210004, 30); // CFG-RATE-NAV_PRIO (Hz)
nk
July 17, 2026, 6:22pm
6
Hello @PaulZC ,
I tried those changes, it did not make increase my frequency unfortunately.
Changes:
// USB output protocol
add_kv_u8(0x10780001, 1); // CFG-USB-OUTPROT-UBX: enable
add_kv_u8(0x10780002, 0); // CFG-USB-OUTPROT-NMEA: disable
// Explicitly disable other NAV messages that could add bandwidth
add_kv_u8(0x20910045, 0); // CFG-MSGOUT-UBX-NAV-VELNED-USB: disable
add_kv_u8(0x20910027, 0); // CFG-MSGOUT-UBX-NAV-POSECEF-USB: disable
add_kv_u8(0x2091002c, 0); // CFG-MSGOUT-UBX-NAV-POSLLH-USB: disable
add_kv_u8(0x20910040, 0); // CFG-MSGOUT-UBX-NAV-VELECEF-USB: disable
add_kv_u8(0x20910031, 0); // CFG-MSGOUT-UBX-NAV-HPPOSECEF-USB: disable
add_kv_u8(0x20910036, 0); // CFG-MSGOUT-UBX-NAV-HPPOSLLH-USB: disable
// All four enabled at every epoch
add_kv_u8(0x20910009, 1); // CFG-MSGOUT-UBX-NAV-PVT-USB
add_kv_u8(0x20910020, 1); // CFG-MSGOUT-UBX-NAV-ATT-USB
add_kv_u8(0x20910117, 1); // CFG-MSGOUT-UBX-ESF-INS-USB
add_kv_u8(0x2091062d, 1); // CFG-MSGOUT-UBX-NAV-PVAT-USB
// Auxiliary
add_kv_u8(0x2091004a, 1); // CFG-MSGOUT-UBX-NAV-TIMEGPS-USB
add_kv_u8(0x209102a2, 1); // CFG-MSGOUT-UBX-ESF-RAW-USB
// add_kv_u8(0x20210004, 1);
// Rate: 33ms = 30Hz
// add_kv_u16(0x30210001, 33); // CFG-RATE-MEAS
add_kv_u16(0x30210002, 1); // CFG-RATE-NAV
add_kv_u16(0x30210001, 250); // CFG-RATE-MEAS (0.001s)
add_kv_u8(0x20210004, 33); // CFG-RATE-NAV_PRIO (Hz)
Output:
average rate: 4.975
min: 0.000s max: 0.504s std dev: 0.24367s window: 5
average rate: 4.000
min: 0.000s max: 0.504s std dev: 0.24871s window: 10
@rftop from the datasheet it does not seem to be the case, from my understanding those additional inputs help with “fix” or “lock” type scenarios or maybe even a more precise/accurate heading. I could be wrong, but that was my impression.
Thank you,
PaulZC
July 17, 2026, 6:45pm
7
Sorry! Typo… Please try:
add_kv_u16(0x30210001, 250); // CFG-RATE-MEAS (0.001s)
add_kv_u8(0x20210004, 30); // CFG-RATE-NAV_PRIO (Hz)
PaulZC
July 17, 2026, 6:51pm
8
@nk :
Also, please check that UART1 is not causing a bottleneck. Please try adding:
// UART1 output protocol
add_kv_u8(0x10740002, 0); // CFG-UART1-OUTPROT-NMEA: disable