Skip to main content
FW version: Stable

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

ByteTypeDescription
0UINT_8Not used by controller
1UINT_8BMS State:
- < 90: Disarm
- 90 (overvoltage): Disable braking
2UINT_8Error word (non-zero triggers disarm)
3UINT_8State of Charge:
- 0-200: Maps to 0-100%
- 255: Invalid (uses controller BEST)
4-5UINT_16Not used by controller
6UINT_8Battery discharge current limit
255 = no limitation
7UINT_8Battery 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
ByteTypeDescription
0-1INT_16Discharge current [A/10]
2-3INT_16Charge current [A/10]
4-5INT_16Min voltage [V/10]
6-7INT_16Max 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
ByteTypeDescription
0-1UINT_16Iref/Irefr limit [A/10]
2-3UINT_16Ipeak limit [A/10]