CAN msg
info
All here listed messages are little endian.
0x500 Status Message
Send with period 100ms.
| Byte | type | Description |
|---|---|---|
| 0 | UINT8 | 203 - Application id |
| 1 | UINT8 | BMS state - /driver/state-machine/state |
| 2 | UINT8 | BMS HW Error /driver/hw_error |
| 3 | UINT8 | SOC: 0-200 (represent 0-100%) 255 = invalid SOC (NaN) |
| 4-5 | UINT16 | Limiter status word |
| 6 | UINT8 | Limiter value positive. 0 = Zero current 255 = Full current avaliable |
| 7 | UINT8 | Limiter value negative. 0 = Zero current 255 = Full current avaliable |
0x504 Energy
Integer values multiplied by 10 - i.e. one decimal precision.
Send with period 200ms.
These values are from BEST module.
| Byte | type | Description |
|---|---|---|
| 0-1 | INT16 | Cmax Maximum battery capacity [mAh * 10] |
| 2-3 | INT16 | Cact Actual battery capacity [mAh * 10] |
| 4-5 | INT16 | Emax Maximum battery energy [Wh *10] |
| 6-7 | INT16 | Eact Actual battery energy [Wh * 10] |
0x506 Recommended limiter settings
Integer values multiplied by 10 - i.e. one decimal precision.
Send with period 500ms.
| Byte | type | Description |
|---|---|---|
| 0-1 | INT16 | Recommended Ibpos value |
| 2-3 | INT16 | Recommended Ibneg value |
| 4-5 | INT16 | Recommended Ubmin value |
| 6-7 | INT16 | Recommended Ubmax value |
0x508 Curents limits
Integer values multiplied by 10 - i.e. one decimal precision.
Send with period 500ms.
| Byte | type | Description |
|---|---|---|
| 0-1 | INT16 | Limit controller ipeak value |
| 2-3 | INT16 | Limit controller iref value |
0x50A Atmo data
Send with period 1s.
| Byte | type | Description |
|---|---|---|
| 0-1 | INT16 | Reserved |
| 2 | INT8 | Temperature [°C] (Dedicated sensor SHT4x). This is not used as BMS temperature |
| 2 | UINT8 | Humidity [%] |
| 4-7 | INT32 | Pressure |
0x510 Status II
Integer values multiplied by 10 - i.e. one decimal precision.
Send with period 200ms.
| Byte | type | Description |
|---|---|---|
| 0-1 | INT16 | Battery voltage [V *100] |
| 2-3 | INT16 | Battery current trought DSC port [A * 50] |
| 4-5 | INT16 | Battery current trought CHG port [A * 50] |
| 6-7 | INT16 | Battery temperature (maximum of all sensors) [°C *10] |
0x516-0x51B Cell voltages
Send with period 200ms.
| Byte | type | Description |
|---|---|---|
| 0-1 | UINT16 | Cell 1 voltage and status |
| 2-3 | UINT16 | Cell 2 voltage and status |
| 4-5 | UINT16 | Cell 3 voltage and status |
| 6-7 | UINT16 | Cell 4 voltage and status |
| Message ID | Cell number |
|---|---|
| 0x516 | 1-4 |
| 0x517 | 5-8 |
| 0x518 | 9-12 |
| 0x519 | 13-16 |
| 0x51A | 17-20 |
Cell status
In the UINT16 value the 13 LSB bits are the voltage and the 3 MSB bits are the status.
| Bit | Description |
|---|---|
| 0-12 | Voltage [mV] |
| 13 | Cell with minimum voltage |
| 14 | Cell with maximum voltage |
| 15 | Cell is being balanced |
info
If the cell is not present, send value 0xFFFF.