Skip to main content
Firmware Stable

Periodic Messages

info

All messages are little endian.

0x500 Status Message

Sent every 100 ms. The CAN ID is 0x500 + (address - 4), so the master BMS (address 4) sends at 0x500.

ByteTypeDescription
0UINT8Application ID (203)
1UINT8BMS state — /driver/state
2UINT8BMS error — /driver/hw_error
3UINT8SOC: 0–200 (represents 0–100%). 255 = invalid SOC (NaN)
4-5UINT16Limiter status word
6UINT8Limiter value positive. 0 = zero current, 255 = full current available
7UINT8Limiter value negative. 0 = zero current, 255 = full current available
note

All subsequent messages below are sent only by the master BMS (address 4).

0x504 Energy

Sent every 200 ms. Integer values multiplied by 10 (one decimal precision). Values are from the BEST module.

ByteTypeDescription
0-1INT16Cmax Maximum battery capacity [mAh x 10]
2-3INT16Cact Actual battery capacity [mAh x 10]
4-5INT16Emax Maximum battery energy [Wh x 10]
6-7INT16Eact Actual battery energy [Wh x 10]

Sent every 500 ms. Integer values multiplied by 10 (one decimal precision). See Controller Limits.

ByteTypeDescription
0-1INT16Recommended Ibpos value
2-3INT16Recommended Ibneg value
4-5INT16Recommended Ubmin value
6-7INT16Recommended Ubmax value

0x507 Current Limits

Sent every 500 ms. Integer values multiplied by 10 (one decimal precision). See Controller Limits.

ByteTypeDescription
0-1UINT16iref_limit x 10
2-3UINT16ipeak_limit x 10

0x508 Charger Limits

Sent every 500 ms. Integer values multiplied by 10 (one decimal precision). See Charger Communication.

ByteTypeDescription
0-1UINT16/charger/max_current x 10
2-3UINT16/charger/end_voltage x 10
warning

This message sends static values. The charger must also monitor the limiter value (negative) field in the 0x500 Status Message to dynamically limit its charge current.

0x50A Atmospheric Data

Sent every 1 s. Data from the optional SHT4x environmental sensor and pressure sensor.

ByteTypeDescription
0-1INT16Reserved
2INT8Temperature [C] (dedicated SHT4x sensor, not used as BMS battery temperature)
3UINT8Humidity [%]
4-7INT32Pressure [Pa]

0x510 Status II

Sent every 200 ms. Integer values with scaling as indicated.

ByteTypeDescription
0-1INT16Battery voltage [V x 100]
2-3INT16Battery current through DSC port [A x 50]
4-5INT16Battery current through CHG port [A x 50]
6-7INT16Battery temperature (maximum of all sensors) [C x 10]

0x516–0x51B Cell Voltages

Sent every 200 ms. Each message contains 4 cell voltage values. Messages are sent sequentially up to the configured cell count.

ByteTypeDescription
0-1UINT16Cell 1 voltage and status
2-3UINT16Cell 2 voltage and status
4-5UINT16Cell 3 voltage and status
6-7UINT16Cell 4 voltage and status
Message IDCells
0x5161–4
0x5175–8
0x5189–12
0x51913–16
0x51A17–20

Cell Voltage Encoding

Each UINT16 cell value encodes both the voltage and status flags:

BitsDescription
0–12Voltage [mV]
13Cell with minimum voltage
14Cell with maximum voltage
15Cell is being balanced
info

If a cell is not present, the value 0xFFFF is sent.