Generic-Chinese-Bluetooth-BMS-communication-protocol

Batteries, Chargers, and Battery Management Systems.
Post Reply
simat
1 mW
1 mW
Posts: 16
Joined: Apr 07, 2013 10:27 am
Location: Harvey, Western Australia

Generic-Chinese-Bluetooth-BMS-communication-protocol

Post by simat » Nov 25, 2017 7:29 pm

There are a number of generic Bluetooth BMS units based around the TI BQ76940 BMS controller with a number of different configurations. I am not sure if they are manufactured by one or a number of different manufacturers. The thing they have in common is that they can be used with an Android app called xiaoxiang and with a Windows program called JBDTools.

This is the command sequence sent by the JBDTools software to obtain the battery information. It is a binary string which in HEX format is. I have added the EOLs for clarity.
DD A5 03 00 FF FD 77
DD A5 04 00 FF FC 77
DD A5 05 00 FF FB 77

First two bytes are the header, bytes 3 and 4 are the command, bytes 5 and 6 are the checksum, the last byte is the EOR.

The battery current along with other information that I haven't decoded is returned by the BMS board by the first command. The second command returns the individual cell voltages and the third returns the BMS name in ASCII format and maybe other information.

The reply packet is a binary string in HEX format is. I have added the EOLs for clarity
DD A5 00 1B 13 78 00 00 00 00 03 E8 00 00 22 C7 00 00 00 00 00 00 19 00 03 0C 02 0B 64 0B 5F FC 83 77
DD A5 00 18 10 39 10 3A 10 38 10 3A 10 3C 10 39 10 37 10 39 10 3B 10 3F 10 36 10 3A FC 74 77
DD A5 00 14 4C 48 2D 53 50 31 35 53 30 30 31 2D 50 31 33 53 2D 33 30 41 FB 39 77

The first two bytes are the header, bytes 3 and 4 are the length of the reply data in bytes, the data follows followed by the checksum, and finally the EOR.

The battery current is in bytes 7 and 8 of the first line

The second line are the individual cell voltages. Each voltage is a 16 bit number so 0x1039 gives a voltage of 4153mV
10 39 10 3A 10 38 10 3A 10 3C 10 39 10 37 10 39 10 3B 10 3F 10 36 10 3A
These converted to decimal in mV are 4153 4155 4152 4155 4157 4153 4151 4153 4156 4159 4150 4155

Third line is the BMS name.

I have written an interface between BMS boards that use this protocol and my BMS software if anyone is interested. A link to my BMS software is in my signature

Simon
Home off-grid solar: 1.2kW solar panels, 360ah Winston LFP battery @24V installed April 2013, homemade MPPT controller
BMS Opensource project here https://github.com/simat/BatteryMonitor/wiki
Electric pushbikes: 2 x mountain bikes with Bafang BBS-02 1kW mid mount drives, 10ah LiCo batteries

Post Reply