Functional Description

CAN Communication

The Helot series communication protocol is based upon a predicate protocol initially developed for Zeva's BMS Modules. Hence, Helot modules are designed to be drop-in replacements.

The module's standard bus speed is 250kbps, frame format is CAN 2.0B using 29-bit ID's.

There are a total of five (5) different frame types:

– One (1) request data frame.

– Four (4) response data frames.

Request Data Frame (master/controller to BMS100 series module)

The master/controller sends the BMS100 series module a 2-byte request containing the desired shunt voltage in 16-bit big endian format.

ID

module_address + 0

BYTE 1

shunt voltage in millivolts, high byte

BYTE 2

shunt voltage in millivolts, low byte

The module will inhibit shunting if the internal 1s timer elapses between CAN messages, or if the master/controller sends a requested shunt voltage of 0.

1st Response Data Frame 1 (BMS100 series module to master/controller)

After receiving a request data frame from the master/controller, the BMS100 series module will send four response frames in succession.

The first being 8 bytes in size, containing the sampled 16-bit voltages 1 to 4, in millivolts -- big endian format.

ID

module_address + 1

BYTE 1

cell 1 voltage in millivolts, high byte

BYTE 2

cell 1 voltage in millivolts, low byte

BYTE 3

cell 2 voltage in millivolts, high byte

BYTE 4

cell 2 voltage in millivolts, low byte

BYTE 5

cell 3 voltage in millivolts, high byte

BYTE 6

cell 3 voltage in millivolts, low byte

BYTE 7

cell 4 voltage in millivolts, high byte

BYTE 8

cell 4 voltage in millivolts, low byte

2nd Response Data Frame (BMS100 series module to master/controller)

The second being 8 bytes in size, containing the sampled 16-bit voltages 5 to 8, in millivolts -- big endian format.

ID

module_address + 2

BYTE 1

cell 5 voltage in millivolts, high byte

BYTE 2

cell 5 voltage in millivolts, low byte

BYTE 3

cell 6 voltage in millivolts, high byte

BYTE 4

cell 6 voltage in millivolts, low byte

BYTE 5

cell 7 voltage in millivolts, high byte

BYTE 6

cell 7 voltage in millivolts, low byte

BYTE 7

cell 8 voltage in millivolts, high byte

BYTE 8

cell 8 voltage in millivolts, low byte

3rd Response Data Frame (BMS100 series module to master/controller)

The third being 8 bytes in size, containing the sampled 16-bit voltages 9 to 12, in millivolts -- big endian format.

ID

module_address + 3

BYTE 1

cell 9 voltage in millivolts, high byte

BYTE 2

cell 9 voltage in millivolts, low byte

BYTE 3

cell 10 voltage in millivolts, high byte

BYTE 4

cell 10 voltage in millivolts, low byte

BYTE 5

cell 11 voltage in millivolts, high byte

BYTE 6

cell 11 voltage in millivolts, low byte

BYTE 7

cell 12 voltage in millivolts, high byte

BYTE 8

cell 12 voltage in millivolts, low byte

4th Response Data Frame (BMS100 series module to master/controller)

The fourth being 2 bytes in size, containing the sampled 8-bit temperatures, with a +40C offset.

ID

module_address + 4

BYTE 1

temperature 1 in degrees celcius (+40)

BYTE 2

temperature 2 in degrees celcius (+40)

The master/controller logic must subtract 40 from each temperature for actual values.

Variants

The same request/response packet structure is used across all variants.

For variants <12S, the unused bytes are zeroed.

PACKET/BYTE
12S
10S
8S
6S

module_address + 1 / 1

cell 1 H

cell 1 H

cell 1 H

cell 1 H

module_address + 1 / 2

cell 1 L

cell 1 L

cell 1 L

cell 1 L

module_address + 1 / 3

cell 2 H

cell 2 H

cell 2 H

cell 2 H

module_address + 1 / 4

cell 2 L

cell 2 L

cell 2 L

cell 2 L

module_address + 1 / 5

cell 3 H

cell 3 H

cell 3 H

cell 3 H

module_address + 1 / 6

cell 3 L

cell 3 L

cell 3 L

cell 3 L

module_address + 1 / 7

cell 4 H

cell 4 H

cell 4 H

cell 4 H

module_address + 1 / 8

cell 4 L

cell 4 L

cell 4 L

cell 4 L

module_address + 2 / 1

cell 5 H

cell 5 H

cell 5 H

cell 5 H

module_address + 2 / 2

cell 5 L

cell 5 L

cell 5 L

cell 5 L

module_address + 2 / 3

cell 6 H

cell 6 H

cell 6 H

cell 6 H

module_address + 2 / 4

cell 6 L

cell 6 L

cell 6 L

cell 6 L

module_address + 2 / 5

cell 7 H

cell 7 H

cell 7 H

0

module_address + 2 / 6

cell 7 L

cell 7 L

cell 7 L

0

module_address + 2 / 7

cell 8 H

cell 8 H

cell 8 H

0

module_address + 2 / 8

cell 8 L

cell 8 L

cell 8 L

0

module_address + 3 / 1

cell 9 H

cell 9 H

0

0

module_address + 3 / 2

cell 9 L

cell 9 L

0

0

module_address + 3 / 3

cell 10 H

cell 10 H

0

0

module_address + 3 / 4

cell 10 L

cell 10 L

0

0

module_address + 3 / 5

cell 11 H

0

0

0

module_address + 3 / 6

cell 11 L

0

0

0

module_address + 3 / 7

cell 12 H

0

0

0

module_address + 3 / 8

cell 12 L

0

0

0

Cell Balancing

The module will enable shunts across cells that exceed the requested shunt voltage received from the master/controller.

This will continue until the internal 1s timer elapses between CAN messages or until the cell voltage is below the requested shunt voltage.

A master/controller request rate of 2 Hz is recommended for reliable continuous balancing.

Last updated