Communication Protocols: Energus Power Solutions LTD
Communication Protocols: Energus Power Solutions LTD
Communication
Protocols
Tiny BMS s516 – 30A / 150A / 750A
Revision B, 2018-12-11
Energus Power Solutions Ltd. Tiny BMS Communication Protocols
Contents
1. Introduction
Tiny BMS device includes a single multi-purpose UART interface. In combination with various converters,
the interface is compatible with USB, bluetooth and CAN interfaces. Various proprietary commands are
available for fast communication, also MODBUS commands 03 and 16 are supported for rapid integration
to existing industrial systems. An internal Tiny BMS device register map is given in Chapter 3. The register
map values can be read and modified using MODBUS and proprietary commands. This chapter in detail
covers all available commands implemented to communicate with Tiny BMS device. Every command
request and response contains 16 bit CRC checksum. How to calculate CRC value refer to Chapter 1.2.
Note: UART configuration: baudrate 115200 bit/s, 8 data bits, 1 stop bit, no parity, no flow control. UART
configuration is not allowed to be changed by the user.
RL – Registers to read
ADDR – First registers block address
DATA – Registers block values
ADDR – First registers block address (valid addresses to write 0x012C to 0x018F)
DATA – Registers block values to write
Byte n*4+4 Byte n*4+5 Byte n*4+6 Byte n*4+7 Byte n*4+8 Byte n*4+9
TSPn:LSB TSPn TSPn:MSB EVENTn CRC:LSB CRC:MSB
[UINT_24] [UINT_8]
Byte n*4+4 Byte n*4+5 Byte n*4+6 Byte n*4+7 Byte n*4+8 Byte n*4+9
TSPn:LSB TSPn TSPn:MSB EVENTn CRC:LSB CRC:MSB
[UINT_24] [UINT_8]
1.1.20. Read Tiny BMS settings values (min, max, default, current)
Request to BMS
Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 Byte 7
0xAA 0x1D OPTION 0x00 RL CRC:LSB CRC:MSB
0x01 – Min. settings
0x02 – Max. settings
0x03 – Default settings
0x04 – Current settings
1.1.23. Read Tiny BMS calculated speed, left distance and estimated time values
Request to BMS
Byte 1 Byte 2 Byte 3 Byte 4
0xAA 0x20 CRC:LSB CRC:MSB
while (length--)
{
tmp = *data++ ^ crcWord;
crcWord >>= 8;
crcWord ^= crcTable[tmp];
}
return crcWord;
}
CRC = 0x6119.
Command request bytes sequence to send to BMS according to 1.1.7 chapter:
0xAA 0x10 0x01 0x3B 0x00 0x02 0x04 0x10 0x68 0x09 0xC4 0x19 0x61.
2. Introduction
Tiny BMS device used along with Energus PS CAN-UART converter module gives an instant CAN bus
connectivity with the user side CAN controller or other industrial equipment. Various proprietary commands
are available for fast CAN bus communication. This chapter in detail covers all available commands
implemented to communicate with Tiny BMS device. An internal Tiny BMS registers map is given in
Chapter 3.
Note: CAN bitrate is 500 kbit/s (not allowed to change by the user). Default node ID after firmware update
is 0x01. When multi-slave CAN bus topology is used, node ID can be assigned with 19 Tiny BMS CAN
command. Automatic node ID assignment is not available.
Note: Tiny BMS CAN-UART converter works and CAN bus communication is available only when BMS
device is in active state (charging, discharging or Ignition enabled).
The number of CAN messages responded from BMS is equal to the count of registers requested to read. First CAN message returns
first register value and each other CAN message returns next registers values respectively.
ADDR - Registers block start addresses. Start address can be in range 0x12C to 0x18F
RL – Registers to write. Max. 100 (0x64) registers
DATA – Registers data to write
The number of CAN messages responded from BMS is equal to the count of events requested. First CAN message returns current
BMS timestamp and each other CAN message returns new event ID and timestamp respectively.
The number of CAN messages responded from BMS is equal to the count of events requested. First CAN message returns current
BMS timestamp and each other CAN message returns event ID and timestamp respectively.
BMS response returned CAN messages are equal to battery cells count. First CAN message returns first cell voltage and each other
CAN message returns next cells voltages respectively.
2.1.15. Read Tiny BMS settings values (min, max, default, current)
Request to BMS
CAN identifier 11 bits 8 data bytes*
10 9 8 7 6 5 4 3 2 1 0 Byte 1 Byte 2 Byte 3 Byte 4 Byte 5* Byte 6* Byte 7* Byte 8*
0 1 0 0 0 Node ID (0x01...0x3F) 0x1D OPTION 0x00 RL 0x00 0x00 0x00 0x00
Default node ID - 0x01 0x01 – Min. settings
0x02 – Max. settings
0x03 – Default settings
0x04 – Current settings
The number of CAN messages responded from BMS is equal to the count of settings registers requested. First CAN message returns
first register and each other CAN message returns next registers respectively.
2.1.17. Read Tiny BMS calculated speed, left distance and estimated time values
Request to BMS
CAN identifier 11 bits 8 data bytes*
10 9 8 7 6 5 4 3 2 1 0 Byte 1 Byte 2* Byte 3* Byte 4* Byte 5* Byte 6* Byte 7* Byte 8*
0 1 0 0 0 Node ID (0x01...0x3F) 0x20 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Default node ID - 0x01
3. Introduction
This chapter in detail covers all an internal Tiny BMS registers map.
4. Introduction
This chapter in detail covers all the Tiny BMS Events messages and its IDs.