siliXcon BMS Communication Protocol
This document overlaps with the our BMS1 application-level communications protocol and explains how the LYNX handles the incoming messages.
info
- All messages use little-endian format
- Documentation covers LYNX application-specific messages only
- Requires
/bms/bmstype
= 1 for siliXcon BMS support
Message Specifications
BMS Status (0x500)
Timeout: 1000ms
Byte | Type | Description |
---|---|---|
0 | UINT_8 | Not used by controller |
1 | UINT_8 | BMS State: - < 90: Disarm - 90 (overvoltage): Disable braking |
2 | UINT_8 | Error word (non-zero triggers disarm) |
3 | UINT_8 | State of Charge: - 0-200: Maps to 0-100% - 255: Invalid (uses controller BEST) |
4-5 | UINT_16 | Not used by controller |
6 | UINT_8 | Battery discharge current limit 255 = no limitation |
7 | UINT_8 | Battery charge current limit 0-255 |
tip
For BMS simulation:
- Messages 0x506 and 0x507 optional
- Requires non-zero
/driver/limiter/ibpos
and/driver/limiter/ibneg
BMS Limiter Settings (0x506)
- Applied only on first message
- Zero values maintain existing settings
- Not for dynamic current limiting
Byte | Type | Description |
---|---|---|
0-1 | INT_16 | Discharge current [A/10] |
2-3 | INT_16 | Charge current [A/10] |
4-5 | INT_16 | Min voltage [V/10] |
6-7 | INT_16 | Max voltage [V/10] |
BMS Current Settings (0x507)
- Applied only on first message
- Zero values maintain existing settings
- Sets maximum limits only
- No timeout
- Lower actual values take precedence
Byte | Type | Description |
---|---|---|
0-1 | UINT_16 | Iref/Irefr limit [A/10] |
2-3 | UINT_16 | Ipeak limit [A/10] |