GPS-17285 trouble

I am using a Uno R4 WIFI board from Arduino and a QUIIC connector to
talk to this GPS unit. All example code I’ve tried so far yields the error:

"u-blox GNSS not detected at default I2C address. Please check wiring.
Freezing. "

I’ve seen mentions of needing to use “Wire1.begin()” instead of
“Wire.begin()” to communicate with the board and have tried both. It
appears that “Wire1” is the way to go, yet I still get the above message.

I’ve used an I2C scanner program to see if the GPS can get recognized
and that works, yielding an address of 0x42.

Any suggestions you can provide to get the GPS working with the example
software would be welcomed!

Yes, if using the qwiic connector it utilizes Wire1 https://docs.arduino.cc/tutorials/uno-r4-wifi/cheat-sheet/#qwiic-connector

Do you have any other boards/sensor you can test to isolate the issue?

Finally, you might try cutting the i2c pullup resistor SparkFun GPS NEO-M9N Hookup Guide - SparkFun Learn and see if that helps

I have implemented the Wire1 suggestion and get no change in my results. Regarding the traces to cut … there are three pads in the I2C area. Am I to make two cuts, thus separating all three pads from each other? With the GPS module being the only circuit on the I2C bus, it seems like that is contrary to the suggestion in the link. Is there a difference between a stock Uno R4 WIFI and the Sparkfun Red Board that could be causing this issue?

Thanks!

It’s just the next thing to try if the device is being detected but unresponsive over i2c…sometimes cables/wires/etc already have enough PU resistance and the on-board ones cause issues (but yes, generally you do want to leave one set active per bus…‘normally’)

Yep, cut those 2 small lines


between the three i2c pads

Side note: it is easily reversible if you reconnect the pads with solder

Cut both lines and gave it another try with Wire1.begin and no change. I am using the program called Example6_EnableNMEASentences. Is there another place in the program that requires a change to coincide with the Wire1.begin?

Hi @mpicco ,

Yes, you need to include Wire1 when you begin the GNSS:

if (myGNSS.begin(Wire1) == false) //Connect to the u-blox module using Wire1 port

I just tried Example21_ModuleInfo and it is working well for me:

image

My setup:
Arduino IDE 1.8.19
Arduino UNO R4 Boards 1.0.5
Board: Arduino UNO R4 WiFi
SparkFun u-blox GNSS Arduino Library v2.2.27
NEO-M9N breakout connected via Qwiic
The I2C jumpers are closed on my NEO-M9N breakout

Two code changes are needed:

Wire1.begin();

and

if (myGNSS.begin(Wire1) == false) //Connect to the u-blox module using Wire1 port

I hope this helps,
Paul

Thank you! This got the program working with the Arduino! Can you tell me if this GPS module will provide local time in the ZDA sentence?