Parameters of the BMS
This page shows the parameters of the BMS.
This page will describe the variables of the BMS. There are 6 kind of parameters
- The common battery variables 
- The calculated battery variables 
- The additional battery variables 
- The configuration variables 
- The CAN variables 
- The hardware parameters 
 The BMS parameter lists
The common battery variables list
Table 1. Common battery variables list
Parameter
Unit
Datatype
Description
Default
RO/RW
No
v-out
V
float
The voltage of the BMS output
0
RO
0
v-batt
V
float
The voltage of the battery pack
0
RO
1
n-cells
-
uint8_t
Number of cells used in the BMS board
3
RW
2
v-cell1
V
float
The voltage of cell 1
0
RO
3
v-cell2
V
float
The voltage of cell 2
0
RO
4
v-cell3
V
float
The voltage of cell 3
0
RO
5
v-cell4
V
float
The voltage of cell 4
0
RO
6
v-cell5
V
float
The voltage of cell 5
0
RO
7
v-cell6
V
float
The voltage of cell 6
0
RO
8
i-batt
A
float
The last recorded current of the battery
0
RO
9
i-batt-avg
A
float
The average current since the last
measurement (period t-meas (default 1s))
0
RO
10
i-batt-10s-avg
A
float
The 10s rolling average current, updated
each t-meas, default 1000 (ms)
0
RO
11
sensor-enable
-
bool
This variable is used to enable or disable
the battery temperature sensor, 0 is
disabled, 1 is enabled
0
RW
12
c-batt
C
float
The temperature of the external battery
temperature sensor
0
RO
13
c-afe
C
float
The temperature of the analog front end
0
RO
14
c-t
C
float
The temperature of the transistor (switch)
0
RO
15
c-r
C
float
The temperature of the sense resistor
0
RO
16
The calculated battery variables list
Table 2. Calculated battery variables list
Parameter
Unit
Datatype
Description
Default
RO/RW
No
p-avg
W
float
Average power consumption over the
last 10 seconds.
0
RO
17
e-used
Wh
float
Power consumption since device boot
0
RO
18
t-full
h
float
Charging is expected to complete in this
time; zero if not charging.
0
RO
19
a-rem
Ah
float
Remaining capacity in the battery
0
RW
20
a-full
Ah
float
Full charge capacity, predicted battery
capacity when it is fully charged.
Decreases with aging.
4.6
RW
21
a-factory
Ah
float
Battery capacity stated by the factory
4.6
RW
22
s-charge
%
uint8_t
Percentage of the full charge 0 - 100%.
0
RO
23
s-health
%
uint8_t
Health of the battery in percentage, use
STATE_OF_HEALTH_UNKNOWN =
127 if cannot be estimated.
127
RO
24
s-out
-
bool
This is true if the output power is enabled.
0
RO
25
s-in-flight
-
bool
This is true if the system is in flight (with
flight-mode-enable and i-flight-mode)
0
RO
26
batt-id
-
uint8_t
Identifies the battery within this vehicle,
0 - primary battery.
0
RW
27
The additional battery variables list
Table 3. Additional battery variables list
Parameter
Unit
Datatype
Description
Default
RO/RW
No
v-cell-ov
V
float
Battery maximum allowed voltage for one cell. exceeding this voltage, the BMS will go to fault mode
4.2
RW
28
v-cell-uv
V
float
Battery minimum allowed voltage for one cell.
Going below this voltage, the BMS will go to
fault mode followed by deepsleep after
t-fault-timeout
3
RW
29
v-cell-nominal
V
float
Battery nominal voltage for one cell. will be used for energy calculation.
3.7
RW
30
v-storage
V
float
The voltage what is specified as storage voltage for a cell
3.8
RW
31
v-cell-margin
mV
uint8_t
Cell voltage charge margin to decide or not to go through another topping charge cycle
50
RW
32
v-recharge-margin
mV
Uint16_t
Cell voltage charge complete margin to decide or not to do a battery re-charge, to keep the cell voltages at max this much difference with the cell-ov
200
RW
33
i-peak-max
A
float
Maximum peak current threshold to open the switch during normal operation, can't be overruled
200
RW
34
i-out-max
A
float
Maximum current threshold to open the switch during normal operation, if not overruled
60
RW
35
i-out-nominal
A
float
Nominal discharge current (informative only)
60
RW
36
i-flight-mode
A
uint8_t
Current threshold to not disable the power in flight mode
5
RW
37
i-sleep-oc
mA
uint8_t
Overcurrent threshold detection in sleep mode that will wake up the BMS and also the threshold to detect the battery is not in use
30
RW
38
i-system
mA
uint8_t
Current of the BMS board itself, this is
measured (as well) during charging, so
this needs to be subtracted
40
RW
39
i-charge-max
A
float
Maximum current threshold to open the
switch during charging
4.6
RW
40
i-charge-nominal
A
float
Nominal charge current (informative
only)
4.6
RW
41
i-charge-full
mA
uint16_t
Current threshold to detect end of charge
sequence
50
RW
42
c-cell-ot
C
float
Over temperature threshold for the cells.
Going over this threshold and the BMS
will go to FAULT mode
45
RW
43
c-cell-ut
C
float
Under temperature threshold for the cells.
Going under this threshold and the BMS will
go to FAULT mode
-20
RW
44
c-pcb-ot
C
float
PCB Ambient temperature over temperature
threshold
45
RW
45
c-pcb-ut
C
float
PCB Ambient temperature under Temperature
threshold
-20
RW
46
c-cell-ot-charge
C
float
Over temperature threshold for the cells
During charging. Going over this threshold and
the BMS will go to FAULT mode.
40
RW
47
c-cell-ut-charge
C
float
Under temperature threshold for the cells
during charging. Going under this
threshold during charging and the BMS
will go to FAULT mode
0
RW
48
n-charges
-
uint16_t
The number of charges done
0
RW
49
n-charges-full
-
uint16_t
The number of complete charges
0
RW
50
ocv-slope
mV/A.min
float
The slope of the OCV curve. This will
be used to calculate the balance time.
5.3
RW
51
battery-type
-
uint8_t
The type of battery attached to it.
0 = LiPo, 1 = LiFePO4, 2 = LiFeYPO4,
3 = NMC (LiPo type, LiNiMnCoO2),
4 = Na-ion (Sodium-ion, SIB). Could be
extended. Will change OV, UV, v-storage,
OCV/SoC table if changed runtime.
3
RW
52
 The configuration variables list
