GPS fix problem

Hi there.

So we finally built our first boards here at the Brussel Group!

It’s all good except we have troubles getting a fix on the GPS. When booting in normal mode the display shows:

Wait for GPS
0sats SN: 0

Looking at the debug logs from the console, those warnings are displayed in a loop:

[1004841][W][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNGGA: $GNGGA,182341.000,5049.34147,N,00423.22533,E,1,14,0.9,77.0,M,0.0,M,,*4E
[1004851][W][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNGLL: $GNGLL,5049.34147,N,00423.22533,E,182341.000,A,A*47
[1004853][W][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPGSA: $GPGSA,A,3,05,13,14,15,22,23,24,,,,,,1.6,0.9,1.3*3F
[1004864][W][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA BDGSA: $BDGSA,A,3,07,23,24,25,33,,,,,,,,1.6,0.9,1.3*28
[1004874][W][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GLGSA: $GLGSA,A,3,78,66,,,,,,,,,,,1.6,0.9,1.3*2D
[1004884][W][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPGSV: $GPGSV,3,1,10,05,25,199,32,13,73,119,17,14,51,072,14,15,70,278,23*7F
[1004896][W][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPGSV: $GPGSV,3,2,10,17,13,114,,18,,,13,22,61,109,17,23,25,315,12*49
[1004907][W][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPGSV: $GPGSV,3,3,10,24,30,262,32,30,23,075,*7A
[1004917][W][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA BDGSV: $BDGSV,2,1,08,07,23,055,13,10,29,067,,13,,,19,14,07,152,*52
[1004928][W][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA BDGSV: $BDGSV,2,2,08,23,30,229,17,24,37,060,17,25,82,179,19,33,30,162,15*67
[1004940][W][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GLGSV: $GLGSV,2,1,07,78,11,222,16,66,51,150,37,86,,,33,77,66,215,08*5F
[1004951][W][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GLGSV: $GLGSV,2,2,07,76,58,044,,67,70,309,,68,19,322,*57
[1004962][W][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNRMC: $GNRMC,182341.000,A,5049.34147,N,00423.22533,E,1.19,124.07,190824,,,A*7F
[1004974][W][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNVTG: $GNVTG,124.07,T,,M,1.19,N,2.20,K,A*2A
[1004983][W][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNZDA: $GNZDA,182341.000,19,08,2024,00,00*41
[1004992][W][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPTXT: $GPTXT,01,01,01,ANTENNA OK*35
[1005001][W][gps.cpp:1212] prepareGpsData(): Had to switch incomplete record tow: 152638000 pos: 0, info: 0, hdop: 0, vel: 0, started at 1003820
[1005013][I][gps.cpp:1082] handleUbxNavTimeGps(): TIMEGPS: iTOW: 152639000, fTOW: -18, week 2328, leapS: 18, valid: 0x07 (TOW WEEK UTC), tAcc 36ns, DATE: 2024-08-19T18:23:59, delay 151ms

When booting in web server mode, the screen displays our wifi, get an IP and displays „ALP data was up to date“, so I guess it does download the almanac.

We tried different GPS boards and hit the same issue.

We are using the current main version of the firmware : a834e5ca169a57064d9978da1431f8816f64c883

So, should we worry about those warnings in the console? Any idea what we could try to solve this problem?

Hi there,
Working on the Brussels group with Guillaume.

If I understand correctly, the firmware does not use NMEA records but UBX requests (cf [Use UBX native GPS functionality (#213) · openbikesensor/OpenBikeSensorFirmware@c0234fe · GitHub](https://rev c0234fea9) ).
The good news is that $GNGGA line suggests we have a GPS fix but the bad news is that we have no UBX data.

Any idea how we can debug this?

If that helps, I have reflashed with the unparsed messages lowered in debug and I got:

[   962][E][gps.cpp:841] parseUbxMessage(): ACK-NAK 0x3406
[   963][E][gps.cpp:361] sendAndWaitForAck(): Failed to send cfg. 0x3406 NAK: 1 after 3ms
[   965][I][gps.cpp:287] setBaud(): GPS startup already 115200
[   971][I][gps.cpp:180] softResetGps(): Soft-RESET GPS!
[  2523][E][vfs_api.cpp:105] open(): /sd/aid_ini.ubx does not exist, no permits for creation
[  2524][E][gps.cpp:1176] aidIni(): Will not send AID_INI - invalid data on SD?
[  5976][W][gps.cpp:356] sendAndWaitForAck(): Retry to send 0x0406 after 5000ms.
[ 10976][W][gps.cpp:356] sendAndWaitForAck(): Retry to send 0x0406 after 5000ms.
[ 10976][E][gps.cpp:361] sendAndWaitForAck(): Failed to send cfg. 0x0406 NAK: 0 after 10000ms
[ 11183][I][gps.cpp:215] enableAlpIfDataIsAvailable(): Enable ALP
[ 11291][E][gps.cpp:841] parseUbxMessage(): ACK-NAK 0x500b
[ 11292][E][gps.cpp:839] parseUbxMessage(): ACK overrun had ack: 0 for 0x500b
[ 11292][E][gps.cpp:841] parseUbxMessage(): ACK-NAK 0x040a
[ 11298][E][gps.cpp:839] parseUbxMessage(): ACK overrun had ack: 0 for 0x040a
[ 11304][E][gps.cpp:841] parseUbxMessage(): ACK-NAK 0x090a
[ 11310][E][gps.cpp:839] parseUbxMessage(): ACK overrun had ack: 0 for 0x090a
[ 11316][E][gps.cpp:841] parseUbxMessage(): ACK-NAK 0x0301
[ 11322][E][gps.cpp:839] parseUbxMessage(): ACK overrun had ack: 0 for 0x0301
[ 11328][E][gps.cpp:841] parseUbxMessage(): ACK-NAK 0x2406
[ 11334][E][gps.cpp:361] sendAndWaitForAck(): Failed to send cfg. 0x2406 NAK: 1 after 50ms
[ 11344][E][gps.cpp:841] parseUbxMessage(): ACK-NAK 0x3406
[ 11347][E][gps.cpp:361] sendAndWaitForAck(): Failed to send cfg. 0x3406 NAK: 1 after 5ms
[ 11474][W][Wire.cpp:301] begin(): Bus already started in Master Mode.
[ 11786][I][gps.cpp:1082] handleUbxNavTimeGps(): TIMEGPS: iTOW: 228415000, fTOW: 11, week 2328, leapS: 18, valid: 0x03 (TOW WEEK), tAcc 9ns, DATE: 2024-08-20T15:26:55, delay 1ms
[ 11791][I][gps.cpp:450] addStatisticsMessage(): New: TIMEGPS gps week changed: 0 -> 2328
[ 11799][I][gps.cpp:1100] handleUbxNavTimeGps(): TIMEGPS set: 1970-01-01T00:00:11 -> 2024-08-20T15:26:55
[ 11808][I][gps.cpp:450] addStatisticsMessage(): New: TIMEGPS set: 1970-01-01T00:00:11 -> 2024-08-20T15:26:55 delay 1ms. tAcc:9ns
[ 11825][E][gps.cpp:829] parseUbxMessage(): ACK overrun had ack: 1 for 0x0106
[246867][W][gps.cpp:1212] prepareGpsData(): Had to switch incomplete record tow: 228415000 pos: 0, info: 0, hdop: 0, vel: 0, started at 11785
[246869][I][gps.cpp:1082] handleUbxNavTimeGps(): TIMEGPS: iTOW: 228650000, fTOW: -7, week 2328, leapS: 18, valid: 0x07 (TOW WEEK UTC), tAcc 15ns, DATE: 2024-08-20T15:30:50, delay 1ms
.

and nothing more

It appears this is not an isolated case, there is another thread with at least the same symptoms of Wait for GPS / 0 sats / SN: 0.

Over there I recommended checking all hardware and/or swapping GPS modules. That usually helps with 0 sats/ SN: x where 50<x<100.

Can you send pictures of the GPS modules you installed? Do you have maybe one that wasn’t soldered yet so you can send high quality pictures of the front and back, so we can compare with working ones?

I would assume you got a different version to the ones we used to get up until maybe half a year ago (I’m not sure when the last batch was ordered). Maybe you can also post the link where you got them from.

Apart from that, it is also possible that this is „simply“ a regression in the firmware. I haven’t heard from @andreas in a while, but he might be available to check that. Or you could flash an old version from git or the release archive.

I hope we can help you. I’d love to see Brussels up and running :rocket: :bike:

PS: Welcome to the club, @gdesmott and @mart-e :slight_smile:

2 „Gefällt mir“
Hi,

The good news is that communication seems to be working, and at least some messages are being received correctly. For example, the switch to a communication speed of 115200 was successful from the beginning, which might be due to a different version of the module or a preconfigured version of it. However, although the time is being received correctly, at least one of the important messages is missing.

Could you please share the GPS section of the „About“ page that is shown on the web interface of the OBS?

Kind regards,
Andreas

We bought them from GY-NEO6MV2 Neue NEO-6M GPS Modul NEO6MV2 mit Flight Control EEPROM MWC APM 2,5 Große Antenne für Arduino 6MV2 - AliExpress 502

I’ll let @mart-e post a picture as he’s the one having those atm. :slight_smile:

And here are two pictures of one of the module: front - back. I hope it’s detailed enough but let me know if you need other details.
And the about page :

Thank you for your assistance

Thanks for the details. From the about page I see that the usual information about software and hardware versioning of the GPS module are unfortunately not received. Digging deeper in the log output you have provided earlier, I see that some of the messages we send are denied by the module - might be there is already a hard config baked in or this is a unexpected version of the module.

0x3406 → here we flag that the gps module is configured for the OBS. This fails, is not nice but not a issue.

0x0406 → is an attempt to reset the module. There are 2 retries but after 10 seconds we give up

0x500b → this is about the ALP data - also not critical

0x040a → here we ask the module for its version info but we again get a NAK message back - this is not critical but we do not get details from the module :frowning:

0x0301 → we try to get the receiver status - but get a NAK

0x2406 → we try to configure the module so that for our use-case (cycling). Not critical but used to filter out faulty results.

The Had to switch incomplete record message indicates that some info messages that we rely on, and expect every second has been received, but at least one had been missing.

Might be we get more insight if you increase the -DCORE_DEBUG_LEVEL=3 to -DCORE_DEBUG_LEVEL=5 in platformio.ini or if you use it in custom_config.ini. To reduce the log output from the distance sensors also comment out the log_v("Raw sensor ... in sensor.cpp line 351…353. Before sharing the log, please make sure to remove sensitive parts. The WiFi config including credentials is dumped to the log on that level.

In summary the startup with 115200 indicates a more modern module but the refusal of some of the messages we send could indicate a older gps firmware.

Kind regards, Andreas.

Hi,

Thanks for the explanations. See here the logs when starting:

E (979) esp_core_dump_flash: No core dum�␆���ѥѥ�� found!
E (979) esp_core_dump_flash: No core dump partition found!
[    12][D][esp32-hal-cpu.c:244] setCpuFrequencyMhz(): PLL: 480 / 2 = 240 Mhz, APB: 80000000 Hz
[    42][I][OpenBikeSensorFirmware.cpp:199] setup(): openbikesensor.org - OBS/v0.20local
[    43][I][esp32-hal-i2c.c:75] i2cInit(): Initialising I2C Master: sda=21 scl=22 freq=100000
[    49][W][Wire.cpp:301] begin(): Bus already started in Master Mode.
[    87][I][VoltageMeter.cpp:40] VoltageMeter(): Initializing VoltageMeter.
[    88][I][VoltageMeter.cpp:54] VoltageMeter(): Characterized using eFuse Vref
[    90][I][VoltageMeter.cpp:62] VoltageMeter(): eFuse Two Point: NOT supported
[    97][I][VoltageMeter.cpp:66] VoltageMeter(): eFuse Vref: Supported
[   106][I][VoltageMeter.cpp:75] VoltageMeter(): VoltageMeter initialized got 0.21V.
[   166][D][OpenBikeSensorFirmware.cpp:618] loadConfig(): No configuration init from SD. SD: 1 File: 0
[   173][I][OpenBikeSensorFirmware.cpp:621] loadConfig(): Load cfg
[   179][D][config.cpp:308] loadConfig(): Loading config json from /cfg.obs.
[   190][D][config.cpp:339] loadJson(): Config found in file 'cfg.obs':
{
  "obs": [
    {
      "wifiSsid": "*****",
      "wifiPassword": "*****",
      "wifiNetworks": [*****],
      "obsName": "OpenBikeSensor-2853",
      "name": "default",
      "bluetooth": false,
      "offset": [
        35,
        35
      ],
      "portalUrl": "https://portal.openbikesensor.org",
      "httpPin": "111236",
      "portalToken": "*****",
      "displayConfig": 528,
      "privacyConfig": 1,
      "confirmationTimeSeconds": 5,
      "selectedPreset": 0,
      "privacyArea": []
    }
  ]
}[   263][D][config.cpp:341] loadJson(): ------------------------------------------
Dumping current configuration, current selected profile is 0:
{
  "obs": [
    {
      "wifiSsid": "*****",
      "wifiPassword": "*****",
      "wifiNetworks": [*****],
      "obsName": "OpenBikeSensor-2853",
      "name": "default",
      "bluetooth": false,
      "offset": [
        35,
        35
      ],
      "portalUrl": "https://portal.openbikesensor.org",
      "httpPin": "111236",
      "portalToken": "*****",
      "displayConfig": 528,
      "privacyConfig": 1,
      "confirmationTimeSeconds": 5,
      "selectedPreset": 0,
      "privacyArea": []
    }
  ]
}
[  1024][V][gps.cpp:688] encode(): Expecting UBX Payload: 2 bytes
[  1025][E][gps.cpp:841] parseUbxMessage(): ACK-NAK 0x3406
[  1025][E][gps.cpp:361] sendAndWaitForAck(): Failed to send cfg. 0x3406 NAK: 1 after 4ms
[  1032][I][gps.cpp:287] setBaud(): GPS startup already 115200
[  1038][I][gps.cpp:180] softResetGps(): Soft-RESET GPS!
[  1298][V][gps.cpp:724] encode(): Start of GPTXT
[  1299][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPTXT: $GPTXT,01,01,02,MA=CASIC*27
[  1300][V][gps.cpp:724] encode(): Start of GPTXT
[  1305][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPTXT: $GPTXT,01,01,02,HW=ATGM332D,0000090809339*1B
[  1314][V][gps.cpp:724] encode(): Start of GPTXT
[  1319][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPTXT: $GPTXT,01,01,02,IC=AT6558-5N-71-0C510800,AH01CLJ-D4-011686*57
[  1330][V][gps.cpp:724] encode(): Start of GPTXT
[  1335][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPTXT: $GPTXT,01,01,02,SW=URANUS5,V5.2.1.0*1D
[  1344][V][gps.cpp:724] encode(): Start of GPTXT
[  1348][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPTXT: $GPTXT,01,01,02,TB=2019-08-12,10:01:41*4E
[  1358][V][gps.cpp:724] encode(): Start of GPTXT
[  1362][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPTXT: $GPTXT,01,01,02,MO=GBR*25
[  1370][V][gps.cpp:724] encode(): Start of GPTXT
[  1375][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPTXT: $GPTXT,01,01,02,BS=SOC_BootLoader,V6.2.0.2*34
[  1384][V][gps.cpp:724] encode(): Start of GPTXT
[  1389][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPTXT: $GPTXT,01,01,02,FI=00EF4014*7D
[  2300][V][gps.cpp:724] encode(): Start of GNGGA
[  2301][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNGGA: $GNGGA,,,,,,0,00,25.5,,,,,,*64
[  2302][V][gps.cpp:724] encode(): Start of GNGLL
[  2307][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNGLL: $GNGLL,,,,,,V,M*79
[  2314][V][gps.cpp:724] encode(): Start of GPGSA
[  2319][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPGSA: $GPGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5*02
[  2328][V][gps.cpp:724] encode(): Start of BDGSA
[  2333][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA BDGSA: $BDGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5*13
[  2342][V][gps.cpp:724] encode(): Start of GLGSA
[  2347][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GLGSA: $GLGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5*1E
[  2356][V][gps.cpp:724] encode(): Start of GPGSV
[  2360][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPGSV: $GPGSV,1,1,00*79
[  2368][V][gps.cpp:724] encode(): Start of BDGSV
[  2372][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA BDGSV: $BDGSV,1,1,00*68
[  2379][V][gps.cpp:724] encode(): Start of GLGSV
[  2384][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GLGSV: $GLGSV,1,1,00*65
[  2391][V][gps.cpp:724] encode(): Start of GNRMC
[  2396][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNRMC: $GNRMC,,V,,,,,,,,,,M*4E
[  2404][V][gps.cpp:724] encode(): Start of GNVTG
[  2408][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNVTG: $GNVTG,,,,,,,,,M*2D
[  2416][V][gps.cpp:724] encode(): Start of GNZDA
[  2420][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNZDA: $GNZDA,,,,,,*56
[  2427][V][gps.cpp:688] encode(): Expecting UBX Payload: 16 bytes
[  2433][V][gps.cpp:899] parseUbxMessage(): NAV-STATUS uptime: 999, timeToFix: 0, gpsFix: 00
[  2448][E][vfs_api.cpp:105] open(): /sd/aid_ini.ubx does not exist, no permits for creation
[  2450][E][gps.cpp:1176] aidIni(): Will not send AID_INI - invalid data on SD?
[  2457][V][gps.cpp:688] encode(): Expecting UBX Payload: 16 bytes
[  2463][I][gps.cpp:1082] handleUbxNavTimeGps(): TIMEGPS: iTOW: 324432249, fTOW: -495361, week 2329, leapS: 18, valid: 0x00 (), tAcc 0ns, DATE: 2024-08-28T18:07:12, delay 164ms
[  3300][V][gps.cpp:724] encode(): Start of GNGGA
[  3301][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNGGA: $GNGGA,,,,,,0,00,25.5,,,,,,*64
[  3302][V][gps.cpp:724] encode(): Start of GNGLL
[  3307][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNGLL: $GNGLL,,,,,,V,M*79
[  3314][V][gps.cpp:724] encode(): Start of GPGSA
[  3319][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPGSA: $GPGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5*02
[  3328][V][gps.cpp:724] encode(): Start of BDGSA
[  3333][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA BDGSA: $BDGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5*13
[  3342][V][gps.cpp:724] encode(): Start of GLGSA
[  3347][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GLGSA: $GLGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5*1E
[  3356][V][gps.cpp:724] encode(): Start of GPGSV
[  3360][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPGSV: $GPGSV,1,1,00*79
[  3368][V][gps.cpp:724] encode(): Start of BDGSV
[  3372][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA BDGSV: $BDGSV,1,1,00*68
[  3379][V][gps.cpp:724] encode(): Start of GLGSV
[  3384][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GLGSV: $GLGSV,1,1,00*65
[  3391][V][gps.cpp:724] encode(): Start of GNRMC
[  3396][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNRMC: $GNRMC,,V,,,,,,,,,,M*4E
[  3404][V][gps.cpp:724] encode(): Start of GNVTG
[  3408][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNVTG: $GNVTG,,,,,,,,,M*2D
[  3416][V][gps.cpp:724] encode(): Start of GNZDA
[  3420][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNZDA: $GNZDA,,,,,,*56
[  3427][V][gps.cpp:724] encode(): Start of GPTXT
[  3432][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPTXT: $GPTXT,01,01,01,ANTENNA OK*35
[  3440][V][gps.cpp:688] encode(): Expecting UBX Payload: 16 bytes
[  3446][V][gps.cpp:899] parseUbxMessage(): NAV-STATUS uptime: 1998, timeToFix: 0, gpsFix: 00
[  3454][V][gps.cpp:688] encode(): Expecting UBX Payload: 16 bytes
[  3461][W][gps.cpp:1212] prepareGpsData(): Had to switch incomplete record tow: 324432249 pos: 0, info: 0, hdop: 0, vel: 0, started at 2299
[  3473][I][gps.cpp:1082] handleUbxNavTimeGps(): TIMEGPS: iTOW: 324433249, fTOW: -495361, week 2329, leapS: 18, valid: 0x00 (), tAcc 0ns, DATE: 2024-08-28T18:07:13, delay 162ms
[  4300][V][gps.cpp:724] encode(): Start of GNGGA
[  4301][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNGGA: $GNGGA,,,,,,0,00,25.5,,,,,,*64
[  4302][V][gps.cpp:724] encode(): Start of GNGLL
[  4307][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNGLL: $GNGLL,,,,,,V,M*79
[  4314][V][gps.cpp:724] encode(): Start of GPGSA
[  4319][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPGSA: $GPGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5*02
[  4328][V][gps.cpp:724] encode(): Start of BDGSA
[  4333][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA BDGSA: $BDGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5*13
[  4342][V][gps.cpp:724] encode(): Start of GLGSA
[  4347][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GLGSA: $GLGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5*1E
[  4356][V][gps.cpp:724] encode(): Start of GPGSV
[  4360][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPGSV: $GPGSV,1,1,00*79
[  4368][V][gps.cpp:724] encode(): Start of BDGSV
[  4372][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA BDGSV: $BDGSV,1,1,00*68
[  4379][V][gps.cpp:724] encode(): Start of GLGSV
[  4384][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GLGSV: $GLGSV,1,1,00*65
[  4391][V][gps.cpp:724] encode(): Start of GNRMC
[  4396][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNRMC: $GNRMC,,V,,,,,,,,,,M*4E
[  4404][V][gps.cpp:724] encode(): Start of GNVTG
[  4408][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNVTG: $GNVTG,,,,,,,,,M*2D
[  4416][V][gps.cpp:724] encode(): Start of GNZDA
[  4420][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNZDA: $GNZDA,,,,,,*56
[  4427][V][gps.cpp:724] encode(): Start of GPTXT
[  4432][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPTXT: $GPTXT,01,01,01,ANTENNA OK*35
[  4440][V][gps.cpp:688] encode(): Expecting UBX Payload: 16 bytes
[  4446][V][gps.cpp:899] parseUbxMessage(): NAV-STATUS uptime: 2997, timeToFix: 0, gpsFix: 00
[  4454][V][gps.cpp:688] encode(): Expecting UBX Payload: 16 bytes
[  4461][W][gps.cpp:1212] prepareGpsData(): Had to switch incomplete record tow: 324433249 pos: 0, info: 0, hdop: 0, vel: 0, started at 3299
[  4473][I][gps.cpp:1082] handleUbxNavTimeGps(): TIMEGPS: iTOW: 324434249, fTOW: -495361, week 2329, leapS: 18, valid: 0x00 (), tAcc 0ns, DATE: 2024-08-28T18:07:14, delay 162ms
[  5300][V][gps.cpp:724] encode(): Start of GNGGA
[  5301][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNGGA: $GNGGA,,,,,,0,00,25.5,,,,,,*64
[  5302][V][gps.cpp:724] encode(): Start of GNGLL
[  5307][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNGLL: $GNGLL,,,,,,V,M*79
[  5314][V][gps.cpp:724] encode(): Start of GPGSA
[  5319][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPGSA: $GPGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5*02
[  5328][V][gps.cpp:724] encode(): Start of BDGSA
[  5333][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA BDGSA: $BDGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5*13
[  5342][V][gps.cpp:724] encode(): Start of GLGSA
[  5347][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GLGSA: $GLGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5*1E
[  5356][V][gps.cpp:724] encode(): Start of GPGSV
[  5360][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPGSV: $GPGSV,1,1,00*79
[  5368][V][gps.cpp:724] encode(): Start of BDGSV
[  5372][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA BDGSV: $BDGSV,1,1,00*68
[  5379][V][gps.cpp:724] encode(): Start of GLGSV
[  5384][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GLGSV: $GLGSV,1,1,00*65
[  5391][V][gps.cpp:724] encode(): Start of GNRMC
[  5396][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNRMC: $GNRMC,,V,,,,,,,,,,M*4E
[  5404][V][gps.cpp:724] encode(): Start of GNVTG
[  5408][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNVTG: $GNVTG,,,,,,,,,M*2D
[  5416][V][gps.cpp:724] encode(): Start of GNZDA
[  5420][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNZDA: $GNZDA,,,,,,*56
[  5427][V][gps.cpp:724] encode(): Start of GPTXT
[  5432][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPTXT: $GPTXT,01,01,01,ANTENNA OK*35
[  5440][V][gps.cpp:688] encode(): Expecting UBX Payload: 16 bytes
[  5446][V][gps.cpp:899] parseUbxMessage(): NAV-STATUS uptime: 3996, timeToFix: 0, gpsFix: 00
[  5454][V][gps.cpp:688] encode(): Expecting UBX Payload: 16 bytes
[  5461][W][gps.cpp:1212] prepareGpsData(): Had to switch incomplete record tow: 324434249 pos: 0, info: 0, hdop: 0, vel: 0, started at 4299
[  5473][I][gps.cpp:1082] handleUbxNavTimeGps(): TIMEGPS: iTOW: 324435249, fTOW: -495361, week 2329, leapS: 18, valid: 0x00 (), tAcc 0ns, DATE: 2024-08-28T18:07:15, delay 162ms
[  6043][W][gps.cpp:356] sendAndWaitForAck(): Retry to send 0x0406 after 5000ms.
[  6298][V][gps.cpp:724] encode(): Start of GPTXT
[  6299][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPTXT: $GPTXT,01,01,02,MA=CASIC*27
[  6300][V][gps.cpp:724] encode(): Start of GPTXT
[  6305][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPTXT: $GPTXT,01,01,02,HW=ATGM332D,0000090809339*1B
[  6314][V][gps.cpp:724] encode(): Start of GPTXT
[  6319][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPTXT: $GPTXT,01,01,02,IC=AT6558-5N-71-0C510800,AH01CLJ-D4-011686*57
[  6330][V][gps.cpp:724] encode(): Start of GPTXT
[  6335][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPTXT: $GPTXT,01,01,02,SW=URANUS5,V5.2.1.0*1D
[  6344][V][gps.cpp:724] encode(): Start of GPTXT
[  6348][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPTXT: $GPTXT,01,01,02,TB=2019-08-12,10:01:41*4E
[  6358][V][gps.cpp:724] encode(): Start of GPTXT
[  6362][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPTXT: $GPTXT,01,01,02,MO=GBR*25
[  6370][V][gps.cpp:724] encode(): Start of GPTXT
[  6375][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPTXT: $GPTXT,01,01,02,BS=SOC_BootLoader,V6.2.0.2*34
[  6384][V][gps.cpp:724] encode(): Start of GPTXT
[  6389][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPTXT: $GPTXT,01,01,02,FI=00EF4014*7D
[  7300][V][gps.cpp:724] encode(): Start of GNGGA
[  7301][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNGGA: $GNGGA,,,,,,0,00,25.5,,,,,,*64
[  7302][V][gps.cpp:724] encode(): Start of GNGLL
[  7307][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNGLL: $GNGLL,,,,,,V,M*79
[  7314][V][gps.cpp:724] encode(): Start of GPGSA
[  7319][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPGSA: $GPGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5*02
[  7328][V][gps.cpp:724] encode(): Start of BDGSA
[  7333][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA BDGSA: $BDGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5*13
[  7342][V][gps.cpp:724] encode(): Start of GLGSA
[  7347][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GLGSA: $GLGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5*1E
[  7356][V][gps.cpp:724] encode(): Start of GPGSV
[  7360][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPGSV: $GPGSV,1,1,00*79
[  7368][V][gps.cpp:724] encode(): Start of BDGSV
[  7372][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA BDGSV: $BDGSV,1,1,00*68
[  7379][V][gps.cpp:724] encode(): Start of GLGSV
[  7384][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GLGSV: $GLGSV,1,1,00*65
[  7391][V][gps.cpp:724] encode(): Start of GNRMC
[  7396][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNRMC: $GNRMC,,V,,,,,,,,,,M*4E
[  7404][V][gps.cpp:724] encode(): Start of GNVTG
[  7408][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNVTG: $GNVTG,,,,,,,,,M*2D
[  7416][V][gps.cpp:724] encode(): Start of GNZDA
[  7420][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNZDA: $GNZDA,,,,,,*56
[  7427][V][gps.cpp:688] encode(): Expecting UBX Payload: 16 bytes
[  7433][V][gps.cpp:899] parseUbxMessage(): NAV-STATUS uptime: 999, timeToFix: 0, gpsFix: 00
[  7441][V][gps.cpp:688] encode(): Expecting UBX Payload: 16 bytes
[  7447][W][gps.cpp:1212] prepareGpsData(): Had to switch incomplete record tow: 324435249 pos: 0, info: 0, hdop: 0, vel: 0, started at 5299
[  7460][I][gps.cpp:1082] handleUbxNavTimeGps(): TIMEGPS: iTOW: 324437249, fTOW: -129150, week 2329, leapS: 18, valid: 0x00 (), tAcc 0ns, DATE: 2024-08-28T18:07:17, delay 148ms
[  8300][V][gps.cpp:724] encode(): Start of GNGGA
[  8301][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNGGA: $GNGGA,,,,,,0,00,25.5,,,,,,*64
[  8302][V][gps.cpp:724] encode(): Start of GNGLL
[  8307][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNGLL: $GNGLL,,,,,,V,M*79
[  8314][V][gps.cpp:724] encode(): Start of GPGSA
[  8319][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPGSA: $GPGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5*02
[  8328][V][gps.cpp:724] encode(): Start of BDGSA
[  8333][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA BDGSA: $BDGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5*13
[  8342][V][gps.cpp:724] encode(): Start of GLGSA
[  8347][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GLGSA: $GLGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5*1E
[  8356][V][gps.cpp:724] encode(): Start of GPGSV
[  8360][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPGSV: $GPGSV,1,1,00*79
[  8368][V][gps.cpp:724] encode(): Start of BDGSV
[  8372][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA BDGSV: $BDGSV,1,1,00*68
[  8379][V][gps.cpp:724] encode(): Start of GLGSV
[  8384][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GLGSV: $GLGSV,1,1,00*65
[  8391][V][gps.cpp:724] encode(): Start of GNRMC
[  8396][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNRMC: $GNRMC,,V,,,,,,,,,,M*4E
[  8404][V][gps.cpp:724] encode(): Start of GNVTG
[  8408][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNVTG: $GNVTG,,,,,,,,,M*2D
[  8416][V][gps.cpp:724] encode(): Start of GNZDA
[  8420][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNZDA: $GNZDA,,,,,,*56
[  8427][V][gps.cpp:724] encode(): Start of GPTXT
[  8432][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPTXT: $GPTXT,01,01,01,ANTENNA OK*35
[  8440][V][gps.cpp:688] encode(): Expecting UBX Payload: 16 bytes
[  8446][V][gps.cpp:899] parseUbxMessage(): NAV-STATUS uptime: 1998, timeToFix: 0, gpsFix: 00
[  8454][V][gps.cpp:688] encode(): Expecting UBX Payload: 16 bytes
[  8461][W][gps.cpp:1212] prepareGpsData(): Had to switch incomplete record tow: 324437249 pos: 0, info: 0, hdop: 0, vel: 0, started at 7299
[  8473][I][gps.cpp:1082] handleUbxNavTimeGps(): TIMEGPS: iTOW: 324438249, fTOW: -129150, week 2329, leapS: 18, valid: 0x00 (), tAcc 0ns, DATE: 2024-08-28T18:07:18, delay 162ms
[  9300][V][gps.cpp:724] encode(): Start of GNGGA
[  9301][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNGGA: $GNGGA,,,,,,0,00,25.5,,,,,,*64
[  9302][V][gps.cpp:724] encode(): Start of GNGLL
[  9307][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNGLL: $GNGLL,,,,,,V,M*79
[  9314][V][gps.cpp:724] encode(): Start of GPGSA
[  9319][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPGSA: $GPGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5*02
[  9328][V][gps.cpp:724] encode(): Start of BDGSA
[  9333][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA BDGSA: $BDGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5*13
[  9342][V][gps.cpp:724] encode(): Start of GLGSA
[  9347][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GLGSA: $GLGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5*1E
[  9356][V][gps.cpp:724] encode(): Start of GPGSV
[  9360][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPGSV: $GPGSV,1,1,00*79
[  9368][V][gps.cpp:724] encode(): Start of BDGSV
[  9372][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA BDGSV: $BDGSV,1,1,00*68
[  9379][V][gps.cpp:724] encode(): Start of GLGSV
[  9384][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GLGSV: $GLGSV,1,1,00*65
[  9391][V][gps.cpp:724] encode(): Start of GNRMC
[  9396][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNRMC: $GNRMC,,V,,,,,,,,,,M*4E
[  9404][V][gps.cpp:724] encode(): Start of GNVTG
[  9408][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNVTG: $GNVTG,,,,,,,,,M*2D
[  9416][V][gps.cpp:724] encode(): Start of GNZDA
[  9420][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNZDA: $GNZDA,,,,,,*56
[  9427][V][gps.cpp:724] encode(): Start of GPTXT
[  9432][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPTXT: $GPTXT,01,01,01,ANTENNA OK*35
[  9440][V][gps.cpp:688] encode(): Expecting UBX Payload: 16 bytes
[  9446][V][gps.cpp:899] parseUbxMessage(): NAV-STATUS uptime: 2997, timeToFix: 0, gpsFix: 00
[  9454][V][gps.cpp:688] encode(): Expecting UBX Payload: 16 bytes
[  9461][W][gps.cpp:1212] prepareGpsData(): Had to switch incomplete record tow: 324438249 pos: 0, info: 0, hdop: 0, vel: 0, started at 8299
[  9473][I][gps.cpp:1082] handleUbxNavTimeGps(): TIMEGPS: iTOW: 324439249, fTOW: -129150, week 2329, leapS: 18, valid: 0x00 (), tAcc 0ns, DATE: 2024-08-28T18:07:19, delay 162ms

and after letting it run for a couple of minute:

[367079][V][gps.cpp:724] encode(): Start of GNGGA
[367080][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNGGA: $GNGGA,051901.000,,,,,0,00,25.5,,,,,,*76
[367082][V][gps.cpp:724] encode(): Start of GNGLL
[367087][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNGLL: $GNGLL,,,,,051901.000,V,M*6B
[367095][V][gps.cpp:724] encode(): Start of GPGSA
[367100][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPGSA: $GPGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5*02
[367109][V][gps.cpp:724] encode(): Start of BDGSA
[367114][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA BDGSA: $BDGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5*13
[367123][V][gps.cpp:724] encode(): Start of GLGSA
[367128][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GLGSA: $GLGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5*1E
[367137][V][gps.cpp:724] encode(): Start of GPGSV
[367142][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPGSV: $GPGSV,3,1,10,02,25,262,,08,75,283,,10,62,091,,13,,,14*40
[367152][V][gps.cpp:724] encode(): Start of GPGSV
[367157][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPGSV: $GPGSV,3,2,10,16,21,183,,21,43,264,26,23,32,050,,27,66,133,*76
[367168][V][gps.cpp:724] encode(): Start of GPGSV
[367173][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPGSV: $GPGSV,3,3,10,30,06,306,,32,12,123,*7A
[367182][V][gps.cpp:724] encode(): Start of BDGSV
[367186][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA BDGSV: $BDGSV,1,1,00*68
[367193][V][gps.cpp:724] encode(): Start of GLGSV
[367198][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GLGSV: $GLGSV,1,1,02,70,,,41,86,,,38*60
[367207][V][gps.cpp:724] encode(): Start of GNRMC
[367211][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNRMC: $GNRMC,051901.000,V,,,,,,,030924,,,M*50
[367220][V][gps.cpp:724] encode(): Start of GNVTG
[367225][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNVTG: $GNVTG,,,,,,,,,M*2D
[367232][V][gps.cpp:724] encode(): Start of GNZDA
[367237][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNZDA: $GNZDA,051901.000,03,09,2024,00,00*4A
[367246][V][gps.cpp:724] encode(): Start of GPTXT
[367251][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPTXT: $GPTXT,01,01,01,ANTENNA OK*35
[367259][V][gps.cpp:688] encode(): Expecting UBX Payload: 16 bytes
[367265][V][gps.cpp:899] parseUbxMessage(): NAV-STATUS uptime: 360419, timeToFix: 0, gpsFix: 00
[367273][V][gps.cpp:688] encode(): Expecting UBX Payload: 16 bytes
[367279][W][gps.cpp:1212] prepareGpsData(): Had to switch incomplete record tow: 191958000 pos: 0, info: 0, hdop: 0, vel: 0, started at 366079
[367292][I][gps.cpp:1082] handleUbxNavTimeGps(): TIMEGPS: iTOW: 191959000, fTOW: 66, week 2330, leapS: 18, valid: 0x07 (TOW WEEK UTC), tAcc 0ns, DATE: 2024-09-03T05:19:19, delay 200ms
[367534][D][sensor.cpp:293] isReadyForStart(): Timeout trigger for Left duration 75038 us - echo pin state: 0 trigger: 367459722 start: 367459722 end: 0 now: 367534760
[368079][V][gps.cpp:724] encode(): Start of GNGGA
[368080][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNGGA: $GNGGA,051902.000,,,,,0,00,25.5,,,,,,*75
[368082][V][gps.cpp:724] encode(): Start of GNGLL
[368087][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNGLL: $GNGLL,,,,,051902.000,V,M*68
[368095][V][gps.cpp:724] encode(): Start of GPGSA
[368100][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPGSA: $GPGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5*02
[368109][V][gps.cpp:724] encode(): Start of BDGSA
[368114][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA BDGSA: $BDGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5*13
[368123][V][gps.cpp:724] encode(): Start of GLGSA
[368128][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GLGSA: $GLGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5*1E
[368137][V][gps.cpp:724] encode(): Start of GPGSV
[368142][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPGSV: $GPGSV,3,1,10,02,25,262,,08,75,283,,10,62,091,,13,,,14*40
[368152][V][gps.cpp:724] encode(): Start of GPGSV
[368157][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPGSV: $GPGSV,3,2,10,16,21,183,,21,43,264,26,23,32,050,,27,66,133,*76
[368168][V][gps.cpp:724] encode(): Start of GPGSV
[368173][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPGSV: $GPGSV,3,3,10,30,06,306,,32,12,123,*7A
[368182][V][gps.cpp:724] encode(): Start of BDGSV
[368186][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA BDGSV: $BDGSV,1,1,00*68
[368194][V][gps.cpp:724] encode(): Start of GLGSV
[368198][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GLGSV: $GLGSV,1,1,02,70,,,40,86,,,38*61
[368207][V][gps.cpp:724] encode(): Start of GNRMC
[368212][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNRMC: $GNRMC,051902.000,V,,,,,,,030924,,,M*53
[368221][V][gps.cpp:724] encode(): Start of GNVTG
[368225][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNVTG: $GNVTG,,,,,,,,,M*2D
[368233][V][gps.cpp:724] encode(): Start of GNZDA
[368237][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GNZDA: $GNZDA,051902.000,03,09,2024,00,00*49
[368246][V][gps.cpp:724] encode(): Start of GPTXT
[368251][I][gps.cpp:1156] parseNmeaMessage(): Unparsed NMEA GPTXT: $GPTXT,01,01,01,ANTENNA OK*35
[368259][V][gps.cpp:688] encode(): Expecting UBX Payload: 16 bytes
[368265][V][gps.cpp:899] parseUbxMessage(): NAV-STATUS uptime: 361418, timeToFix: 0, gpsFix: 00
[368273][V][gps.cpp:688] encode(): Expecting UBX Payload: 16 bytes
[368280][W][gps.cpp:1212] prepareGpsData(): Had to switch incomplete record tow: 191959000 pos: 0, info: 0, hdop: 0, vel: 0, started at 367079
[368292][I][gps.cpp:1082] handleUbxNavTimeGps(): TIMEGPS: iTOW: 191960000, fTOW: 66, week 2330, leapS: 18, valid: 0x07 (TOW WEEK UTC), tAcc 0ns, DATE: 2024-09-03T05:19:20, delay 201ms
[368716][D][sensor.cpp:293] isReadyForStart(): Timeout trigger for Right duration 75077 us - echo pin state: 0 trigger: 368641430 start: 368641430 end: 0 now: 368716507

I hope it helps

Thanks for the log, and sorry for the wait.

Basically, it confirms my assumption. The module only understands part of the UBX messages we send, and it only reports parts of the messages we expect ( NAV-STATUS & TIMEGPS). It might be a fake, or it could be an earlier firmware version that we do not support. The U-Center tool could provide some insights here.

To reduce the risk of a firmware issue, I also performed a configuration reset on my GPS module—it was well detected and initialized. This is not a 100% test, as you obviously have a different module, but it’s what I can do without having your module in hand.

The options I see:

  • Replace the modules with supported ones.
  • Check if the missing data can be filled via the „NMEA“ messages and parse those (this is likely but would need to be implemented).
  • Analyze in more detail which messages are supported by this module to reduce the effort above. The U-Center software can help with this.

Parsing the NMEA messages might also enable support for other non-UBX modules—if that’s something we want.

Thanks for your help @andreas

I can certainly implement the missing parts in the parser. But before doing so I was wondering if it wouldn’t be easier and more robust to use an existing parser such as TinyGPS++ as suggested for example in this tutorial.

Is there any reason you wrote your own implementation rather than using something like this?

TinyGPS does not support the UBX protocol which allows us to use enhanced features of the GPS modules like assisted GPS. TinyGPS was used till version 0.4 of the OBS firmware (mikalhart/TinyGPSPlus) a lot changed since then.