Hello, I recently purchased the Sparkfun ZOE-M8Q GPS Breakout board and have connected it to my Arduino UNO R4 WiFi via Qwiic connector and Sparkfun Qwiic pre-fabbed wire. When I use and compile the simple sketch from the website or Example #2 from the GNSS library, I get a message:
"SparkFun u-blox Example
u-blox GNSS not detected at default I2C address. Please check wiring. Freezing."
on the serial monitor. From the documentation, I see that it should be at default address 0x42 and the GPS board should, by default, be set to this address and I2C communications enabled. I may be missing something simple. The RED LED is lit, so I know it’s getting power. Is there additional pull-up resistors I need to disable although I’m not connecting any
other devices to the bus? Is it something with the UNO R4 that I need to do or should look at?
I tried 2 different Qwiic wires and am going to start looking at doing some continuity checks to double check everything.
So, after a little more digging, I found out that the UNO R4 with Qwiic connector has (2) I2C busses. The Qwiic connector is connected to the 2nd bus. So one has to modify the code a bit for the communication to “wire1” in the “Begin” portion of the code for it to access the correct bus.
But please be careful with your voltages. The UNO R4 is a 5V board. Its IO pins are all 5V. SparkFun Qwiic boards are all 3.3V. The voltage difference can cause bus errors. To connect the boards properly, you need to use a level shifter:
The Qwiic connector on the R4 WiFi has the level-shifting built-in. You’re perfectly OK to connect the ZOE to that using a standard Qwiic cable. But if you use jumper wires to connect to the R4 IO pins direct, you need to be careful as those are 5V.