@@ -807,6 +807,15 @@ void beginGNSS()
807
807
// Check the firmware version of the ZED-F9P. Based on Example21_ModuleInfo.
808
808
if (theGNSS.getModuleInfo (1100 ) == true ) // Try to get the module info
809
809
{
810
+ // Clear the module type. Default to PLATFORM_F9P below - if needed
811
+ zedModuleType = 0 ;
812
+
813
+ // Determine if we have a ZED-F9P (Express/Facet) or an ZED-F9R (Express Plus/Facet Plus)
814
+ if (strstr (theGNSS.getModuleName (), " ZED-F9P" ) != nullptr )
815
+ zedModuleType = PLATFORM_F9P;
816
+ else if (strstr (theGNSS.getModuleName (), " ZED-F9R" ) != nullptr )
817
+ zedModuleType = PLATFORM_F9R;
818
+
810
819
// Reconstruct the firmware version
811
820
snprintf (zedFirmwareVersion, sizeof (zedFirmwareVersion), " %s %d.%02d" , theGNSS.getFirmwareType (),
812
821
theGNSS.getFirmwareVersionHigh (), theGNSS.getFirmwareVersionLow ());
@@ -815,13 +824,14 @@ void beginGNSS()
815
824
zedFirmwareVersionInt = (theGNSS.getFirmwareVersionHigh () * 100 ) + theGNSS.getFirmwareVersionLow ();
816
825
817
826
// Check if this is known firmware
818
- // "1.20" - Mostly for F9R HPS 1.20, but also F9P HPG v1.20
819
- // "1.21" - F9R HPS v1.21
820
- // "1.30" - ZED-F9P (HPG) released Dec, 2021. Also ZED-F9R (HPS) released Sept, 2022
821
- // "1.32" - ZED-F9P released May, 2022
827
+ // "1.51" - ZED-F9P released November, 2024
822
828
// "1.50" - ZED-F9P released July, 2024
829
+ // "1.32" - ZED-F9P released May, 2022
830
+ // "1.30" - ZED-F9P (HPG) released Dec, 2021. Also ZED-F9R (HPS) released Sept, 2022
831
+ // "1.21" - F9R HPS v1.21
832
+ // "1.20" - Mostly for F9R HPS 1.20, but also F9P HPG v1.20
823
833
824
- const uint8_t knownFirmwareVersions[] = {100 , 112 , 113 , 120 , 121 , 130 , 132 , 150 };
834
+ const uint8_t knownFirmwareVersions[] = {151 , 150 , 132 , 130 , 121 , 120 , 113 , 112 , 100 };
825
835
bool knownFirmware = false ;
826
836
for (uint8_t i = 0 ; i < (sizeof (knownFirmwareVersions) / sizeof (uint8_t )); i++)
827
837
{
@@ -832,17 +842,21 @@ void beginGNSS()
832
842
if (!knownFirmware)
833
843
{
834
844
systemPrintf (" Unknown firmware version: %s\r\n " , zedFirmwareVersion);
835
- zedFirmwareVersionInt = 99 ; // 0.99 invalid firmware version
845
+ // Let's be clever and allow ZED-F9P firmware versions higher than knownFirmwareVersions[0]
846
+ if ((zedModuleType == PLATFORM_F9P) && (zedFirmwareVersionInt > knownFirmwareVersions[0 ]))
847
+ {
848
+ zedFirmwareVersionInt = knownFirmwareVersions[0 ];
849
+ systemPrintf (" Assuming firmware compatibility with %d.%02d\r\n " , zedFirmwareVersionInt / 100 , zedFirmwareVersionInt % 100 );
850
+ }
851
+ else
852
+ {
853
+ zedFirmwareVersionInt = 99 ; // 0.99 invalid firmware version
854
+ }
836
855
}
837
856
838
- // Determine if we have a ZED-F9P (Express/Facet) or an ZED-F9R (Express Plus/Facet Plus)
839
- if (strstr (theGNSS.getModuleName (), " ZED-F9P" ) != nullptr )
840
- zedModuleType = PLATFORM_F9P;
841
- else if (strstr (theGNSS.getModuleName (), " ZED-F9R" ) != nullptr )
842
- zedModuleType = PLATFORM_F9R;
843
- else
857
+ if (zedModuleType == 0 )
844
858
{
845
- systemPrintf (" Unknown ZED module: %s\r\n " , theGNSS.getModuleName ());
859
+ systemPrintf (" Unknown ZED module: %s. Assuming compatibility with ZED-F9P \r\n " , theGNSS.getModuleName ());
846
860
zedModuleType = PLATFORM_F9P;
847
861
}
848
862
0 commit comments