Modifying a 4S 100A LiFePO4 BMS Module

For those who are following my YouTube channel, you would know that I am in the process of building a high capacity battery bank. When this project is done, I plan to use it with a 12V inverter as my backup generator in the event of a power failure. For the battery bank, I used eighty 3.2V 5.5Ah 32650 lithium iron phosphate (LiFePO4) batteries. These are arranged into 4 groups in series and each group consists of 20 cells paralleled together forming a 12.6V 110Ah battery bank.

Like lithium ion batteries, lithium iron phosphate batteries require proper battery management system (BMS) to protect cells from overcharged or over discharged and also to ensure voltages among the cells in series are properly balanced. For my project, I decided to use an inexpensive off-the-shelf LiFePO4 BMS module. Since I intended to use the battery bank for a maximum load of around 1kW, I would need a BMS that can handle at least 80A discharge current continuously. And to charge the 110Ah battery bank, the charging current the BMS module must be able to withstand should be at least 6A (at C/20 rate).

Based on these requirements, I found this 4S LiFePO4 BMS module on eBay (see pictures below). It is rated for a continuous discharge current of 100A and has a maximum charge current of 10A which is perfect for what I needed if these specs prove to be accurate. The only issue is that the balancing current this unit provides is only 36mA which is way too small for a 110Ah battery bank. But for $8 I was willing to give this module a try and hopefully I could modify it for higher balancing current.

From the pictures above, you can see that the circuit board of the module is actually very well designed. By the look of the plated traces and heavily stitched power and ground planes, I have no doubt that this this board would be able to withstand the rated current. The picture below shows the MOSFETs on the circuit board with the top heat spreader removed. The thin aluminum plate probably wouldn’t help that much in terms of dissipating heat especially given that it is mounted on the wrong side of the MOSFETs. But given that these MOSFETs are for switching operation only, the power dissipation should be pretty low anyway.

By looking at how the power plane splits, it appears that six or seven of the overall ten MOSFETs are responsible for the discharge current path and the remaining two or three are responsible for the charging current path.

The MOSFETs used here are Shenzhen Ruichip‘s RU7088R N-channel MOSFETs. According to the datasheet, the MOSFET has a Rds(on) of 6.5mΩ and an Ids of 40A. Spec-wise, these MOSFETs should be more than adequate for the job. Assume that there are seven MOSFETs sharing the load, at the maximum rated current, each MOSFET should only be dissipating roughly 1.3W (assume current is evenly shared among all seven MOSFETs. The power dissipation of each MOSFET is 14^2*0.0065).

From the high resolution picture below, you can see that two different types of SOT-23-6 ICs are used. The ones marked 12CB K607 are Hycon Technology‘s HY2112-CB single cell LiFePO4 battery protection ICs. The CB model has an overcharge detection voltage of 3.75V and over discharge detection voltage of 2.1V. If I were to build the protection circuitry myself, I would have chosen the HB model instead as it has a less aggressive over charge detection voltage of 3.65V and over discharge detection voltage of 2.5V. Altogether there are four HY2112-CB’s, one for each battery bank in series.

The other four SOT-23-6 chips (marked AB3A K602) are Hycon Technology’s HY2212 single cell LiFePO4 battery pack charge balancing ICs. From the picture below, you can see that the output from each HY2212 drives a HM2302A MOSFET (the marking is A2SHB), which is made by Shenzhen H&M semiconductor.

Now it is clear where the 36mA balancing current mentioned in the BMS datasheet comes from. When battery overcharge is detected, the connected MOSFET to HY2212 is turned on and the load resistor (100Ω) is connected across the battery to slowly discharge it so that other batteries connected in series can have a chance to catch up. Since HM2302A is capable of switching up to 2.9A, we can easily increase the balancing current by decreasing these 100Ω load resistors.

To reduce the load resistance, I paralleled a 13Ω resistor with each of the 100Ω resistor (see picture below). The end result is a 11.5Ω balancing resistor for each 110Ah battery bank. This corresponds to a balancing current of 313 mA. While I could increase this current even further since HM2302A can easily handle quite a bit more, I am mainly limited by the existing footprints on the PCB and thus the power dissipation of the resistors. While 300mA doesn’t sound like much compared to the 110Ah capacity of each battery bank, it should be able to properly balance these battery banks given that their charge states are similar. This is usually the case for batteries coming from the same batch.

Be Sociable, Share!

10 Comments

  1. Martin Whybrow says:

    I think the 6A charging current should be C/20 and not 20C

  2. Brian says:

    This is a fantastic write-up thanks. Im currently trying to figure out how to increase or disable the overcurrent protection on my 4s li ion bms as it keeps turning my drill conversion off. Could you explain the portion of this circuit that activates overcurrent protection and any ways you could modify this to give higher overxurrent protection or disableing it?

  3. Ronen gafsou says:

    What is the recomanded power supply for charging 4 s lifepo4 pack ?
    15 v or less?
    Thanks

    • kwong says:

      The maximum charging voltage for a single LiFePO4 cell is at around 3.6V (some manufacturer’s number is 3.65V) so the maximum for 4 cells 14.4 and 14.6V). If you use a 15V power supply, you wanted to make sure that with the BMS’s loading current the cells voltage do not exceed 14.4 to 14.6V.

  4. Edward says:

    Just wanted to say thanks for posting this. I popped the aluminum plate off my BMS and paralleled a 1/4W through-hole resistor on top of the existing resistor. I estimated the height of the legs so that I could get it close to the aluminum plate. I also noticed that the standoffs they used were about 0.5mm too tall, which necessitated the generous glob of thermal paste. I filed down the standoffs a little bit to get it closer to the FETs. I used some of the extra thermal paste to glob around the extra parallel balance resistors, hopefully some of the heat will spread to the aluminum.

    Did you notice a significant increase in heat with the full 313mA balance current? That calculates out to a little over a watt of heat in the two resistors.

    Thanks again!

  5. johnny says:

    Mr. Kerry,

    I have been reading your blog, and it is fascinated by how many things you can do, electronic wise. I came upon your discussion about these ebay bms. I just bought some of them, About to wire them up 4s to 4 100AH 3.2v paks. You also modified them by adding some 13 ohms resistors. All in all, I wanted to know how your project went? Did the bms actually perform as it should be? Any issues? Any info would be greatly appreciated.

    Thanks

    johnny

Leave a Reply to Martin Whybrow