Skip to content

Commit

Permalink
Updated docs
Browse files Browse the repository at this point in the history
  • Loading branch information
mr-manuel committed Apr 21, 2023
1 parent 25d68f8 commit 66c3841
Show file tree
Hide file tree
Showing 10 changed files with 207 additions and 109 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# dbus-serialbattery
This is a driver for VenusOS devices (any GX device sold by Victron or a Raspberry Pi running the VenusOS image).
This is a driver for Venus OS devices (any GX device sold by Victron or a Raspberry Pi running the Venus OS image).

The driver will communicate with a Battery Management System (BMS) that support serial communication (RS232, RS485 or TTL UART) and publish this data to the VenusOS system. The main purpose is to act as a Battery Monitor in your GX and supply State Of Charge (SOC) and other values to the inverter.
The driver will communicate with a Battery Management System (BMS) that support serial communication (RS232, RS485 or TTL UART) and publish this data to the Venus OS system. The main purpose is to act as a Battery Monitor in your GX and supply State Of Charge (SOC) and other values to the inverter.

* [BMS Types supported](https://github.com/Louisvdw/dbus-serialbattery/wiki/BMS-types-supported)
* [FAQ](https://github.com/Louisvdw/dbus-serialbattery/wiki/FAQ)
Expand Down
145 changes: 90 additions & 55 deletions docs/docs/general/features.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,56 @@
---
id: features
title: Features
sidebar_position: 2
---

## Features
The driver will act as Battery Monitor inside VenusOS and update the following values:
* State Of Charge

The driver can ahndle batteries from 3 to 32 cells. It will act as Battery Monitor inside Venus OS and update the following values:

* Voltage
* Current
* Power
* Can handle batteries with from 3 - 32 cells
* battery temperature
* min/max cell voltages
* raise alarms from the BMS
* available capacity
* remaining capacity
* total Ah drawn
* history of charge cycles
* 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
![VenusOS values](https://raw.githubusercontent.com/Louisvdw/dbus-serialbattery/master/images/GXvalues.png)

* Set battery parameters (DVCC)
* Charge Voltage Limit(CVL)
* Charge Current Limit(CCL)
* Discharge Current Limit(DCL)
* CVL (battery bax) automatically adjusted by cell count * 3.45V
* Battery min automatically adjusted by cell count * 3.1V

## Screenshots

![VenusOS](../../screenshots/venus-os_003.png)
![VenusOS](../../screenshots/venus-os_005.png)
![VenusOS](../../screenshots/venus-os_006.png)
![VenusOS](../../screenshots/venus-os_007.png)
![VenusOS](../../screenshots/venus-os_008.png)
![VenusOS](../../screenshots/venus-os_009.png)
![VenusOS](../../screenshots/venus-os_010.png)
![VenusOS](../../screenshots/venus-os_013.png)


## Charge current control management
Expand All @@ -41,65 +67,74 @@ Linear will give a gradual change from one limit range to the next.
You can set CCCM limits for 3 attributes which can be Enabled/Disabled and adjusted by settings in utils.py
The smallest limit from all enabled will apply.

### SOC (State Of Charge) from the BMS
* CCCM_SOC_ENABLE = True/False
* DCCM_SOC_ENABLE = True/False
### 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
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
* 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
* 30% - 91% => Max charge and Max discharge

- between 20% - 30% => 1/2 Max discharge
- between 10% - 20% => 1/4 Max discharge
- below <= 10% => 5A
* between 20% - 30% => 1/2 Max discharge
* between 10% - 20% => 1/4 Max discharge
* below <= 10% => 5A

### Cell Voltage
* CCCM_CV_ENABLE = True/False
* DCCM_CV_ENABLE = True/False
* `CCCM_CV_ENABLE = True/False`
* `DCCM_CV_ENABLE = True/False`

CCCM limits the charge/discharge current depending on the highest/lowest cell voltages
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
* 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)
* 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
* between 2.90V - 3.10V => 30A discharge
* between 2.8V - 2.9V => 5A discharge
* below <= 2.70V => 0A discharge

### Temprature
* 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
* `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

![VenusOS values](https://raw.githubusercontent.com/Louisvdw/dbus-serialbattery/master/images/VRMChargeLimits.png)
![VenusOS values](../../screenshots/vrm-charge-limits.png)

## 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: https://github.com/Louisvdw/dbus-serialbattery/issues/297#issuecomment-1327142635
### 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`.

## Battery feature comparison
| Feature | JBD/LLT | Daly | ANT | MNB | JKBMS | RENOGY | TIAN/LIFE Power | ECS |
| ---: | --- | --- | --- | --- | --- | --- | --- | --- |
| State Of Charge | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| ---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| Voltage | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Current | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Power | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| battery temperature | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| min/max cell voltages | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
| raise alarms from the BMS | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes(no Cells yet) |
| available capacity | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| remaining capacity | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| total Ah drawn | Calc | Calc | Yes | Calc | Calc | Calc | Calc | Calc |
| history of charge cycles | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
| set battery parameters | Fixed | Fixed | Fixed | Fixed | Fixed | Fixed | Fixed | Yes |
| Charge current control | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| State Of Charge | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Battery temperature | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Mosfet temperature | Yes | No | No | No | Yes | No | No | No |
| Consumed Ah | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Time-to-go | Calc | Calc | Calc | Calc | Calc | Calc | Calc | Calc |
| Min/max cell voltages | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
| Min/max temperature | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Installed capacity | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes |
| Available capacity | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Cell details | ? | ? | ? | ? | Yes | ? | ? | ? |
| Raise alarms from the BMS | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes<br>(no cells yet) |
| History of charge cycles | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
| Charge current control management (CCCM) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Set battery parameters (DVCC) | Fixed | Fixed | Fixed | Fixed | Fixed | Fixed | Fixed | Yes |
5 changes: 3 additions & 2 deletions docs/docs/general/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@
id: index
title: Introduction
slug: /
sidebar_position: 1
---

# dbus-serialbattery
This is a driver for VenusOS devices (any GX device sold by Victron or a Raspberry Pi running the VenusOS image).
This is a driver for Venus OS devices (any GX device sold by Victron or a Raspberry Pi running the Venus OS image).

The driver will communicate with a Battery Management System (BMS) that support serial communication (RS232, RS485 or TTL UART) and publish this data to the VenusOS system. The main purpose is to act as a Battery Monitor in your GX and supply State Of Charge (SOC) and other values to the inverter.
The driver will communicate with a Battery Management System (BMS) that support serial communication (RS232, RS485 or TTL UART) and publish this data to the Venus OS system. The main purpose is to act as a Battery Monitor in your GX and supply State Of Charge (SOC) and other values to the inverter.

## Supporting this project
If you find this driver helpful please considder supporting this project. You can buy me a Ko-Fi or get in contact if you would like to donate hardware.
Expand Down
Loading

0 comments on commit 66c3841

Please sign in to comment.