(LIB) BMS 485 Communication Protocol 20201208
(LIB) BMS 485 Communication Protocol 20201208
Definition
PIN 4 RS485B
PIN 5 RS485A
Definition
PIN 3 RS485B
PIN 5 RS485A
Error code
Index Error code Note
Slave ID should be within 1~16. Slave ID error if
1 0x01
out of range
2 0x02 Command type error if command didn’t exist,
3 0x03 CRC error
4. Command lists
4.1 Version information
Data Address Byte Size Parameter Parameter Unit
0x0001 2 Protocol type
0x0002 2 Protocol version
0x0003 4 BMS firmware version
0x0005 4 BMS hardware version
4.2 BMS general status parameters inquiry
Data Address Byte Size Parameter Parameter Unit
0x0010 2 Number of cell: L pcs
0x0N11 2 Cell N*20+1 voltage
0x0N12 2 Cell N*20+2 voltage
0x0N13 2 Cell N*20+3 voltage
0x0N14 2 Cell N*20+4 voltage
0x0N15 2 Cell N*20+5 voltage
0x0N16 2 Cell N*20+6 voltage
0x0N17 2 Cell N*20+7 voltage
0x0N18 2 Cell N*20+8 voltage
0x0N19 2 Cell N*20+9 voltage
0x0N1A 2 Cell N*20+10 voltage
0.1V
0x0N1B 2 Cell N*20+11 voltage
0x0N1C 2 Cell N*20+12 voltage
0x0N1D 2 Cell N*20+13 voltage
0x0N1E 2 Cell N*20+14 voltage
0x0N1F 2 Cell N*20+15 voltage
0x0N20 2 Cell N*20+16 voltage
0x0N21 2 Cell N*20+17 voltage
0x0N22 2 Cell N*20+18 voltage
0x0N23 2 Cell N*20+19 voltage
0x0N24 2 *Cell N*20+20 voltage
Number of temperature sensor:
0x0025 2 pcs
M
0x0N26 2 Temperature Sensor N*10+1
0x0N27 2 Temperature Sensor N*10+2
0x0N28 2 Temperature Sensor N*10+3
0x0N29 2 Temperature Sensor N*10+4
0x0N2A 2 Temperature Sensor N*10+5 0.1K
0x0N2B 2 Temperature Sensor N*10+6 (Kelvin temperature)
0x0N2C 2 Temperature Sensor N*10+7
0x0N2D 2 Temperature Sensor N*10+8
0x0N2E 2 Temperature Sensor N*10+9
0x0N2F 2 Temperature Sensor N*10+10
0x0030 2 Module charge current 0.1A
0x0031 2 Module discharge current 0.1A
0x0032 2 Module voltage 0.1V
0x0033 2 SOC %
0x0034 4 Module total capacity mAH
*If the parameter doesn’t exist, return 0x0000
4.3 BMS warning information inquiry
Data Address Byte Size Parameter Note
0x0N40 2 Number of cell: L
0x0N41 2 Cell N*20+1/ N*20+2 voltage state
0x0N42 2 Cell N*20+3/ N*20+4 voltage state
0x0N43 2 Cell N*20+5/ N*20+6 voltage state
0x0N44 2 Cell N*20+7/ N*20+8 voltage state 00H: normal
0x0N45 2 Cell N*20+9/ N*20+10 voltage state 01H: below lower limit
0x0N46 2 Cell N*20+11/ N*20+12 voltage state 02H: above higher limit
0x0N47 2 Cell N*20+13/ N*20+14 voltage state F0H: other error
0x0N48 2 Cell N*20+15/ N*20+16 voltage state
0x0N49 2 Cell N*20+17/ N*20+18 voltage state
0x0N4A 2 Cell N*20+19/ N*20+20 voltage state
Number of temperature sensor:
0x0050 2
M
0x0N51 2 BMS Temperature N*10+1/ N*10+2 state
00H: normal
0x0N52 2 BMS Temperature N*10+3/ N*10+4 state
01H: below lower limit
0x0N53 2 BMS Temperature N*10+5/ N*10+6 state
02H: above higher limit
0x0N54 2 BMS Temperature N*10+7/ N*10+8 state
F0H: other error
0x0N55 2 BMS Temperature N*10+9/ N*10+10 state
0x0060 2 Module charge voltage state
0x0061 2 Module discharge voltage state
0x0062 2 Cell charge voltage state
0x0063 2 Cell discharge voltage state
0x0064 2 Module charge current state 00H: normal
0x0065 2 Module discharge current state 01H: below lower limit
Module charge temperature 02H: above higher limit
0x0066 2
state F0H: other error
Module discharge temperature
0x0067 2
state
0x0068 2 Cell charge temperature state
0x0069 2 Cell discharge temperature state
*If the parameter didn’t exist, return 0x0000
*Bit 5: Set when SoC is very low, like 5~9%, device need charge immediately until this flag
disappear.
*Bit 4: Set when SoC is low, like 10~14%, it will be better that device charge immediately
until this flag disappear.
*Bit 3: Set when BMS need device fully charged.