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!
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?
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’)
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?
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:
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