Mission Planner's uBlox fixed base config strategy?

I’m working on a fixed base configurator that may be of use to the community at some point, and at least for now, I’m mimicking Mission Planner’s configuration strategy.

Why are all ports configured for UBX+NMEA+RTCM3 in/out but then all NMEA sentence rates are zeroized?

Wouldn’t it be just as effective to eliminate NMEA from the port config call? Or is there a reason to keep NMEA as an available/active protocol?

To wit, this config message configures UART1 as mentioned above (0x23 sets bits 0, 1, and 5, corresponding to all 3 message types):

            var packet = generate(0x6, 0x00, new byte[]
                {
                    0x01, 0x00, 0x00, 0x00, 0xD0, 0x08, 0x00, 0x00, 0x00, 0x08,
                    0x07, 0x00, 0x23, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00
                });

And a few lines later, this immediately turns off all NMEA messaging via zeroing the associated UBX-CFG-MSG rates:

            // turn off all nmea
            for (int a = 0; a <= 0xf; a++)
            {
                if (a == 0xb || a == 0xc || a == 0xe)
                    continue;
                turnon_off(port, 0xf0, (byte) a, 0);
            }

Reference:
MissionPlanner/ExtLibs/Utilities/ubx_m8p.cs at master · ArduPilot/MissionPlanner (github.com)

I would say, it is ok to disable NMEA on the port. But ublox is a peculiar animal, I can imagine that some version needs its approach to work correctly. Or the hex version of the PRT config message was available in the docs already :slight_smile:

Much appreciate the answer and completely understand the context of uBlox being a weird animal.

I’m attempting to create a Pi-served web app, targeting the Zed-F9P, at least initially, and I think you’re correct that NMEA can simply be disabled at the port.

I’m guessing it’ll be compatible with most M8P variants that support fixed base operation, as well, and I’m not sure I actually care enough to cover edge cases :smiley:

I may have discovered the method to the madness - UBX + RTCM3 is not a dropdown option in uCenter, so you end up with this when disabling NMEA on the port:

image

It’s still a valid config, and UBX + RTCM3 messages are sent at the specified rates, but it makes uCenter appear as if something is amiss.

Enabling all 3 protocols and then turning off NMEA messaging via rate config shows a less ugly result in uCenter:

image