Documentation

1S 3.7V 3A 2MOS BMS Li-ion 18650 Battery Protection Board | ShillehTek Product Manual
Documentation / 1S 3.7V 3A 2MOS BMS Li-ion 18650 Battery Protection Board | ShillehTek Product Manual

1S 3.7V 3A 2MOS BMS Li-ion 18650 Battery Protection Board | ShillehTek Product Manual

1s-3-7v-3a-2mos-bms-li-ion-18650-battery-protection-boardArduinoBatteryBMSESP32LithiummanualProtection Boardshillehtek

Overview

The 1S 3.7V 3A 2MOS BMS is a compact lithium-ion battery protection circuit designed for a single 3.7V Li-ion or LiPo cell (typically an 18650, 14500, or pouch cell). It guards against over-charge, over-discharge, and over-current using dual DW01 + 8205A protection ICs, allowing safe use of a single cell to power microcontrollers, small motors, LED projects, and DIY power banks.

The board provides up to 3A continuous discharge current, automatic recovery after fault clearance, and extremely low quiescent current — perfect for keeping your batteries safe during long-term portable projects. It is small enough to be soldered directly to a single 18650 cell holder and is widely used in ESP32 and Raspberry Pi Pico battery-powered builds.

At a Glance

Battery Type
1S Li-ion / LiPo
Nominal Voltage
3.7V
Continuous Current
3A
Over-Charge Cutoff
4.25 - 4.35V
Over-Discharge Cutoff
2.3 - 2.5V
Pads
B+, B-, P+, P-

Specifications

Parameter Value
Cell Configuration 1S (single cell)
Nominal Battery Voltage 3.7V
Full Charge Voltage 4.2V
Over-Charge Protection 4.25V - 4.35V
Over-Discharge Protection 2.3V - 2.5V
Over-Current Protection ~3A (trip threshold)
Short Circuit Protection Yes, auto-recovery
Protection ICs DW01A + Dual 8205A MOSFETs
Quiescent Current < 6 uA
Internal Resistance < 50 mOhm
Operating Temperature -40 to +85 C
PCB Dimensions ~33 x 7 x 3 mm

Pinout Diagram

1S 3.7V 3A 2MOS BMS pinout diagram showing B- and B+ battery terminals and P- (input/output negative) and P+ (input/output positive) load terminals

Wiring Guide

Battery Wiring

Solder a single 3.7V Li-ion or LiPo cell to the B+ and B- pads on one end of the board. Use short, heavy-gauge wire (22 AWG or thicker) to minimize voltage drop under load.

BMS Pad Battery Terminal
B+ Battery Positive (+)
B- Battery Negative (-)
Warning: Always connect the battery first, before connecting any load. Reversing polarity will destroy the protection ICs and may cause the cell to vent or catch fire. Double-check polarity with a multimeter before soldering.

Load Wiring

Your project (microcontroller, motor, LED strip, etc.) connects to the P+ and P- pads. The protection circuit sits between the battery and the load, so all current to and from your load flows through the BMS.

BMS Pad Load Terminal
P+ Load Positive (+) input
P- Load Negative (-) / GND
Tip: Keep continuous load current under 3A. Short bursts above 3A may trip the over-current protection — disconnect the load briefly and it will auto-reset.

Charging the Battery

This board protects the battery but does not charge it. To charge, connect a dedicated 1S Li-ion charger (such as the ShillehTek TP4056 charging board) to the P+ and P- pads. The protection IC monitors charge voltage and disconnects at ~4.25V to prevent over-charge.

Charger Pin BMS Pad
OUT+ (Charger) P+
OUT- (Charger) P-
Info: For a complete charge + protect solution, pair this BMS with a TP4056 charger module. The TP4056 provides constant-current/constant-voltage charging while this BMS adds the safety cutoffs.

Powering Microcontrollers

A 3.7V cell can directly power ESP32, Raspberry Pi Pico, and Arduino Pro Mini (3.3V) boards through their battery input pins. For 5V boards (Arduino Uno, Raspberry Pi), use a boost converter between the BMS P+/P- output and your board's 5V input.

BMS Output Microcontroller Details
P+ ESP32 VIN / Pico VSYS Direct 3.7V
P+ Arduino Uno 5V Via MT3608 boost converter
P+ Raspberry Pi 5V Via boost converter (3A+ rated)
P- GND Common ground
Warning: Do not feed the 3.7V cell voltage directly into a 3.3V regulator input — most regulators need at least 5V input to produce a stable 3.3V. ESP32 dev boards and Pico include an onboard regulator that accepts the raw cell voltage on VIN/VSYS.

