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
In the console (CLI) type "bms get all" to get all the parameters and its current value.
In the console (CLI) type: "bms help parameters" to get more info on the 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-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