Cheap DIY 12S balance charger idea

Most people seem to be using bypassed BMS-es for their battery pack since it’s a simple and cheap solution. I don’t like it for the following reasons:

  • BMS takes up space in the enclosure.
  • No feedback. You have to trust the BMS to do the right thing. You don’t get the individual cell voltage reading (unless you use a smart BMS).
  • If you charge fast, the cell balancing may be insufficient as pointed out by @chaka here.

I would much rather use a balance charger than a BMS. The problem is that 12S balance chargers are rare and expensive.

Here’s how I think one could make one with low cost. The idea is inspired by the “frankenstein charger” by @Luuke, which basically uses ten 1S chargers at the same time to charge individual battery cells. While I do like that it seems a bit too bulky and complicated. An alternative would be to use:

  • 13 “small” relays to create a connection to each individual cell out of the 12
  • only one 1S charger
  • 1 “fat” relay for the whole 12S pack
  • 12S “brick” charger
  • MCU (Arduino)
  • small/cheap OLED or TFT display for monitoring

The idea is that the MCU would first activate the “fat relay” for the brick charger to charge the full pack without balancing. While it’s charging, individual cell voltages would be monitored using the small relays. This would be done by connecting one cell to the MCU at the time and use an ADC enabled pin for reading the voltage. This doesn’t need to be done too often (limited number of relay operations would not be a problem).

Once one of the cells reaches the full charge, the MCU would cut off the brick charger and would use the 1S charger to finish charging one cell at the time. Again, the “small” relays would be used for this phase.

Charging individual cells this way would be slow, but as long as good cells are used, they shouldn’t get too much out of balance, so this balancing phase should be short.

The nice thing about this is that it should work for any number of cells. For 13S or 14S, just add one or two more “small” relays. Also, having a custom FW for the MCU would allow full customization of the charge process, such as the max cell voltage, charging current, etc.

Would this work or is there an obvious problem I’m overlooking? I’m tempted to build this for science. :smiley:


Wouldn’t it be better to use mosfets? They are smaller and cheaper :smile:


Yes, maybe. It’s actually beyond my limited electronics background whether it would be better. I have a pretty good idea about how to do it with relays. With mosfets, there’s always some voltage drop across the mosfet that you would need to account for. I like to keep things simple.

1 Like

Sure. They are better for prototyping and easier… maybe I can help you once you get everything up and running with the relais

maybe you could use a buck to get rid of the 1s charger

Another solution is to have a double balance lead, one goes to the bms and one goes to a plug on your enclosure. That way you can check all cells as they balance


Just get a diebiems and use the OLED or integration with the metr app I know it’s not the cheapest option or the smallest but it will do everything and more than what you require.


The other problem is waterproofing a 13-wire connection instead of a 2-wire connection. Also, how quickly it wears out with plug/unplug cycles.

That’s the old-school bipolar transistors. MOSFETs you can view more closely as like a 50mΩ resistor instead of a diode with a voltage drop.


I’ve wired my balance leads in parallel. This way I can balance my batteries (which are each 5s) with my BMS while also monitoring eat cells voltage through a maximum 6s battery checker from Hobbyking. I have the main negative from each balance lead on a switch so I can turn the voltage checkers on and off to see how balanced my cells are MSGR_PHOTO_FOR_UPLOAD_1531658522803 20180622_140311 20180715_224021


There’s this 12 pin waterproof connector. Yeah, one pin short for 12S.

I like DieBieMS a lot, even more now with the Metr Pro integration. It would be a go to solution for me if it wasn’t so bulky. I wish there was a charge only DieBieMS lite. You could then use it both inside the enclosure or outside (basically use it as a balance charger). I mean, you could use it as a balance charger even now. It would still be cheaper than getting a regular 12S balance charger. It would just be a complete waste of the nice features (e-switch, discharge protection) that you wouldn’t use at all.

I like that. I thought about doing something along those lines as well.

These cheap checkers use voltage dividers to get the individual cell voltage readings. If your switch is only on the negative lead and the other balance leads remain connected to the checker, I believe it will still discharge the cells a little bit. There will be a small current going across the resistors of the voltage dividers. Probably not a big problem, but still something to keep in mind.

After a little more thinking about this, I can’t see a good way of making it work with 13 relays/MOSFETs (switches) for 12 cells. I think I would need 24 switches, 12 of which would go to the negative of each cell and 12 to each positive. That’s still not a showstopper since both relays and MOSFETs can be found for very cheap.

What I see is a more serious problem, though, is that it would be pretty dangerous to wire things up in that way. If more than 1 switch in any of the 12-switch group got closed, that would create a short over the battery cells and destroy the battery. A bug in the controller would then be a disaster. I think I know how to make a hardware protection for this, but with that it’s already drifting away from the intended “simple solution”. I may still build this for science. :smiley: At least for 3S to start with.


nah once the negative rail is disconnected it can’t measure across the cells (pretty sure)

Not sure about that, I have a batterymedic from HK and I had to have a switch on the first 3 wires to cut the power, even then it was probably still drawing power

I didn’t say it would “measure” across the cell, but you would still have resistors between cells and small current would flow there, which would only be turned into heat.

With the negative connected you have something like this. Without it, you have this.

1 Like

Maybe something like this would work for toggling between individual cells. Good old binary tree. :slight_smile: For 8S, it would require 14 two-state relays, organized into three rows. Each row would be controlled with the same signal.

This would be pretty safe. It can never create a short across a battery cell, even if the relays in the same row don’t switch exactly at the same time. It could create a short across the charger, but that can certainly be dealt with.


12S would then require 22 relays organized into 4 rows.

Why not just using a smart bms and use it as „balance“ adapter on your charger. Just route the balance leads out of your enclosure on the waterproof plug. Than make an adapter plug from the bms to the enclosure and you good to go. Brick charger - smart bms - battery The smart charger is about 25€ and you can use it than on all 12s batteries you have.

I hope that’s working :sweat_smile: As min it was my plan when the smart bms finally arrive.

I don‘t like to don’t monitor the individual cell voltage with a usual bms. I don’t need the e-switch function of a discharge bms. And a fuse in line is way much smaller.

Edit: i‘m not 100% sure yet, but I think with the smart bms you even can set the balance voltage to 4.1v per cell (or any other value you want). This way you even can adjust the charge level and don’t need to worry that you hit your cells when „fully“ charged you need to hit the breaks


Yes, I thought about that too. Is there a smart BMS that you can interface with, though? Ideally one with a clearly documented communication protocol? I don’t want one that only sends data to my cell phone with a proprietary protocol. Plus, installing some Chinese app from an untrusted source on my phone would make me feel queasy.

You can buy bms modules from AliExpress that allow you to change all of the parameters from your phone or computer. I wanted to use one but it’s a little too big for my integrated deck

I‘ll get this one

Unfortunately it is not so much documtation about it and you will need an app which is luckily not only in Chinese. (iOS user so not sure how it is with apps you can get in the playstore and if you can trust them)

I know some guys here already use this bms and on endless sphere they also speak a lot about it and it seems to work pretty good.

As mine just on the way, so all I say is all I read here. Hope it will arrive next week. I can hold you up to date how it’s working if you want.

1 Like