Description
LCD setup / Simple cascaded power distribution board setup
Parameters of the BMS GitBook |
---|
The common battery variables list |
In the console (CLI) type: “bms help parameters” to get more info on the parameters.
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 |
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 |
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 variable 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 |
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 |
The hardware parameters |
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 |