Features
The driver can handle batteries from 3 to 32 cells. It will act as Battery Monitor inside Venus OS and update the following values:
-
Voltage
-
Current
-
Power
-
SoC (State of Charge)
-
Battery temperature
-
Mosfet temperature
-
Consumed Ah
-
Time-to-go
-
Min/max cell voltages
-
Min/max temperature (depending on BMS)
-
Installed capacity
-
Available capacity
-
Cell details (depending on BMS)
- Min
- Max
- Diff
- Cell voltage 1 - 32
-
Raise alarms from the BMS
-
History of charge cycles
-
Charge current control management (CCCM)
-
Set battery parameters (DVCC)
- Charge Voltage Limit (CVL)
- Charge Current Limit (CCL)
- Discharge Current Limit (DCL)
- CVL (battery max) automatically adjusted by
cell count
*3.45V
- Battery min automatically adjusted by
cell count
*3.1V
Charge current control management​
CCCM limits the current when the battery is close to full or close to empty. When your battery is full, the reduced charge current will give the balancers in your BMS time to work. When your battery is close to empty the reduced dicharge current will limit that a sudden large load will pull your battery cells below their protection values.
Limitation modes​
The limits can be applied in Step or Linear mode.
- Step use hard boundaries that will apply recognisable step values and use less processing power (DEFAULT)
- Linear will give a gradual change from one limit range to the next
CCCM attributes​
You can set CCCM limits for 3 attributes which can be enabled / disabled and adjusted by settings in config.ini
.
The smallest limit from all enabled will apply.
Cell voltage​
CCCM_CV_ENABLE = True/False
DCCM_CV_ENABLE = True/False
CCCM limits the charge/discharge current depending on the highest/lowest cell voltages
-
between
3.50V - 3.55V
→2A
charge -
between
3.45V - 3.50V
→30A
charge -
between
3.30V - 3.45V
→60A
-
3.30V - 3.10V
→ max charge and max discharge (60A
) -
between
2.90V - 3.10V
→30A
discharge -
between
2.8V - 2.9V
→5A
discharge -
below
<= 2.70V
→0A
discharge
Temperature​
CCCM_T_ENABLE = True/False
DCCM_T_ENABLE = True/False
CCCM limits the charge/discharge current depending on the highest/lowest temperature sensor values
- Charging will be
0A
if below0°C
or above55°C
- Discharging will be
0A
if below-20°C
or above55°C
SoC (State of Charge) from the BMS​
CCCM_SOC_ENABLE = True/False
DCCM_SOC_ENABLE = True/False
CCCM limits the charge/discharge current depending on the SoC
-
between
99% - 100%
→5A
charge -
between
95% - 98%
→ 1/4 max charge -
between
91% - 95%
→ 1/2 max charge -
30% - 91%
→ max charge and max discharge -
between
20% - 30%
→ 1/2 max discharge -
between
10% - 20%
→ 1/4 max discharge -
below
<= 10%
→5A
Charge voltage control management​
Cell voltage penalty​
If the cell voltage reaches a specific value, then subtract a penalty from the CVL. Detailed info can be found here: CCL/DCL depending on cell-voltage does not turn off charging completely, still overvoltage alarm
Float voltage emulation​
If the MAX_CELL_VOLTAGE
* cell count
is reached for MAX_VOLTAGE_TIME_SEC
then the CVL changes to FLOAT_CELL_VOLTAGE
* cell count
. Max voltage could be reached again if the SoC gets under SOC_LEVEL_TO_RESET_VOLTAGE_LIMIT
.
SOC reset voltage​
Some BMS need a higher voltage to trigger a reset to 100% SOC. SOC_RESET_VOLTAGE
allows you to trigger this voltage once
in a while. The driver will supress high voltage warnings from the driver when it switches to this voltage. It might be that
other systems (like the MultiPlus or Solar Charger) trigger a high voltage warning in this case when not properly configured.
See the SOC reset voltage
section in the
config.default.ini
for more informations.
This has nothing to do with the SOC calculation based on coloumb-counting
or SOC reset via driver on BMS
.
SOC calculation based on coloumb-counting​
Many BMS have problems to manage a SOC reset properly. To workaround this you can enable the SOC calculation of the driver. This ignores the SOC of the BMS and calculates it based on coloumb-counting (count the current flowing in and out). It's also possible to create a map to correct wrong current measurements.
See the SOC calculation
section in the
config.default.ini
for more informations.
This has nothing to do with the SOC reset voltage
or SOC reset via driver on BMS
.
BMS feature comparison​
Some BMS drivers support also BMS from other manifacturers. Check the Supported BMS page for more info.
Feature | ANT | Daly | Daren485 | ECS | EG4 LiFePOWER | EG4 LL | Heltec Modbus | HLPdata BMS4S | JKBMS | JKBMS PB Model | JBD | MNB (1) | Renogy | Seplos | Seplos v3 | Sinowealth (1) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Voltage | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Current | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Power | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
State Of Charge | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Battery temperature | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
MOSFET temperature | No | No | Yes | No | No | No | Yes | No | Yes | Yes | Yes | No | No | No | Yes | No |
Consumed Ah | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Time-to-go | Calc | Calc | Calc | Calc | Calc | Calc | Calc | Calc | Calc | Calc | Calc | Calc | Calc | Calc | Calc | Calc |
Min/max cell voltages | Yes | Yes | Yes | No | Yes | No | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes |
Min/max temperature | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Installed capacity | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Available capacity | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Cell details | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | ? |
Balancing status | Yes | No | No | Yes | Yes | No | Yes | No | Yes | Yes | No | No | No | No | Yes | ? |
Raise alarms from the BMS | Yes | Yes | Yes | Yes (2) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ? |
History of charge cycles | Yes | Yes | Yes | No | Yes | No | No | No | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes |
Get CCL/DCL from the BMS | No | No | Yes | No | No | No | Yes | No | Yes | No | No | No | No | No | Yes | No |
Charge current control management (CCCM) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes |
Set battery parameters (DVCC) | Calc | Calc | Yes | Yes | Calc | Yes | Calc | Yes | Calc | No | Calc | Yes | Calc | Calc | Calc | Calc |
Bluetooth connection (3) | No | No | No | No | No | No | No | No | Yes | No | Yes | No | No | No | No | No |
CAN connection | No | Yes | No | No | No | No | No | No | Yes | No | No | No | No | No | No | No |
SOC reset via driver on BMS | No | Yes | No | No | No | No | No | No | BLE | No | Yes | No | No | No | No | No |
Disable charging via driver on BMS | No | Yes | No | No | No | No | No | No | No | No | Yes | No | No | No | No | No |
Disable discharging via driver on BMS | No | Yes | No | No | No | No | No | No | No | No | Yes | No | No | No | No | No |
Disable balancing via driver on BMS | No | Yes | No | No | No | No | No | No | No | No | Yes | No | No | No | No | No |
Daisy chain BMS to one USB adapter | u.k. | Yes | Yes | u.k. | Yes | Yes | Yes | u.k. | Yes 4 | Yes | u.d. | u.k. | Yes | u.k. | u.k. | u.k. |
Calc
means that the value is calculated by the driver.
u.d.
means under development.
u.k.
means unknown.
?
means that it's unknown, if the value is fetched. It has to be verified. If you know this, please update this page.
(1) Disabled by default. They can be enabled by uncommenting in dbus-serialbattery.py
.
(2) No cells yet.
(3) The connection is still not stable on some systems. If you want to have a stable connection use the serial connection.
(4) Only on models from 2023