

The 3S BMS with Balancer is a Battery Management System designed specifically for 3-cell lithium-ion battery packs. It operates within a voltage range of 11.1V to 12.6V and provides essential safety features such as overvoltage, undervoltage, overcurrent, and short-circuit protection. Additionally, it includes a balancing function to ensure that all cells in the battery pack maintain equal charge levels, thereby improving battery performance and lifespan.








The following table outlines the key technical specifications of the 3S BMS with Balancer:
| Parameter | Value |
|---|---|
| Battery Configuration | 3S (3 cells in series) |
| Operating Voltage Range | 11.1V - 12.6V |
| Overcharge Protection | 4.25V ± 0.05V per cell |
| Overdischarge Protection | 2.7V ± 0.1V per cell |
| Maximum Continuous Current | 20A |
| Balancing Current | 30mA |
| Short-Circuit Protection | Yes |
| Dimensions | ~45mm x 17mm x 3mm |
| Operating Temperature Range | -40°C to 85°C |
The 3S BMS typically has the following pin connections:
| Pin Name | Description |
|---|---|
| B- | Battery negative terminal (connect to the negative terminal of the battery pack) |
| B1 | Connection point for the positive terminal of the first cell |
| B2 | Connection point for the positive terminal of the second cell |
| B+ | Battery positive terminal (connect to the positive terminal of the battery pack) |
| P- | Power output negative terminal (connect to the load or charger negative) |
| P+ | Power output positive terminal (connect to the load or charger positive) |
Connect the Battery Pack:
B- pin.B1 pin.B2 pin.B+ pin.Connect the Load and Charger:
P- pin.P+ pin.Verify Connections:
Power On:
While the 3S BMS is primarily a hardware component, it can be monitored using an Arduino UNO to measure battery voltage and ensure proper operation. Below is an example code to read the voltage of the battery pack using an analog input pin:
// Arduino code to monitor the voltage of a 3S battery pack
const int voltagePin = A0; // Analog pin connected to the battery voltage divider
const float voltageDividerRatio = 5.7; // Adjust based on your resistor divider values
const float referenceVoltage = 5.0; // Reference voltage of the Arduino (5V for UNO)
void setup() {
Serial.begin(9600); // Initialize serial communication
pinMode(voltagePin, INPUT); // Set the voltage pin as input
}
void loop() {
int rawValue = analogRead(voltagePin); // Read the analog value
float batteryVoltage = (rawValue / 1023.0) * referenceVoltage * voltageDividerRatio;
// Print the battery voltage to the Serial Monitor
Serial.print("Battery Voltage: ");
Serial.print(batteryVoltage);
Serial.println(" V");
delay(1000); // Wait for 1 second before the next reading
}
Note: Use a voltage divider circuit to step down the battery voltage to a safe range (0-5V) for the Arduino analog input pin. Adjust the
voltageDividerRatioin the code based on the resistor values used in the divider.
BMS Not Balancing Cells:
Overvoltage or Undervoltage Protection Triggered:
No Output from P+ and P- Terminals:
Excessive Heat During Operation:
Can I use this BMS with a 4S battery pack?
What happens if I reverse the polarity of the connections?
Does the BMS support lithium iron phosphate (LiFePO4) batteries?
Can I use this BMS for charging and discharging simultaneously?
By following this documentation, you can safely and effectively use the 3S BMS with Balancer in your projects.