Help With F9P Comm Not Responding

Hi, i have issues with comm ports (UART1 and I2C) of ZED F9P suddenly not working and unfortunately i don’t have an extra module. It was working flawlessly through either I2C or UART1, but suddenly without any changes made, the comms won’t work.

For clarity, at first i was using the gps module using I2C and last time migrated to UART1 both comms working great. After the testing returns good data, i haven’t touch anything and didn’t sure if i have closed the connection yet or not but i think it’s still powered on 24/7. After less than a week, i came back and found out that the comms returns error. I have tried to check it through USB and u-center it doesn’t show any errors even shows it receives some satellite data. Checking further using UART1 and I2C give no difference. Using i2c, i have tried to double check the address on u-center and scanning through the i2c address using esp32 but to no avail.

I am trying to debug the problem and the debug output from Sparkfun GNSS V3 Library is below

UART1 Debug:

createFileBuffer: Warning. fileBufferSize is zero. Data logging is not possibl.
getVal key: 0x10730001


Sending: CLS:CFG ID:0x8B Len: 0x8 Payload: 0 0 0 0 1 0 73 10
sendCommand: Waiting for ACK response
waitForACKResponse: TIMEOUT after 1100 msec.
getVal: sendCommand returned: Timeout
begin: isConnected - second attempt
getVal key: 0x10730001


Sending: CLS:CFG ID:0x8B Len: 0x8 Payload: 0 0 0 0 1 0 73 10
sendCommand: Waiting for ACK response
waitForACKResponse: TIMEOUT after 1100 msec.
getVal: sendCommand returned: Timeout
begin: isConnected - third attempt
getVal key: 0x10730001


Sending: CLS:CFG ID:0x8B Len: 0x8 Payload: 0 0 0 0 1 0 73 10
sendCommand: Waiting for ACK response
waitForACKResponse: TIMEOUT after 1100 msec.
getVal: sendCommand returned: Timeout

I2C Debug:

createFileBuffer: Warning. fileBufferSize is zero. Data logging is not possible.
begin: isConnected - second attempt
begin: isConnected - third attempt

I2C Scan: Just reports no i2c address found

From the debug output, it seems that the comm is dead but i can’t think of the reason why. And why USB connection doesn’t affected?

Hi Sami,

Have you accidentally changed the module’s I2C address? Or disabled the UBX protocol on I2C? Either of those will cause the failure you are seeing.

I suggest resetting the module back to its default settings. Use u-center to connect to the module over USB. Open Messages View and navigate to UBX-CFG-CFG. Select “Revert to default configuration” and click “Send”. Then “Save current configuration” and “Send”.

Then try your I2C code again.

I hope this helps,

Paul

Hi Paul,

I haven’t changed any configuration beside changing UART1 baud rate to 57600, and set up so the output and input in UART1 is using UBX protocol so i can use UART1 instead of I2C

I’ll try to revert to default config using u-center and get back to you soon

Hi Sami,

Resetting the configuration is the first thing to try. After that, it is a question of checking the I2C interface. Please tell us which microcontroller board you are using. Is it 3.3V? Or is it possibly a 5V board like the Arduino Mega? The IO voltage difference will cause problems if you are using a 5V board. Also check the Qwiic cable / jumper wires. It’s rare, but the Qwiic cables do sometimes fail. Try swapping the cable with a known-good one.

I hope this helps,

Paul

The SPI solder bridge would map 4-pin SPI instead of I2C/UART

In SAFEBOOT mode, say firmware corrupt, the default baud rate would be 9600 instead of 38400

Perhaps check in you get periodic output on the UART1.TX pin, should get a burst of NMEA data once a second.