I2C on the ATGM336H-5N31 GPS module

Hi, I have designed a custom board that integrates the ATGM336H-5N31 GNSS module.
I am trying to talk to the chip with I2C, but my microcontroller can't find the chip (it can find my I2C accelerometer). I was wondering if someone maybe has some experience with the I2C on this chip, because I only see everyone talking to it with UART. Or if someone maybe knows something I can try.

If someone can help me with this, that would be great!

Some remarks:
The LED I tied to the 1pps pin is blinking (the GPS & module work).
The main microcontroller is an ESP32 S3
The reason that I thought it had I2C was because it has SCL and SDA pins, but I can't find any info on this in the datasheet.
I have tied the "ON/OFF" pin to ground because I think the chip is active low, but the datasheet was (I think) translated from Chinese, so I don't know if this is actually correct. (I also tried to connect it to 3V3, but that didn't change anything, I think)

If any more info is needed, please let me know!

Datasheet of the chip:

Schematics:


The SCL and SDA lines are confirmed connected to the ESP's SCL and SDA lines

Full schem:
Schematic_2025-01-09

If You post the schematics of Your build it would surely help a lot.

What is out there is that this module can do UART/I2C/SPI. However no mention about I2C address! Uart will definitely work, but if you wanna try I2C anyway, take a look at this:

https://playground.arduino.cc/Main/I2cScanner/

I have added them :+1:

I have uploaded an I2C scanner to my board, and it unfortunately can't find the chip, it can find my IMU connected to the same lines though.

And so you did, partially. We need to see everything of the SDA SDL lines.

My schematic is quite big, but I will post everything then :slight_smile:

Thanks!
Sadly I don't manage to magnify it to a readable format. Hopefully other helpers will benefit from it.

It's in .svg so no wonder. But Gimp could open it here, and the pullups are a bit restrictive, 10k. Experiment with something around 5k.

Also what speed do you use?

If you want to still help, you can right-click the image and open in new tab to enlarge it :slight_smile:

I have not specified a speed in wire.h, do you think this matters for discovery of devices? If so, I will try with 5k pull-ups. (I can only check this in a few days probably though).
And do you think that the connection to ground from the ON/OFF pin is correct? Or do you think it has to be tied to 3v3?

Open in a new windows downloads it. I guess my browser no habla .svg

I'd guess the speed defaults to 400 kHz, but don't take my word for it. But when i2c messes up, you wanna use lower speed during trouble-shooting.

Is ON/OFF active when low, then it should be correct.

Edit: Datasheet should just as you mention, read

ON

if active low. But I can't understand the datasheet otherwise than you do.

The datasheet is very confusing to me, so I don't know for sure that it is active low, but I think so :stuck_out_tongue:
I will also try a lower speed, thanks

Ublox GPSs can use I2C connections.

The address is 0x42.

I have tied the ON/OFF line to GND and 3v3, while holding 2 10k resistors against the existing 10k resistors (making them 5k), but unfortunately nothing changed...
It did still find my IMU though, so I did not break anything in the process :stuck_out_tongue:

Shooting in a random direction in the woods rarely hit any prey, and that's what you're dealing with here. Since you haven't establish if the device really is on, how about hooking it up over serial instead and see if you get anything there.

I will try that.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.