3S 20A Battery Management Systems (BMS)

BMS For Three Battery Strings And 20A Max Current

BMS often ship in locked state: no output voltage is available at the output pins. Locked state is also entered whenever over-current protection was triggered. To unlock the BMS, connect it to a charger. If you did not add a dedicated charger board, apply the appropriate charging voltage to its output terminal.

When connecting batteries to your BMS, make sure to use wires with sufficient diameter for the anticipated high currents.

When designing battery packs, use batteries of same type and same state of charge only. It is recommended you fully charge all batteries before connecting. All batteries must have the same voltage (voltage difference less than 0.05V). Do not mix batteries from different vendors, types, capacity, or age.


LiIon LiPo

For currents up to 20A, here is a rugged and balanced BMS:

Connect the batteries like this:

  • First battery string to 0V (-) and 4.2V (+)
  • Second battery string to 4.2V (-) and 8.4V (+)
  • Third battery string to 8.4V (-) and 12.6V (+)

The output voltage is available at the terminals marked + and -.

All terminals are also available at the bottom:


Protection Threshold
Over-Charge >4.25V
Over-Discharge <2.5V
Over-Current 60A (100ms delay)
Short Circuit yes,resettable
Continuous Current 20A
Size 59x20x3.4mm


When charging batteries through this BMS, the charging voltage needs to be 12.6-13.0V. The BMS limits the charging current to 10A.


Please do leave comments below. I am using utteran.ce, an open-source and ad-free light-weight commenting system.

Here is how your comments are stored

Whenever you leave a comment, a new github issue is created on your behalf.

  • All comments become trackable issues in the Github Issues section, and I (and you) can follow up on them.

  • There is no third-party provider, no disrupting ads, and everything remains transparent inside github.

Github Users Yes, Spammers No

To keep spammers out and comments attributable, all you do is log in using your (free) github account and grant utteranc.es the permission to submit issues on your behalf.

If you don’t have a github account yet, go get yourself one - it’s free and simple.

If for any reason you do not feel comfortable with letting the commenting system submit issues for you, then visit Github Issues directly, i.e. by clicking the red button Submit Issue at the bottom of each page, and submit your issue manually. You control everything.


For chit-chat and quick questions, feel free to visit and participate in Discussions. They work much like classic forums or bulletin boards. Just keep in mind: your valued input isn’t equally well trackable there.

  Show on Github    Submit Issue

(content created Mar 16, 2024)