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/ibposand/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] |