NEO-M9N Longitude value is about 2% of the time missing a bit

Hi, I’m having a strange problem using the latest U-blox GNSS Arduino library with the NEO-MN9 and the Artemis using the QWIIC interface. About 5% of the samples the Longitude value has the 23rd bit toggled off when it should be on.

So for example take this longitude reading: -1171631084 (straight from the ->getLongitude() library function) and converted to binary it is this:

-0b1000101110101011010101111101100

^

Very often the 23rd bit from the right (see above) is toggled off, which gives a Longitude value very far away. None of the other GPS values seem to ever exhibit an error like this. It is always the same error too. I can leave the unit running for hours and that will be the only defect in the data. Since it is so repeatable I can also correct it afterwards, but I’m curious if anyone has seen this or knows how to fix it?

Library: SparkFun_u-blox_GNSS version 2.0.15

Looks like it’s the same problem/same solution as this here: https://github.com/sparkfun/SparkFun_Ub … /issues/40

Hi @ricozinn,

How have you got the Qwiic pull-ups configured? For best results you need to disable the pull-up resistors on both the NEO and Artemis boards by opening the split-pad jumper links:

https://github.com/sparkfun/SparkFun_u- … 2c-support

On the Artemis, you can also disable the internal pull-ups through software. See here for an example (on the MicroMod Artemis Processor Board):

https://github.com/sparkfun/SparkFun_u- … #L125-L139

If you tell me which Artemis board you are using, I can tell you how to adapt the code for your board.

Best wishes,

Paul

Thank you. Yes, I was able to do both of those and confirmed it has eliminated the problem so far completely. I have another issue with the M9N that I have posted as well though. I am trying to find a way to use the UBX protocol and never get stale lat/lng coordinates when my navigation rate is set to 20hz. More on that in this post here :wink: viewtopic.php?f=116&t=56594

Thanks again for your help!