Because of the holidays, TI E2E™ design support forum responses will be delayed from Dec. 25 through Jan. 2. Thank you for your patience.

This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

BQ34Z100EVM to Arduino Connection

Other Parts Discussed in Thread: BQ34Z100EVM, BQEVSW, BQSTUDIO, BQ34Z100

I am currently trying to establish some form of i2c communication between an Arduino Mega and the BQ34Z100EVM module. I am interested in transmitting the state of charge, battery pack voltage and remaining capacity of the battery using the EVM module to the arduino. However, since my project does not involve the use of the EVM software due to the lack of requirement of any further analysis in  the computer, I am not using the EV2300. Instead, I have directly connected the SDA and SCL lines between the arduino and the EVM, pulling up each lines to 5V through a 10k resistor. However, I am unable to establish any form of communication between the arduino and the gas gauge EVM. Is there something that I am missing? Does the EVM module need to calibrated even if we are not using the software in any way? 

Furthermore, I am not sure if the jumper cable connections such as J5 and J2 are required while trying to establish simply i2c communication with an arduino. I am quite clueless about the problem I am facing and would greatly appreciate any guidance as soon as possible. 

  • The J2 ad J5 jumpers are required to apply power to the device. You can set them in accordance the battery stack voltage that you are applying. The other jumpers are not required for basic communication. You will need to use the bqEVSW or bqStudio program and the EV2300 during development, because you will not be able to program the Chemistry data to the device without them. You can switch over to your own setup after you have completed development.
  • So does that mean we first need to configure the EVM module by connecting it to the computer using the EV2300 to generate the chemistry data first? Just so that I fully understand the procedure, I will have to first configure the EVM module using the bqStudio program in my personal computer, before I can use the arduino to enable i2c communication to obtain the values from the gas gauge. 

    I was under the assumption that the EVM module comes configured already and we can obtain the SOC and other details about the battery by reading from the registers using the SDA and SCL lines. 

  • The gauge contains default parameters, but some of them will need to be updated for your cells and application. Some of them can be updated with the Arduino, but some such as the chemistry data cannot. You will find it much easier to develop the pack by using our tools to configure the pack, calibrate the pack, run the optimization cycle and create the golden file. You can then use our tools to monitor parameters.
  • My project mainly involves the use of a gas gauge in order to send the state of charge, battery voltage and the remaining battery capacity to the arduino, which is connected to a cloud based UI, allowing the user to check what the state of his battery is. Using these details, we will be able to facilitate a trade of energy between different users.
    Do you think these 3 details can be collected directly by the arduino without the use of the program? I am currently using the following code in order to obtain state of charge, however due to the non responsiveness of the EVM module, my Wire.read() value is staying constant at 65535 which means no response.
    void readSOC()
    {
    Wire.beginTransmission(BQ34Z100);
    Wire.write(0x02);
    Wire.endTransmission();

    Wire.requestFrom(BQ34Z100, 2);

    unsigned int low = Wire.read();
    Serial.println(low);
    Wire.beginTransmission(BQ34Z100);
    Wire.write(0x03);
    Wire.endTransmission();

    Wire.requestFrom(BQ34Z100, 1);

    unsigned int high = Wire.read();
    Serial.println(high);
    unsigned int high1 = high << 8;

    soc = high1 + low;
    }

    Also, for now I am simply connecting my battery pack to the BATT+ and BATT- ports in the module, without the Protection and Load & Charger. Can the module function without adding the protection system between BATT+ and PACK-? 

  • You do not need the charger or load connected from BAT+ to PACK- to communicate with the device. You do need the jumpers to route power to the device. Check the REG25 output to make sure that it is at 2.5V, otherwise the device will not be powered up. You can use your controller to monitor the device over I2C, but you have to setup the device and run the optimization cycle before it will gauge properly. You will need to use the EV2300 and our tools to complete this process.