I am using a BQ27441EVM-G1B. It is a TI battery fuel gauge board, that is used to measure the battery voltage, current and charge left etc. Datasheet - http://www.ti.com/lit/ds/symlink/bq27441-g1.pdf on page no. 13, gives details about the I2C communication interface. Image attached. enter image description here

It tells us that the address of the device is 0xAA for reading and 0xAB for writing, which seems outside the range of the i2cdetect table. When I try to run

sudo i2cdetect -y 1

, I get a blank table. I am sure the I2C bus is working as I had connected and used another device with address 0x6B correctly. I am also sure that the gauge is fine, since it works with an interface device - EV2400 and their proprietary software bqStudio.

I have read other posts in the forum about higher range addresses, but no solution seemed to work. One of proper connections is important, and so my connections are as under:

Gauge ----> RPi B+

VSS ----- Pin 4 (5V)

SDA ------ Pin 3 (SDA1)

SCL ------ Pin 5 (SCL1)

VOUT ----- Pin 6 (GND)

I have also tried switching VSS from 5V to GND, but that didnt work as well. I wanted the device to be "detected" before I start writing any C code. Any ideas on debugging or some sample C code to try ?


With some help from peers, I was able to get i2cdetect to read the values, the correct connections are:

VSS ----- > GND , SDA ------ > SDA1, SCL ------> SCL1 , and that's it.

Now running sudo i2cdetect -y 1 gives the address 0x55, which is the 7-bit address for the gauge.

Some code sample would be nice though. :)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.