From 5858fc86eaeb683191add3f29277327751a66c5b Mon Sep 17 00:00:00 2001 From: PaulZC Date: Wed, 30 Jul 2025 12:41:47 +0100 Subject: [PATCH 1/5] Fix printPacket - subtract startingSpot from len --- src/u-blox_GNSS.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/u-blox_GNSS.cpp b/src/u-blox_GNSS.cpp index c8915b7..318d124 100644 --- a/src/u-blox_GNSS.cpp +++ b/src/u-blox_GNSS.cpp @@ -5616,7 +5616,7 @@ void DevUBLOXGNSS::printPacket(ubxPacket *packet, bool alwaysPrintPayload) { _debugSerial.print(F(" Payload:")); - for (uint16_t x = 0; x < packet->len; x++) + for (uint16_t x = 0; x < packet->len - packet->startingSpot; x++) { _debugSerial.print(F(" ")); _debugSerial.print(packet->payload[x], HEX); @@ -8558,7 +8558,7 @@ bool DevUBLOXGNSS::getModuleInfo(uint16_t maxWait) // We will step through the payload looking at each extension field of 30 bytes char *ptr; uint8_t fwProtMod = 0; // Flags to show if we extracted the FWVER, PROTVER and MOD data - for (uint8_t extensionNumber = 0; extensionNumber < ((packetCfg.len - 40) / 30); extensionNumber++) + for (uint16_t extensionNumber = 0; extensionNumber < ((packetCfg.len - 40) / 30); extensionNumber++) { // Check for FWVER (should be in extension 1) ptr = strstr((const char *)&payloadCfg[(30 * extensionNumber)], "FWVER="); From 623da098e35cfa8dd77cb6c0347d7de7e14931cf Mon Sep 17 00:00:00 2001 From: PaulZC Date: Wed, 30 Jul 2025 12:58:48 +0100 Subject: [PATCH 2/5] Decrease MAX_PAYLOAD_SIZE to 300 --- src/u-blox_external_typedefs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/u-blox_external_typedefs.h b/src/u-blox_external_typedefs.h index 38dcac5..d5e855f 100644 --- a/src/u-blox_external_typedefs.h +++ b/src/u-blox_external_typedefs.h @@ -254,7 +254,7 @@ struct sfe_ublox_ubx_logging_list_t #ifndef MAX_PAYLOAD_SIZE // v2.0: keep this for backwards-compatibility, but this is largely superseded by setPacketCfgPayloadSize -#define MAX_PAYLOAD_SIZE 512 // We need >=288 bytes for getModuleInfo on the ZED-X20P +#define MAX_PAYLOAD_SIZE 300 // We need >=280 bytes for getModuleInfo on the ZED-X20P // #define MAX_PAYLOAD_SIZE 768 //Worst case: UBX_CFG_VALSET packet with 64 keyIDs each with 64 bit values #endif From a5e478388c5f535eca87f63a29786f5222a3f432 Mon Sep 17 00:00:00 2001 From: PaulZC Date: Wed, 30 Jul 2025 13:12:09 +0100 Subject: [PATCH 3/5] Add keys for M9 MDR 2.16 --- ...ceDescription_UBX-22037308_keys_sorted.txt | 806 ++++++++++++++++++ keys/u-blox_config_keys_sorted.txt | 5 + src/u-blox_config_keys.h | 5 + 3 files changed, 816 insertions(+) create mode 100644 keys/u-blox-M9-MDR-2.16_InterfaceDescription_UBX-22037308_keys_sorted.txt diff --git a/keys/u-blox-M9-MDR-2.16_InterfaceDescription_UBX-22037308_keys_sorted.txt b/keys/u-blox-M9-MDR-2.16_InterfaceDescription_UBX-22037308_keys_sorted.txt new file mode 100644 index 0000000..9b2e075 --- /dev/null +++ b/keys/u-blox-M9-MDR-2.16_InterfaceDescription_UBX-22037308_keys_sorted.txt @@ -0,0 +1,806 @@ +0x10050007 +0x10050008 +0x10050009 +0x1005000a +0x1005000b +0x10050012 +0x10050013 +0x10050014 +0x10050015 +0x10050016 +0x1006001d +0x10060027 +0x10070001 +0x10070003 +0x10070004 +0x10070005 +0x10070006 +0x1007000d +0x1007000f +0x10070010 +0x10070011 +0x1007001c +0x10080001 +0x10110013 +0x10110025 +0x10110061 +0x10170001 +0x10170002 +0x10220001 +0x10220002 +0x10220003 +0x10220004 +0x10240012 +0x10240020 +0x10240030 +0x10240040 +0x10240050 +0x10310001 +0x10310005 +0x10310007 +0x1031000d +0x10310012 +0x10310014 +0x10310018 +0x1031001f +0x10310020 +0x10310021 +0x10310022 +0x10310024 +0x10310025 +0x10340014 +0x10360002 +0x10360003 +0x10360004 +0x10360005 +0x10360007 +0x10370005 +0x10370006 +0x10370007 +0x10510002 +0x10510003 +0x10520005 +0x10530005 +0x10640002 +0x10640003 +0x10640005 +0x10640006 +0x10650001 +0x10650002 +0x10710001 +0x10710002 +0x10720001 +0x10720002 +0x10730001 +0x10730002 +0x10740001 +0x10740002 +0x10750001 +0x10750002 +0x10760001 +0x10760002 +0x10770001 +0x10770002 +0x10780001 +0x10780002 +0x10790001 +0x10790002 +0x107a0001 +0x107a0002 +0x10930003 +0x10930004 +0x10930005 +0x10930006 +0x10930011 +0x10930012 +0x10930013 +0x10930015 +0x10930016 +0x10930017 +0x10930021 +0x10930022 +0x10930023 +0x10930024 +0x10930025 +0x10930026 +0x10a20001 +0x10a20002 +0x10a3002e +0x10a3002f +0x10a30030 +0x10a30031 +0x10a30032 +0x10a30033 +0x10a30034 +0x10a30035 +0x10c70001 +0x10c70002 +0x10f60009 +0x10f60051 +0x2005000c +0x20050017 +0x20050023 +0x20050030 +0x20050035 +0x20050036 +0x20060008 +0x20060009 +0x20060015 +0x20060016 +0x2006001e +0x2006001f +0x2007000b +0x20110011 +0x2011001c +0x20110021 +0x201100a1 +0x201100a2 +0x201100a3 +0x201100a4 +0x201100aa +0x201100ab +0x201100c4 +0x201100d6 +0x20210003 +0x20210004 +0x20220005 +0x20220021 +0x20220022 +0x20220031 +0x20220032 +0x20240011 +0x20240013 +0x20240014 +0x20250038 +0x20510001 +0x20520002 +0x20520003 +0x20520004 +0x20530002 +0x20530003 +0x20530004 +0x20640001 +0x20910006 +0x20910007 +0x20910008 +0x20910009 +0x2091000a +0x20910010 +0x20910011 +0x20910012 +0x20910013 +0x20910014 +0x20910015 +0x20910016 +0x20910017 +0x20910018 +0x20910019 +0x2091001a +0x2091001b +0x2091001c +0x2091001d +0x2091001e +0x2091001f +0x20910020 +0x20910021 +0x20910022 +0x20910023 +0x20910024 +0x20910025 +0x20910026 +0x20910027 +0x20910028 +0x20910029 +0x2091002a +0x2091002b +0x2091002c +0x2091002d +0x20910038 +0x20910039 +0x2091003a +0x2091003b +0x2091003c +0x2091003d +0x2091003e +0x2091003f +0x20910040 +0x20910041 +0x20910042 +0x20910043 +0x20910044 +0x20910045 +0x20910046 +0x20910047 +0x20910048 +0x20910049 +0x2091004a +0x2091004b +0x2091004c +0x2091004d +0x2091004e +0x2091004f +0x20910050 +0x20910051 +0x20910052 +0x20910053 +0x20910054 +0x20910055 +0x20910056 +0x20910057 +0x20910058 +0x20910059 +0x2091005a +0x2091005b +0x2091005c +0x2091005d +0x2091005e +0x2091005f +0x20910060 +0x20910061 +0x20910062 +0x20910063 +0x20910064 +0x20910065 +0x20910066 +0x20910067 +0x20910068 +0x20910069 +0x2091006a +0x2091006b +0x2091006c +0x2091006d +0x2091006e +0x2091007e +0x2091007f +0x20910080 +0x20910081 +0x20910082 +0x20910083 +0x20910084 +0x20910085 +0x20910086 +0x20910087 +0x20910092 +0x20910093 +0x20910094 +0x20910095 +0x20910096 +0x209100a1 +0x209100a2 +0x209100a3 +0x209100a4 +0x209100a5 +0x209100a6 +0x209100a7 +0x209100a8 +0x209100a9 +0x209100aa +0x209100ab +0x209100ac +0x209100ad +0x209100ae +0x209100af +0x209100b0 +0x209100b1 +0x209100b2 +0x209100b3 +0x209100b4 +0x209100b5 +0x209100b6 +0x209100b7 +0x209100b8 +0x209100b9 +0x209100ba +0x209100bb +0x209100bc +0x209100bd +0x209100be +0x209100bf +0x209100c0 +0x209100c1 +0x209100c2 +0x209100c3 +0x209100c4 +0x209100c5 +0x209100c6 +0x209100c7 +0x209100c8 +0x209100c9 +0x209100ca +0x209100cb +0x209100cc +0x209100cd +0x209100ce +0x209100cf +0x209100d0 +0x209100d1 +0x209100d2 +0x209100d3 +0x209100d4 +0x209100d5 +0x209100d6 +0x209100d7 +0x209100d8 +0x209100d9 +0x209100da +0x209100db +0x209100dc +0x209100dd +0x209100de +0x209100df +0x209100e0 +0x209100e1 +0x209100e2 +0x209100e3 +0x209100e4 +0x209100e5 +0x209100e6 +0x209100e7 +0x209100e8 +0x209100e9 +0x209100ea +0x209100eb +0x209100ec +0x209100ed +0x209100ee +0x209100ef +0x209100f0 +0x209100f1 +0x209100f2 +0x209100f3 +0x209100f4 +0x209100f5 +0x209100f6 +0x209100f7 +0x209100f8 +0x209100f9 +0x209100fa +0x20910105 +0x20910106 +0x20910107 +0x20910108 +0x20910109 +0x2091010f +0x20910110 +0x20910111 +0x20910112 +0x20910113 +0x20910114 +0x20910115 +0x20910116 +0x20910117 +0x20910118 +0x2091015f +0x20910160 +0x20910161 +0x20910162 +0x20910163 +0x20910178 +0x20910179 +0x2091017a +0x2091017b +0x2091017c +0x2091017d +0x2091017e +0x2091017f +0x20910180 +0x20910181 +0x20910187 +0x20910188 +0x20910189 +0x2091018a +0x2091018b +0x20910196 +0x20910197 +0x20910198 +0x20910199 +0x2091019a +0x2091019b +0x2091019c +0x2091019d +0x2091019e +0x2091019f +0x209101a0 +0x209101a1 +0x209101a2 +0x209101a3 +0x209101a4 +0x209101a5 +0x209101a6 +0x209101a7 +0x209101a8 +0x209101a9 +0x209101b4 +0x209101b5 +0x209101b6 +0x209101b7 +0x209101b8 +0x209101b9 +0x209101ba +0x209101bb +0x209101bc +0x209101bd +0x20910204 +0x20910205 +0x20910206 +0x20910207 +0x20910208 +0x20910231 +0x20910232 +0x20910233 +0x20910234 +0x20910235 +0x2091025e +0x2091025f +0x20910260 +0x20910261 +0x20910262 +0x20910277 +0x20910278 +0x20910279 +0x2091027a +0x2091027b +0x2091029f +0x209102a0 +0x209102a1 +0x209102a2 +0x209102a3 +0x209102a4 +0x209102a5 +0x209102a6 +0x209102a7 +0x209102a8 +0x20910313 +0x20910314 +0x20910315 +0x20910316 +0x20910317 +0x20910336 +0x20910337 +0x20910338 +0x20910339 +0x2091033a +0x20910345 +0x20910346 +0x20910347 +0x20910348 +0x20910349 +0x2091034f +0x20910350 +0x20910351 +0x20910352 +0x20910353 +0x20910354 +0x20910355 +0x20910356 +0x20910357 +0x20910358 +0x20910359 +0x2091035a +0x2091035b +0x2091035c +0x2091035d +0x20910386 +0x20910387 +0x20910388 +0x20910389 +0x2091038a +0x2091038b +0x2091038c +0x2091038d +0x2091038e +0x2091038f +0x20910400 +0x20910401 +0x20910402 +0x20910403 +0x20910404 +0x20910430 +0x20910431 +0x20910432 +0x20910433 +0x20910434 +0x20910435 +0x20910436 +0x20910437 +0x20910438 +0x20910439 +0x20910465 +0x20910466 +0x20910467 +0x20910468 +0x20910469 +0x20910470 +0x20910471 +0x20910472 +0x20910473 +0x20910474 +0x20910475 +0x20910476 +0x20910477 +0x20910478 +0x20910479 +0x20910480 +0x20910481 +0x20910482 +0x20910483 +0x20910484 +0x20910485 +0x20910486 +0x20910487 +0x20910488 +0x20910489 +0x20910490 +0x20910491 +0x20910492 +0x20910493 +0x20910494 +0x20910495 +0x20910496 +0x20910497 +0x20910498 +0x20910499 +0x20910500 +0x20910501 +0x20910502 +0x20910503 +0x20910504 +0x20910505 +0x20910506 +0x20910507 +0x20910508 +0x20910509 +0x20910510 +0x20910511 +0x20910512 +0x20910513 +0x20910514 +0x20910515 +0x20910516 +0x20910517 +0x20910518 +0x20910519 +0x20910525 +0x20910526 +0x20910527 +0x20910528 +0x20910529 +0x20910530 +0x20910531 +0x20910532 +0x20910533 +0x20910534 +0x20910535 +0x20910536 +0x20910537 +0x20910538 +0x20910539 +0x20910540 +0x20910541 +0x20910542 +0x20910543 +0x20910544 +0x20910545 +0x20910546 +0x20910547 +0x20910548 +0x20910549 +0x20910550 +0x20910551 +0x20910552 +0x20910553 +0x20910554 +0x20910555 +0x20910556 +0x20910557 +0x20910558 +0x20910559 +0x20910560 +0x20910561 +0x20910562 +0x20910563 +0x20910564 +0x20910565 +0x20910566 +0x20910567 +0x20910568 +0x20910569 +0x20910575 +0x20910576 +0x20910577 +0x20910578 +0x20910579 +0x2091062a +0x2091062b +0x2091062c +0x2091062d +0x2091062e +0x2091062f +0x20910630 +0x20910631 +0x20910632 +0x20910633 +0x20910634 +0x20910635 +0x20910636 +0x20910637 +0x20910638 +0x20910652 +0x20910653 +0x20910654 +0x20910655 +0x20910656 +0x20910657 +0x20910658 +0x20910659 +0x2091065a +0x2091065b +0x2091065c +0x2091065d +0x2091065e +0x2091065f +0x20910660 +0x20910661 +0x20910662 +0x20910663 +0x20910664 +0x20910665 +0x20910666 +0x20910667 +0x20910668 +0x20910669 +0x2091066a +0x20910670 +0x20910671 +0x20910672 +0x20910673 +0x20910674 +0x2091067f +0x20910680 +0x20910681 +0x20910682 +0x20910683 +0x20910689 +0x2091068a +0x2091068b +0x2091068c +0x2091068d +0x2091069d +0x2091069e +0x2091069f +0x209106a0 +0x209106a1 +0x209106ac +0x209106ad +0x209106ae +0x209106af +0x209106b0 +0x20920001 +0x20920002 +0x20920003 +0x20920004 +0x20920005 +0x20920006 +0x20920007 +0x20920008 +0x20920009 +0x2092000a +0x20930001 +0x20930002 +0x20930007 +0x20930031 +0x20930032 +0x20a20003 +0x20a20005 +0x20a30036 +0x20a30037 +0x20a30038 +0x20a30054 +0x20a30055 +0x20a30056 +0x20a30063 +0x20a30064 +0x20c70003 +0x30050001 +0x30060007 +0x3006000a +0x3006000b +0x30060017 +0x30060018 +0x30060020 +0x30060021 +0x30060022 +0x3006002e +0x3006002f +0x3007000a +0x3007000e +0x30070012 +0x30070013 +0x30070014 +0x30080002 +0x30080003 +0x30080004 +0x30110017 +0x301100b1 +0x301100b2 +0x301100b3 +0x301100b4 +0x301100b5 +0x30210001 +0x30210002 +0x30250016 +0x3025003b +0x30360008 +0x30370008 +0x3065000a +0x3065000b +0x3065000c +0x30930033 +0x30a20004 +0x30a3003c +0x30f6000a +0x30f6000b +0x40050002 +0x40050003 +0x40050004 +0x40050005 +0x40050006 +0x4005000d +0x4005000e +0x4005000f +0x40050010 +0x40050011 +0x40050024 +0x40050025 +0x40050026 +0x40050027 +0x4006002d +0x40070007 +0x40070008 +0x40070009 +0x40110064 +0x40110065 +0x40110066 +0x40110067 +0x40110068 +0x40110069 +0x4011006a +0x401100c1 +0x401100c2 +0x40240021 +0x40240022 +0x40240023 +0x40240031 +0x40240032 +0x40240033 +0x40240041 +0x40240042 +0x40240043 +0x40240051 +0x40240052 +0x40240053 +0x40520001 +0x40530001 +0x5005002a +0x5005002b +0x5005002c +0x5005002d +0x50110062 +0x50110063 +0x50360006 +0x5065000d +0x5065000e +0x5065000f +0x50650010 +0x50650011 +0x50650012 +0x50650013 +0x50650014 +0x50650015 +0x50650016 +0x50650017 +0x50650018 +0x50c70004 +0x50c70005 +0x50c70006 +0x50c70007 diff --git a/keys/u-blox_config_keys_sorted.txt b/keys/u-blox_config_keys_sorted.txt index cf18c8d..a551781 100644 --- a/keys/u-blox_config_keys_sorted.txt +++ b/keys/u-blox_config_keys_sorted.txt @@ -917,6 +917,11 @@ 0x209106a9 0x209106aa 0x209106ab +0x209106ac +0x209106ad +0x209106ae +0x209106af +0x209106b0 0x209106b6 0x209106b7 0x209106b8 diff --git a/src/u-blox_config_keys.h b/src/u-blox_config_keys.h index 4402c22..afda325 100644 --- a/src/u-blox_config_keys.h +++ b/src/u-blox_config_keys.h @@ -702,6 +702,11 @@ const uint32_t UBLOX_CFG_MSGOUT_UBX_ESF_ALG_UART1 = UBX_CFG_U1 | 0x20910110; const uint32_t UBLOX_CFG_MSGOUT_UBX_ESF_ALG_UART2 = UBX_CFG_U1 | 0x20910111; // Output rate of the UBX-ESF-ALG message on port UART2 const uint32_t UBLOX_CFG_MSGOUT_UBX_ESF_ALG_USB = UBX_CFG_U1 | 0x20910112; // Output rate of the UBX-ESF-ALG message on port USB const uint32_t UBLOX_CFG_MSGOUT_UBX_ESF_ALG_SPI = UBX_CFG_U1 | 0x20910113; // Output rate of the UBX-ESF-ALG message on port SPI +const uint32_t UBLOX_CFG_MSGOUT_UBX_ESF_CAL_I2C = UBX_CFG_U1 | 0x209106ac; // Output rate of the UBX-ESF-CAL message on port I2C +const uint32_t UBLOX_CFG_MSGOUT_UBX_ESF_CAL_SPI = UBX_CFG_U1 | 0x209106b0; // Output rate of the UBX-ESF-CAL message on port SPI +const uint32_t UBLOX_CFG_MSGOUT_UBX_ESF_CAL_UART1 = UBX_CFG_U1 | 0x209106ad; // Output rate of the UBX-ESF-CAL message on port UART1 +const uint32_t UBLOX_CFG_MSGOUT_UBX_ESF_CAL_UART2 = UBX_CFG_U1 | 0x209106ae; // Output rate of the UBX-ESF-CAL message on port UART2 +const uint32_t UBLOX_CFG_MSGOUT_UBX_ESF_CAL_USB = UBX_CFG_U1 | 0x209106af; // Output rate of the UBX-ESF-CAL message on port USB const uint32_t UBLOX_CFG_MSGOUT_UBX_ESF_INS_I2C = UBX_CFG_U1 | 0x20910114; // Output rate of the UBX-ESF-INS message on port I2C const uint32_t UBLOX_CFG_MSGOUT_UBX_ESF_INS_UART1 = UBX_CFG_U1 | 0x20910115; // Output rate of the UBX-ESF-INS message on port UART1 const uint32_t UBLOX_CFG_MSGOUT_UBX_ESF_INS_UART2 = UBX_CFG_U1 | 0x20910116; // Output rate of the UBX-ESF-INS message on port UART2 From 223f64bd010710fafd56ed4f96273e51064ab266 Mon Sep 17 00:00:00 2001 From: PaulZC Date: Wed, 30 Jul 2025 13:12:23 +0100 Subject: [PATCH 4/5] Typo fix --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7bdb5e4..6211458 100644 --- a/README.md +++ b/README.md @@ -224,7 +224,7 @@ v3 of the library provides support for generation F9 and M10 u-blox GNSS modules For most generation 8 modules, please use [version 2 of this library](https://github.com/sparkfun/SparkFun_u-blox_GNSS_Arduino_Library). -For generation 6 and 7, please see [this example (depricated)](https://github.com/sparkfun/SparkFun_Ublox_Arduino_Library/tree/master/examples/Series_6_7/Example1_GetPositionAndTime_Series_6_7). +For generation 6 and 7, please see [this example (deprecated)](https://github.com/sparkfun/SparkFun_Ublox_Arduino_Library/tree/master/examples/Series_6_7/Example1_GetPositionAndTime_Series_6_7). ## Contributing From 1e8a4060cd7f60728b2917e8bbace8affcf5b06a Mon Sep 17 00:00:00 2001 From: PaulZC Date: Wed, 30 Jul 2025 14:33:21 +0100 Subject: [PATCH 5/5] v3.1.12 --- library.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library.properties b/library.properties index 9cfebcd..13ba65a 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=SparkFun u-blox GNSS v3 -version=3.1.11 +version=3.1.12 author=SparkFun Electronics maintainer=SparkFun Electronics sentence=Library for I2C, Serial and SPI Communication with u-blox GNSS modules