This section lists and describes the RS232 serial port, and the data in the RS232 dump.
The BMS controller includes an RS232 serial port with these fixed parameters:
- 19200 baud
- 8 data bits
- no parity
- 1 stop bit
- Xon/Xoff handshake
- Pin 2 = TXD: from controller to terminal
- Pin 3 = RXD: from terminal to controller
The RS232 serial port is normally used by a person to monitor and set-up the BMS controller.
However, it can be programmed to continuously dump data (once a second, without the need for any input into the RS232 port), for automatic monitoring and logging purposes.
The data are in hex, 2 characters per data byte, packed with no separator between bytes.
The data are in 5 groups.
- Context
- Auxiliary data
- Cell data - voltages
- Cell data - temperatures
- Cell data - resistances
These groups may be turned on or off, but at least one of them must be on.
- The context may be enabled or disabled.
- The auxiliary data may be enabled or disabled.
- All 3 cell-data groups may be enabled or disabled, all-together.
These separators are used:
- Before each dump (once a second): clear screen and home commands
- After each group: space character
- After each dump: carriage return and line feed
For example, if all groups are dumped, the BMS controller will generate the following data, in this order:
- Clear screen and Home commands: 1B 5B 32 4A 1B 5B 48
- Context data
- Space character: 20
- Auxiliary data
- Space character: 20
- Cell voltages
- Space character: 20
- Cell temperatures
- Space character: 20
- Cell resistances
- Space character: 20
- Carriage return and line feed characters: 20 0D 0A
The above sequence is repeated every 1 s.
Context is a set of 32 bytes (these are the same variables that are logged each time there is an event)
Byte no.
| No of bytes
| Item
|
| 1
| 1
| Fault code: level faults or transition faults (this may be updated by a new fault, but is never cleared)
- Driving off while plugged in
- Interlock is tripped
- Communication fault with a bank or cell
- Charge overcurrent
- Discharge overcurrent
- Over-temperature
- Under voltage
- Over voltage
- No battery voltage
- High voltage B- leak to chassis
- High voltage B+ leak to chassis
- Relay K1 is shorted
- Contactor K2 is shorted
- Contactor K3 is shorted
- Open K1 or K3, or shorted K2
- Open K2
- Excessive precharge time
- EEPROM stack overflow
|
| 2
| 2
| Number of on/off cycles [-]
|
| 3
| 3
| Time since power came on [s]
|
| 7
| 2
| Source current [100 mA], signed, positive when discharging
|
| 9
| 2
| Load current [100 mA], signed, positive when discharging
|
| 11
| 1
| State of certain inputs and outputs. Bit number / function:
| 7
| 6
| 5
| 4
| 3
| 2
| 1
| 0
|
| 1 = Fan is on
| 1 = LLIM is set
| 1 = HLIM is set
| 1 = CAN contactor request
| 1 = hard wire contactor request
| 1 = interlock is tripped
| 1 = power from the load
| 1 = power from the source
|
For example: E2h = 1110 0010 binary = fan is on, LMIN and HLIM are active, and power from the load.
|
| 12
| 1
| Relative Charge Current Limit (CCL): Maximum regen and charging current accepted. FFh = 100%, 00h = 0% [-]
|
| 13
| 1
| Relative Discharge Current Limit (DCL): Maximum discharging current accepted. FFh = 100%, 00h = 0% [-]
|
| 14
| 1
| Relay State machine state (contactors)
- 00 = relays off
- not 00 = relays on
|
| 15
| 1
| State Of Charge [%]
|
| 16
| 2
| Pack total voltage, 0 to 6.55 kV [100 mV]
|
| 18
| 1
| No of a bank missing (high nybble) / No of missing banks (low nybble)
|
| 19
| 1
| No of missing cells
|
| 20
| 1
| No of a missing cell
|
| 21
| 1
| Minimum Cell Voltage [10 mV - 2.0 V] (e.g.: 00h = 2.00 V, 01h = 2.01 V...)
|
| 22
| 1
| Number of the Cell with the lowest voltage [-]
|
| 23
| 1
| Average Cell Voltage [10 mV - 2.0 V] (e.g.: 00h = 2.00 V, 01h = 2.01 V...)
|
| 24
| 1
| Maximum Cell Voltage [10 mV - 2.0 V] (e.g.: 00h = 2.00 V, 01h = 2.01 V...)
|
| 25
| 1
| Number of the Cell with the highest voltage [-]
|
| 26
| 1
| Minimum Cell Board Temperature [°C +80h]. Signed, -127 to + 127 °C +80h (e.g.: 80h = °C, 81h = 1 °C; 7Fh = -1 °C)
|
| 27
| 1
| Number of the Cell Board with the lowest Temperature [-]
|
| 28
| 1
| Average Cell Board Temperature [°C +80h]. Signed, -127 to + 127 °C +80h (e.g.: 80h = °C, 81h = 1 °C; 7Fh = -1 °C)
|
| 29
| 1
| Maximum Cell Board Temperature [°C +80h]. Signed, -127 to + 127 °C +80h (e.g.: 80h = °C, 81h = 1 °C; 7Fh = -1 °C)
|
| 30
| 1
| Number of the Cell Board with the highest Temperature [-]
|
| 31
| 1
| Number of loads that are on
|
| 32
| 1
| Cell voltage above which we turn on its load [10 mV - 2.0 V] (e.g.: 00h = 2.00 V, 01h = 2.01 V...)
|
Auxiliary data is a set of a additional bytes: (Rev 0.92 and less: 21 bytes; Rev 0.93 and after: 23 bytes)
Byte no.
| No of bytes
| Item
|
| 1
| 1
| State
- 0 Fault
- 3 Ready - charge sustain
- 4 Ready - charge deplete
- 9 Plugged - off
- 10 Plugged - charging
- 15 Ready & Plugged in
|
| 2
| 1
| Level fault flags [-]
- 1 = driving off while plugged in
- 1 = interlock is tripped
- 1 = communication fault with a bank or cell
- 1 = charge overcurrent
- 1 = discharge overcurrent
- 1 = over temperature
- 1 = under voltage {Rev 0.88 added}
- 1 = over voltage {Rev 0.88 added}
|
| 3
| 3
| Total energy in of battery, since manufacture. Unsigned, overflows back to 0 [kWH]
|
| 6
| 3
| Total energy out of battery, since manufacture. Unsigned, overflows back to 0 [kWH]
|
| 9
| 2
| DOD - Depth Of Discharge [Ah]
|
| 11
| 2
| Capacity [Ah]
|
| 13
| 1
| SOH - State Of Health [%]
|
| 14
| 2
| Pack Resistance [100 µΩ] (so, 01h = 100 µΩ) {Fixed in rev 1.05}
|
| 16
| 1
| Minimum Cell Resistance [100 µΩ] (so, 01h = 100 µΩ)
|
| 17
| 1
| Number of cell with minimum resistance [-]
|
| 18
| 1
| Average Cell Resistance [100 µΩ]
|
| 19
| 1
| Maximum Cell Resistance [100 µΩ] (so, 01h = 100 µΩ)
|
| 20
| 1
| Number of cell with maximum resistance [-]
|
| 21
| 1
| Number of cells seen [-]
|
| 22
| 2
| Power [100 W], signed
|
Cell data are the raw readings from all 255 cells: voltage, temperature and resistance
The cell voltages are in 10 mV, offset by 2.0 V (so, 00h = 2 V, 10h = 2.16 V...), starting from cell 0 all the way to cell 255.
- 00h Cell 0 voltage
- 01h Cell 1 voltage
- ...
- FFh Cell 255 voltage
The cell temperatures are in °C, offset by 80h (so, 80h = 0 °C, 81h = 1 °C, 7Fh = -1 °C), starting from cell 0 all the way to cell 255.
- 00h Cell 0 temperature
- 01h Cell 1 temperature
- ...
- FFh Cell 255 temperature
The cell resistances are in 100 µΩ (so, 01h = 100 µΩ), starting from cell 0 all the way to cell 255.
- 00h Cell 0 resistance
- 01h Cell 1 resistance
- ...
- FFh Cell 255 resistance
This text file has a screenshot of the dump in a system with 8 cells.