GNSS systems and GPS_GNSS_MODE

How is the GPS_GNSS_MODE parameter expected to interact with the UBLOX M8? Presuming the M8 has the current 3.01 FW installed, my understanding is ArduPilot can tell the M8 which systems to use based on this parameter, rather than doing it manually through ucenter.

  • Does this even work? So far, neither I nor anyone else reports it actually have any effect on the M8.

  • How many systems can the M8 running 3.01 have enabled at once, and which of the “systems” are really systems that count against it? UBLOX documentation seems vague.

  • I think from what I’ve read that GPS and QZSS together count as one system?

  • Does SBAS augmentation count as a separate system, or does it count together with the other systems you’ve enabled?


GPS_GNSS_MODE does work with a UBlox M8 (It was the original test target that the parameter was tested against, although it will also interact to a lesser extent with a NEO-7 for example). If this parameter is enabled it will override any settings you set with u-center.

I’m afraid I don’t have the datasheets in front of me, but the u-blox datasheet (and some of the firmware release notes) contain a list of both available constellation mixes, and the nav update rates that are possible with them. Consulting this table will be the best answer you can find.

QZSS is only of assistance if you are in Japan, and otherwise you can safely ignore it. (In Australia it may be worth disabling it to ensure that you aren’t taking in invalid correction data as it’s outside of the service region).

SBAS must be enabled both here and with the SBAS parameter. ArduPilot will not attempt to specifically configure PRN’s to exclude any SBAS satellites, if you want to do this you will need to do it through u-center.

If you want to demonstrate the difference with an M8 unit if you have the system outside and set the GPS_GNSS_MODE between 1 and 67 you should be able to easily observe a difference in satellite count. You will have to either reboot, or wait until this parameter value is rechecked (rebooting will be easier to see the effect of). Do not alter this parameter while in flight.

Thanks! What would cause this to have no effect? I’ve tried numerous things to elicit an obvious response to no avail. For example, I set the parameter to only use galileo, which should make it only see 4-6 sats at any time. But even after rebooting, it comes right back with 14-16 sats and locks on just like it always does.

This is with a HERE.