- Removed outdated TODOs and legacy references in hardware documentation. - Added details on the new CH32V203-based Sensor Module for CAN bus soil moisture sensors. - Documented updates to the Battery Management System (CH32V203-based) replacing the older bq34z100 design. - Refined sensor, pump, and power module descriptions with updated specifications. - Expanded firmware documentation to include Rust-based ESP32-C6 platform details, new OTA procedure, and MQTT telemetry topics. - Simplified toolchain setup and compilation process with updated scripts and instructions.
57 lines
2.5 KiB
Markdown
57 lines
2.5 KiB
Markdown
---
|
|
title: "BatteryManagement"
|
|
date: 2025-01-27
|
|
draft: false
|
|
description: "a description"
|
|
tags: ["battery", "bms"]
|
|
---
|
|
# Battery Management Module
|
|
|
|
The PlantCtrl system uses an external **Battery Management System (BMS)** board that connects to the MainBoard. This module monitors battery voltage, current, and health metrics and communicates with the ESP32-C6 via I2C.
|
|
|
|
{{< alert >}}
|
|
The open-bms is a custom battery management board designed for this project. It uses a CH32V203 microcontroller to handle battery monitoring and protection. The older bq34z100-based battery management board is deprecated and located in the `__Legay_Unused` folder.
|
|
{{< /alert >}}
|
|
|
|
## Hardware
|
|
|
|
The Battery Management Board features:
|
|
* CH32V203 RISC-V microcontroller for battery monitoring
|
|
* I2C interface for communication with the MainBoard
|
|
* Battery voltage and current sensing
|
|
|
|
{{< alert >}}
|
|
The open-bms board does not use the bq34z100 fuel gauge IC. That component was used in an older legacy design now located in the `__Legay_Unused` folder.
|
|
{{< /alert >}}
|
|
|
|
## Integration with MainBoard
|
|
|
|
The battery management board:
|
|
* Connects to the MainBoard via a two-pin I2C bus
|
|
* Provides power connection to the battery
|
|
* Reports battery metrics via MQTT (if configured)
|
|
|
|
## Usage
|
|
|
|
* If available, the system will use battery metrics for deep sleep management when charge is critical
|
|
* The nightlight can be automatically disabled if battery level drops below a predefined threshold
|
|
* All battery metrics are published via MQTT when configured
|
|
* The system includes safety mechanisms to prevent overcharging and deep discharges through the battery's built-in protection circuitry
|
|
|
|
## Safety Notes
|
|
|
|
{{< alert >}}
|
|
The system requires a battery with built-in protection circuitry. The MPPT system does not include charge termination or overcharge protection - the battery itself must provide these safety features.
|
|
{{< /alert >}}
|
|
|
|
The CH32V203-based BMS monitors battery health and provides status information but does not control the charge/discharge limits. Ensure your battery can handle the maximum charging current from the MPPT system (up to 2.4A).
|
|
|
|
## Setup
|
|
|
|
1. **Connect Battery:** Connect your protected battery to the BMS board
|
|
2. **_connect MainBoard:** Connect the Battery Management Board to the MainBoard via the I2C bus connector
|
|
3. **Power On:** Power on the system and verify communication via MQTT
|
|
|
|
## Status Indicators
|
|
|
|
The BMS board includes status LEDs, they behave like every normal powerbank (1-5 lights, animted if charging) |