/BQ27500EVM_Reverse_Engineering

Reverse Engineering BQ27500EVM Kit and the EV2300

Primary LanguageC++Creative Commons Zero v1.0 UniversalCC0-1.0

BQ27500EVM_Reverse_Engineering

Reverse Engineering BQ27500EVM Kit and the EV2300

Getting Started

In this repository, I will do reverse engineering for the BQ27500EVM and the EV2300 Kit.

alt text

The EV2300 is a USB to I²C/SMBus converter and it has interface program ( Works only on Windows XP ), so I had an old computer laying around, I installed windows XP and had a tests over the EV3200 with this setup like below:

alt text

Here is a screenshot for the software: alt text

The program worked fine and communicated with the BQ27500 kit.

Next, I will connect (Saleae 8 Logic Analyzer) inline with the I²C/SMBus and have a look while the program reading the data from the BQ27500EVM.

alt text

The saved capture for Logic 1.2.18 program : 24 MHz, 480 M Samples [3].logicdata, you could open it and enable the I²C analysis, for more data captures visit this folder (Logic_Analyzer_Data_Capture)

Here is a screenshot for the Logic 1.2.18 program. alt text

From the reverse engineering we get this info:

BQ27500 I²C Address: 0x55
I²C Frequency: 40KHz

Datasheets & User manuals

  • slua448.pdf Quick Start Guide for bq2750x Family Gas Gauge.
  • slus914a.pdf bq27500 System-Side Impedance Track Fuel Gauge Datasheet.
  • sluu159e.pdf EV2300 EVM Interface Board User Manual.
  • sluu287a.pdf bq2750xEVM System Side Single-Cell Impedance Track™ Technology Evaluation Module.
  • sluu298.pdf Quick Start Guide for bq27500/1EVM Kit.

Connecting the BQ27500EVM with the microcontroller

After Reading the Datasheet and verifying it with the captured data in the section above, I have written a code for NodeMCU ( Just for concept verification only ) and this is the final setup: alt text

Connection:

NodeMCU's D1 Pin: SCL
NodeMCU's D2 Pin: SDA
** Connecting the GND together **

The Code:

The Output Data Over The UART:

Device Name: q27500
Pack's Voltage: 4187 mV , 4.19 V
Design Capacity: 2200 mAh
State Of Charge: 100 %
Nominal Available Capacity: 1000 mAh
Nominal Available Capacity: 1000 mAh
Remaining Capacity: 1000 mAh
FullCharge Capacity: 1000 mAh
Average Current: 100 mA
Time To Empty: -1 Minute/(s)
Time To Full: 151 Minute/(s)
Standby Current: -8 mA
Standby Time To Empty: 7500 Minute/(s)
Max Load Current: -1219 mA
Max Load Time To Empty: 49 mA
Available Energy: 3792 mWh
Average Power: 419 mW
Time To Empty At Constant Power: -1 Minute/(s)
Cycle Count: 1 Time/(s)
  • STM32 Driver
  • Computer Software

Project History

  • 24/12/2020 -> Started the project and protocol reverse engineering ( Done ).
  • 25/12/2020 -> Writing NodeMCU's code for ( Concept Verification ) ( Done ).
  • Currently working on designing the embedded system that will communicate with it.

Support me on LinkedIn

Kindly, if my repository helped you. I need your support by endorsing my LinkedIn skills. (Omar Khaled Mekkawy). Thanks