Skip to main content

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

VenusOS VenusOS VenusOS VenusOS VenusOS VenusOS VenusOS VenusOS

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.55V2A charge

  • between 3.45V - 3.50V30A charge

  • between 3.30V - 3.45V60A

  • 3.30V - 3.10V → max charge and max discharge (60A)

  • between 2.90V - 3.10V30A discharge

  • between 2.8V - 2.9V5A discharge

  • below <= 2.70V0A 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 below 0°C or above 55°C
  • Discharging will be 0A if below -20°C or above 55°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

VenusOS values

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

FeatureAntDalyECSHeltecHLPdataBMS4SJK BMSLife/Tian PowerLLT/JBDMNB (1)RenogySeplosSeplos v3Sinowealth (1)
VoltageYesYesYesYesYesYesYesYesYesYesYesYesYes
CurrentYesYesYesYesYesYesYesYesYesYesYesYesYes
PowerYesYesYesYesYesYesYesYesYesYesYesYesYes
State Of ChargeYesYesYesYesYesYesYesYesYesYesYesYesYes
Battery temperatureYesYesYesYesYesYesYesYesYesYesYesYesYes
MOSFET temperatureNoNoNoYesNoYesNoYesNoNoNoYesNo
Consumed AhYesYesYesNoYesYesYesYesYesYesYesYesYes
Time-to-goCalcCalcCalcCalcCalcCalcCalcCalcCalcCalcCalcCalcCalc
Min/max cell voltagesYesYesNoYesYesYesYesYesNoYesYesYesYes
Min/max temperatureYesYesYesNoYesYesYesYesYesYesYesYesYes
Installed capacityYesYesYesYesYesYesYesYesYesYesYesYesYes
Available capacityYesYesYesNoYesYesYesYesYesYesYesYesYes
Cell detailsNoYesYesYesYesYesYesYesNoYesYesYes?
Balancing statusYesNoYesYesNoYesYesNoNoNoNoYes?
Raise alarms from the BMSYesYesYes (2)YesYesYesYesYesYesYesYesYes?
History of charge cyclesYesYesNoNoNoYesYesYesNoYesYesYesYes
Get CCL/DCL from the BMSNoNoNoYesNoYesNoNoNoNoNoYesNo
Charge current control management (CCCM)YesYesYesYesYesYesYesYesYesYesYesYesYes
Set battery parameters (DVCC)CalcCalcYesCalcYesCalcCalcCalcYesCalcCalcCalcCalc
Bluetooth connection (3) NoNoNoNoNoYesNoYesNoNoNoNoNo
CAN connection (3)NoYesNoNoNoYesNoNoNoNoNoNoNo
SOC reset via driver on BMSNoYesNoNoNoBLENoYesNoNoNoNoNo
Disable charging via driver on BMSNoYesNoNoNoNoNoYesNoNoNoNoNo
Disable discharging via driver on BMSNoYesNoNoNoNoNoYesNoNoNoNoNo
Disable balancing via driver on BMSNoYesNoNoNoNoNoYesNoNoNoNoNo

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.