Skip to main content
Version: v1.3.20240705-or-older

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.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 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​

Some BMS drivers support also BMS from other manifacturers. Check the Supported BMS page for more info.

FeatureANTDalyECSEG4 LiFePOWEREG4 LLHeltec ModbusHLPdata BMS4SJKBMSJKBMS PB ModelJBDMNB (1)RenogySeplosSeplos v3Sinowealth (1)
VoltageYesYesYesYesYesYesYesYesYesYesYesYesYesYesYes
CurrentYesYesYesYesYesYesYesYesYesYesYesYesYesYesYes
PowerYesYesYesYesYesYesYesYesYesYesYesYesYesYesYes
State Of ChargeYesYesYesYesYesYesYesYesYesYesYesYesYesYesYes
Battery temperatureYesYesYesYesYesYesYesYesYesYesYesYesYesYesYes
MOSFET temperatureNoNoNoNoNoYesNoYesYesYesNoNoNoYesNo
Consumed AhYesYesYesYesYesNoYesYesYesYesYesYesYesYesYes
Time-to-goCalcCalcCalcCalcCalcCalcCalcCalcCalcCalcCalcCalcCalcCalcCalc
Min/max cell voltagesYesYesNoYesNoYesYesYesYesYesNoYesYesYesYes
Min/max temperatureYesYesYesYesYesNoYesYesYesYesYesYesYesYesYes
Installed capacityYesYesYesYesYesYesYesYesYesYesYesYesYesYesYes
Available capacityYesYesYesYesYesNoYesYesYesYesYesYesYesYesYes
Cell detailsNoYesYesYesYesYesYesYesYesYesNoYesYesYes?
Balancing statusYesNoYesYesNoYesNoYesYesNoNoNoNoYes?
Raise alarms from the BMSYesYesYes (2)YesYesYesYesYesYesYesYesYesYesYes?
History of charge cyclesYesYesNoYesNoNoNoYesYesYesNoYesYesYesYes
Get CCL/DCL from the BMSNoNoNoNoNoYesNoYesNoNoNoNoNoYesNo
Charge current control management (CCCM)YesYesYesYesYesYesYesYesNoYesYesYesYesYesYes
Set battery parameters (DVCC)CalcCalcYesCalcYesCalcYesCalcNoCalcYesCalcCalcCalcCalc
Bluetooth connection (3) NoNoNoNoNoNoNoYesNoYesNoNoNoNoNo
CAN connection (3)NoYesNoNoNoNoNoYesNoNoNoNoNoNoNo
SOC reset via driver on BMSNoYesNoNoNoNoNoBLENoYesNoNoNoNoNo
Disable charging via driver on BMSNoYesNoNoNoNoNoNoNoYesNoNoNoNoNo
Disable discharging via driver on BMSNoYesNoNoNoNoNoNoNoYesNoNoNoNoNo
Disable balancing via driver on BMSNoYesNoNoNoNoNoNoNoYesNoNoNoNoNo

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 Bluetooth and CAN connections are still not stable on some systems. If you want to have a stable connection use the serial connection.

(4) Only on models from 2023