I'm trying to build a circuit that balance each cells from lipo battery by discharging them until all of the higher voltage cells are the same voltage as the cell lowest in voltage. Most of the time around 3.8V.

Arduino will be used to monitor the voltage of each cell and to control the mosfets. My electronics knowledge is near to nothing, so I would be glad if someone can help me verify if the circuit below would work.

Will be using a 1Ω 20W clay resistors to discharge each cells, with 1Ω resistance, the highest it would discharge is 4.2A (Max voltage of a lipo would be 4.2V), around 18W at 4.2V.

Mosfets I'm having in mind is FQP30N06L or CEP6030L, both a logic level mosfet, which doesn't matter at the moment until I can figure out whether the circuit would work.

enter image description here

  • 1
    \$\begingroup\$ How you drive those MOSFETs is the really tricky bit but yes, the circuit could work but you have no detail shown about the hard bits. \$\endgroup\$
    – Andy aka
    Nov 21, 2016 at 14:40
  • \$\begingroup\$ @Andyaka Planning on using Arduino output pins to drive logic-level MOSFETs. \$\endgroup\$
    – Infrasonic
    Nov 21, 2016 at 14:42
  • \$\begingroup\$ @Infrasonic How? Draw a diagram? Just connecting the gates to your MCU will set fire to your Arduino and/or battery pack due to the difference in voltage between them. \$\endgroup\$
    – winny
    Nov 21, 2016 at 14:46
  • \$\begingroup\$ @winny Right..I totally overlooked it, just realized there is no place for the ground of my arduino to go to in order to drive the MOSFETs. Thanks for pointing it out. \$\endgroup\$
    – Infrasonic
    Nov 21, 2016 at 14:53
  • \$\begingroup\$ The hard part is driving the gate. You cannot just "drive it with an Arduino". You need to drive the gate above Vgs-threshold (2.5V for the first datasheet) to turn it on. If your bottom cell is on GND, then this means the gate of the topmost FET Q1 has to reach 23.5V (4.2V*5 cells+2.5V = 23.5V) to turn on. And you can't just ground the gate to turn it off else you will exceed the +/-20V absolute max Vgss. You show the easy part. Biasing and driving is the tricky part :) \$\endgroup\$ Dec 23, 2016 at 0:27

1 Answer 1


Your circuit looks good. But you did not show how you are going to drive your MOSFETs which is the important part. For this I have many thoughts that will not fit in this answer. I will recommend two for you:

  • use LTC6804 chip from linear technology
  • or use Solid State Relay (SSR) instead of MOSFET

LTC6804 is an integrated solution that will allow you to measure each individual cell with balancing. SSR is a simpler solution with an isolated driving signal which will greatly reduce your design complexity but will not help directly in voltage measurement. Beware of how you will sense voltage using Arduino. I am worried you might wire a short circuit!

  • \$\begingroup\$ I did a search for LTC6804 and it's out of my budget. Would it work if I used potential dividers with 1k or 10k resistors and read it with the analog inputs of my Arduino? As pointed out I just realized there is no easy way for me to drive the MOSFETs with my Arduino. Looking into SSR now, due to the budget constraint, is it okay to use the ordinary relays instead of SSRs? \$\endgroup\$
    – Infrasonic
    Nov 21, 2016 at 14:57
  • \$\begingroup\$ A voltage divider will not work due to the potential difference between the Arduino and you circuit. Use AliExpress or eBay for cheaper alternative of LTC6804, use search term BMS (Battery Management System). And yes, you can use ordinary relay instead of SSR. \$\endgroup\$
    – Chehadeh
    Nov 22, 2016 at 16:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.