diff --git a/docs/Settings.md b/docs/Settings.md index 4e577bbedd5..93015d6cb2b 100644 --- a/docs/Settings.md +++ b/docs/Settings.md @@ -1734,11 +1734,11 @@ Which SBAS mode to be used ### gps_ublox_nav_hz -Navigation update rate for UBLOX receivers. Some receivers may limit the maximum number of satellites tracked when set to a higher rate or even stop sending navigation updates if the value is too high. Some M10 devices can do up to 25Hz. 10 is a safe value for M8 and newer. +Navigation update rate for UBLOX receivers. M9 modules limit satellite tracking to 16 satellites at 10Hz or higher, but use 32 satellites below 10Hz for better accuracy. M10 modules work well at 8Hz with 3 constellations. Some M10 devices with high-performance clock can do up to 25Hz with 4 constellations. 8Hz is a safe, accurate default for M8/M9/M10. | Default | Min | Max | | --- | --- | --- | -| 10 | 5 | 200 | +| 8 | 5 | 200 | --- @@ -1748,7 +1748,7 @@ Enable use of Beidou satellites. This is at the expense of other regional conste | Default | Min | Max | | --- | --- | --- | -| OFF | OFF | ON | +| ON | OFF | ON | --- @@ -1758,7 +1758,7 @@ Enable use of Galileo satellites. This is at the expense of other regional const | Default | Min | Max | | --- | --- | --- | -| OFF | OFF | ON | +| ON | OFF | ON | --- diff --git a/docs/development/msp/msp_messages.json b/docs/development/msp/msp_messages.json index e4c2a39993f..4ca70d85b80 100644 --- a/docs/development/msp/msp_messages.json +++ b/docs/development/msp/msp_messages.json @@ -4896,6 +4896,12 @@ "ctype": "uint16_t", "desc": "Estimated Vertical Position Accuracy (`gpsSol.epv`)", "units": "cm" + }, + { + "name": "hwVersion", + "ctype": "uint32_t", + "desc": "GPS hardware version (`gpsState.hwVersion`). Values: 500=UBLOX5, 600=UBLOX6, 700=UBLOX7, 800=UBLOX8, 900=UBLOX9, 1000=UBLOX10, 0=UNKNOWN", + "units": "Version code" } ] }, diff --git a/src/main/fc/fc_msp.c b/src/main/fc/fc_msp.c index 455d5f20897..4ef7e9fddc5 100644 --- a/src/main/fc/fc_msp.c +++ b/src/main/fc/fc_msp.c @@ -1009,6 +1009,7 @@ static bool mspFcProcessOutCommand(uint16_t cmdMSP, sbuf_t *dst, mspPostProcessF sbufWriteU16(dst, gpsSol.hdop); sbufWriteU16(dst, gpsSol.eph); sbufWriteU16(dst, gpsSol.epv); + sbufWriteU32(dst, gpsState.hwVersion); break; #endif case MSP2_ADSB_VEHICLE_LIST: diff --git a/src/main/fc/settings.yaml b/src/main/fc/settings.yaml index 1e1932531e5..e6482f8155c 100644 --- a/src/main/fc/settings.yaml +++ b/src/main/fc/settings.yaml @@ -1757,12 +1757,12 @@ groups: type: uint8_t - name: gps_ublox_use_galileo description: "Enable use of Galileo satellites. This is at the expense of other regional constellations, so benefit may also be regional. Requires M8N and Ublox firmware 3.x (or later) [OFF/ON]." - default_value: OFF + default_value: ON field: ubloxUseGalileo type: bool - name: gps_ublox_use_beidou description: "Enable use of Beidou satellites. This is at the expense of other regional constellations, so benefit may also be regional. Requires gps hardware support [OFF/ON]." - default_value: OFF + default_value: ON field: ubloxUseBeidou type: bool - name: gps_ublox_use_glonass @@ -1777,8 +1777,8 @@ groups: min: 5 max: 10 - name: gps_ublox_nav_hz - description: "Navigation update rate for UBLOX receivers. Some receivers may limit the maximum number of satellites tracked when set to a higher rate or even stop sending navigation updates if the value is too high. Some M10 devices can do up to 25Hz. 10 is a safe value for M8 and newer." - default_value: 10 + description: "Navigation update rate for UBLOX receivers. M9 modules limit satellite tracking to 16 satellites at 10Hz or higher, but use 32 satellites below 10Hz for better accuracy. M10 modules work well at 8Hz with 3 constellations. Some M10 devices with high-performance clock can do up to 25Hz with 4 constellations. 8Hz is a safe, accurate default for M8/M9/M10." + default_value: 8 field: ubloxNavHz type: uint8_t min: 5 diff --git a/src/main/io/gps.c b/src/main/io/gps.c index c8dc6788df3..4e2bda3157d 100755 --- a/src/main/io/gps.c +++ b/src/main/io/gps.c @@ -451,6 +451,9 @@ void gpsInit(void) gpsStats.errors = 0; gpsStats.timeouts = 0; + // Initialize hardware version to unknown (for MSP_GPSSTATISTICS) + gpsState.hwVersion = 0; + // Reset solution, timeout and prepare to start gpsResetSolution(&gpsSolDRV); gpsResetSolution(&gpsSol);