Table 4. Configuration variables list
Parameter
Unit
Datatype
Description
Default
RO/RW
No
t-meas
ms
uint16_t
Cycle of the battery to perform a complete battery measurement and SOC estimation can only be 10000 or a whole division of 10000 (For example: 5000, 1000, 500)
1000
RW
53
t-ftti
ms
uint16_t
Cycle of the battery to perform diagnostics (Fault Tolerant Time Interval)
1000
RW
54
t-bms-timeout
s
uint16_t
Timeout for the BMS to go to SLEEP mode when the battery is not used.
600
RW
55
t-fault-timeout
s
uint16_t
After this timeout, with an undervoltage fault the battery will go to DEEPSLEEP mode to preserve power. 0 sec is disabled.
60
RW
56
t-bcc-sleep-cyclic
s
uint8_t
Wake up cyclic timing of the AFE (after front end) during sleep mode
1
RW
57
t-sleep-timeout
h
uint8_t
When the BMS is in sleep mode for this period it will go to the self-discharge mode, 0 if disabled.
24
RW
58
t-ocv-cyclic0
s
int32_t
OCV measurement cyclic timer start (timer is increase by 50% at each cycle)
300
RW
59
t-ocv-cyclic1
s
int32_t
OCV measurement cyclic timer final value (limit)
86400
RW
60
t-charge-detect
s
uint8_t
During NORMAL mode, if the battery current is positive for more than this time, then the BMS will go to CHARGE mode
1
RW
61
t-cb-delay
s
uint8_t
Time for the cell balancing function to start after entering the CHARGE mode
120
RW
62
t-charge-relax
s
uint16_t
Relaxation time after the charge is complete before going to another charge round.
300
RW
63
batt-eol
%
uint8_t
Percentage at which the battery is end-of-life and shouldn’t be used anymore Typically between 90%-50%
80
RW
64
s-flags
-
uint8_t
This contains the status flags as
described in BMS_status_flags_t
255
RO
65
self-discharge-enable
-
bool
This variable is used to enable or disable the SELF_DISCHARGE state, 0 is disabled, 1 is enabled
1
RW
66
flight-mode-enable
-
bool
This variable is used to enable or disable flight mode, is used together with i-flight-mode. 0 is disabled
0
RW
67
emergency-button-enable
-
bool
This variable is used to enable or disable the emergency button on PTE8.
0
RW
68
smbus-enable
-
bool
This variable is used to enable or disable the SMBus update.
0
RW
69
gate-check-enable
-
bool
This variable is used to enable or disable the gate safety check. If true, it will check if it can be turned off, based on output voltage.
1
RW
70
model-id
-
uint64_t
Model id, set to 0 if not applicable
0
RW
71
model-name
-
char[32]
Battery model name, model name is a
human-readable string that could
include the vendor, model, chemistry.
"BMS772"
RW
72
The can variables list
Table 5. Can variables list
Parameter
Unit
Datatype
Description
Default
RO/RW
No
cyphal-node-static-id*
-
uint8_t
This is the node ID of the CYPHAL node. Should be between 1 - 127 or 255 for PNP.
255
RW
73
cyphal-es-sub-id*
-
uint16_t
This is the subject ID of the energy source CYPHAL message (1...100Hz)
4096
RW
74
cyphal-bs-sub-id*
-
uint16_t
This is the subject ID of the battery status CYPHAL message (1Hz)
4097
RW
75
cyphal-bp-sub-id*
-
uint16_t
This is the subject ID of the battery parameters CYPHAL message (0.2Hz)
4098
RW
76
cyphal-legacy-bi-sub-id*
-
uint16_t
This is the subject ID of the battery info legacy CYPHAL message (0.2 ~ 1Hz)
65535
RW
77
dronecan-node-static-id
-
uint8_t
This is the node ID of the DRONECAN node. Should be between 1 - 127 or 255 for dynamic node id.
0
RW
78
dronecan-bat-continuous
-
uint8_t
This indicates if the particular DroneCAN topic has to be published
0
RW
79
dronecan-bat-periodic
-
uint8_t
This indicates if the particular DroneCAN topic has to be published
0
RW
80
dronecan-bat-cells
-
uint8_t
This indicates if the particular DroneCAN topic has to be published
0
RW
81
dronecan-bat-info
-
uint8_t
This indicates if the particular DroneCAN topic has to be published
1
RW
82
dronecan-bat-info-aux
-
uint8_t
This indicates if the particular DroneCAN topic has to be published
1
RW
83
can-mode
-
char[32]
Options “OFF”, "DRONECAN" and "CYPHAL". To indicate which is used.
“OFF”
RW
84
can-fd-mode*
-
uint8_t
If true CANFD is used, otherwise classic CAN is used
0
RW
85
can-bitrate*
bit/s
int32_t
The bitrate of classical can or CAN FD arbitration bitrate
1000000
RW
86
can-fd-bitrate*
bit/s
int32_t
The bitrate of CAN FD data bitrate
4000000
RW
87
A line means this is not implemented yet.
* These parameters will only be implemented during startup of the BMS
The hardware parameters
Table 6. BMS hardware parameters list
Parameter
Unit
Datatype
Description
Default
RO/RW
No
v-min
V
uint8_t
Minimum stack voltage for the BMS board to be fully functional
6
RW
88
v-max
V
uint8_t
Maximum stack voltage allowed by the BMS board
26
RW
89
i-range-max
A
uint16_t
Maximum current that can be measured by the BMS board
300
RW
90
i-max
A
uint8_t
Maximum DC current allowed in the BMS board (limited by power dissipation in the MOSFETs). For info only. Use i-out-max for a limit.
60
RW
91
i-short
A
uint16_t
Short circuit current threshold (typical: 550A, min: 500A, max: 600A)
500
RW
92
t-short
us
uint8_t
Blanking time for the short circuit detection
20
RW
93
i-bal
mA
uint8_t
Cell balancing current under 4.2V with cell balancing resistors of 82 ohms
50
RW
94
m-mass
kg
float
The total mass of the (smart) battery
0
RW
95
f-v-out-divider-factor
-
float
The factor of the output voltage divider as component tolerances could be different to not result in 11.0.
11.0
RW
96
A line means this is not implemented yet.
Last updated
Was this helpful?