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
Screenshots
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 utils.py
(driver version <= v0.14.3
) or config.ini
(driver version >= v1.0.0
).
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
Feature | Ant | Daly | ECS | Heltec | HLPdataBMS4S | JK BMS | Life/Tian Power | LLT/JBD | MNB (1) | Renogy | Seplos | Seplos v3 | Sinowealth (1) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Voltage | 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 |
Power | 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 |
Battery temperature | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
MOSFET temperature | No | No | No | Yes | No | Yes | No | Yes | No | No | No | Yes | No |
Consumed Ah | 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 |
Min/max cell voltages | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes |
Min/max temperature | 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 |
Available capacity | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Cell details | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | ? |
Balancing status | Yes | No | Yes | Yes | No | Yes | Yes | No | No | No | No | Yes | ? |
Raise alarms from the BMS | Yes | Yes | Yes (2) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ? |
History of charge cycles | Yes | Yes | No | No | No | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes |
Get CCL/DCL from the BMS | 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 | Yes | Yes | Yes | Yes |
Set battery parameters (DVCC) | Calc | Calc | Yes | Calc | Yes | Calc | Calc | Calc | Yes | Calc | Calc | Calc | Calc |
Bluetooth connection (3) | No | No | No | No | No | Yes | No | Yes | No | No | No | No | No |
CAN connection (3) | No | Yes | No | No | No | Yes | No | No | No | No | No | No | No |
SOC reset via driver on BMS | No | Yes | No | No | No | BLE | No | Yes | No | No | No | No | No |
Disable charging via driver on BMS | No | Yes | No | No | No | No | No | Yes | No | No | No | No | No |
Disable discharging via driver on BMS | No | Yes | No | No | No | No | No | Yes | No | No | No | No | No |
Disable balancing via driver on BMS | No | Yes | No | No | No | No | No | Yes | No | No | No | No | No |
Calc
means that the value is calculated by the driver.
?
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 Bluetooth and CAN connections are still not stable on some systems. If you want to have a stable connection use the serial connection.