Code Examples

This is a passive protection module — there is no I2C, SPI, or UART interface to read from microcontroller code. However, you can monitor battery voltage on an ADC pin using a voltage divider to display state of charge.

Arduino (Battery Voltage Monitor)

bms_voltage_monitor.ino
// 1S BMS Battery Voltage Monitor
// Connect P+ to a voltage divider (100k / 100k) and read midpoint with A0
// Vbat range: 2.5V (cutoff) to 4.2V (full)

const int adcPin = A0;
const float dividerRatio = 2.0;        // 100k + 100k = halves the voltage
const float vRef = 5.0;                // Arduino Uno reference

void setup() {
  Serial.begin(9600);
}

void loop() {
  int raw = analogRead(adcPin);
  float vAdc = (raw / 1023.0) * vRef;
  float vBat = vAdc * dividerRatio;

  // Map to a percentage (very rough)
  float pct = ((vBat - 3.0) / (4.2 - 3.0)) * 100.0;
  if (pct > 100) pct = 100;
  if (pct < 0) pct = 0;

  Serial.print("Battery: ");
  Serial.print(vBat, 2);
  Serial.print(" V (");
  Serial.print(pct, 0);
  Serial.println(" %)");
  delay(1000);
}

ESP32 (Battery Voltage Monitor)

bms_voltage_esp32.ino
// ESP32 reads P+ through a 220k/100k divider (max 3.3V at ADC)
// Connect: P+ -- 220k -- ADC34 -- 100k -- GND

const int adcPin = 34;
const float dividerRatio = (220.0 + 100.0) / 100.0;  // = 3.2
const float vRef = 3.3;

void setup() {
  Serial.begin(115200);
  analogReadResolution(12);
}

void loop() {
  int raw = analogRead(adcPin);
  float vAdc = (raw / 4095.0) * vRef;
  float vBat = vAdc * dividerRatio;
  Serial.printf("Battery: %.2f V\n", vBat);
  delay(1000);
}

Raspberry Pi Pico (MicroPython)

bms_voltage_pico.py
# Pico reads P+ through a 100k/100k divider on ADC0 (GP26)
# Connect: P+ -- 100k -- GP26 -- 100k -- GND

from machine import ADC, Pin
import time

adc = ADC(0)  # GP26
divider_ratio = 2.0
v_ref = 3.3

while True:
    raw = adc.read_u16()
    v_adc = (raw / 65535) * v_ref
    v_bat = v_adc * divider_ratio
    print("Battery: {:.2f} V".format(v_bat))
    time.sleep(1)

Frequently Asked Questions

What's the difference between B+/B- and P+/P-?
B+ and B- are the battery terminals — the cell solders here. P+ and P- are the protected output terminals — your load connects here. The protection MOSFETs sit between the two sets of pads and disconnect the load if a fault is detected.
Will this BMS charge my battery?
No. This board only protects the battery; it does not regulate charging. Pair it with a dedicated 1S charger like the TP4056. The charger connects to the P+/P- pads — the BMS lets the charge current pass through and disconnects automatically when the cell reaches ~4.25V.
Can I use this with a LiPo pouch cell or only 18650?
It works with any single Li-ion or LiPo cell that has a nominal 3.7V chemistry and a 4.2V full-charge voltage. That includes 18650, 14500, 21700, and most LiPo pouch cells. Do not use it with LiFePO4 (3.2V chemistry) — the cutoff thresholds are wrong.
My load works briefly then cuts out. What's wrong?
You're tripping over-current protection (>3A) or the battery hit the discharge cutoff (~2.5V). Disconnect the load for a few seconds and re-power to clear the fault. For loads above 3A, use the HX-2S-JH20 (10A) or a 3S/4S BMS with higher current rating.
What gauge wire should I use?
For loads up to 3A use 22-20 AWG silicone-jacketed wire. Keep the wires as short as possible — long thin wires cause voltage drop and can trip the protection circuit prematurely.
Does this protect against reverse polarity?
No — reverse polarity on the B+/B- pads will permanently damage the protection ICs. Always verify polarity with a multimeter before soldering the battery. Some makers add a Schottky diode in series with B+ for reverse protection, at the cost of a small voltage drop.