Universal LiPo/Li-ion UVLO (undervoltage lockout)

Feature-packed over-discharge protection. Set the cell-count (2S to 7S), minimum cell voltage and dip-time below threshold. Fully hackable!

Similar projects worth following
This board will solve one problem in my (any maybe your!) workshop and projects:
Using whatever battery you want for your projects without it being deeply discharged and damaged! The system automatically disconnects your load when the battery drops below the set voltage per cell for the set period of time.

ONE board for all your needs from 8.4V to 29.4V (2 ... 7 cells). The real beauty is in the users freedom of choice. You:

- want to discharge your cells to 2.8V or better just to 3.2V to be safe? Go for it.
- expect heavy load-spikes near the cutoff-voltage which would set off any usual load-disconnect early? Set the dip-time to 5s, so your batteries can recover from the heavy load without the system turning off!

A reset from the trip-point can only be done manually by the user.

Short summary

Use this board for all your battery powered projects, especially those using lithium ion or lithium polymer cells. It cuts the load from the battery if the user-set parameters are met and prevents the cells from deep-discharge, which can and will destroy the battery in the long run.

Key features 

  • Works from 2 to 7 cells.
    • Battery-voltages vary depending on charge:
      • 5.4 … 18.9V @ 2.7V/cell (max. allowed repeated discharge)
      • 7.2 … 25.2V @ 3.6V/cell (nominal voltage)
      • 8.4 … 29.4V @ 4.2V/cell (fully charged)
  • cuts off load when the battery voltage
    • sags below a user set threshold
    • for a user-set duration
  • no automatic reset, user manually re-enables the device
  • super low Rds_on N-Channel MOSFET for output switching
  • supply current (ON, working): 1mA
  • quiescent current (OFF): < 1µA

Basic mode of operation

With three potentiometers you set the cell-count, the cut-off voltage per cell and the time the voltage needs to be below the threshold to cut the load from the battery.

The battery is connected with an standard XT60 connector, which is common for Li-Ion and Li-Po batteries. The load is connected on the opposite side of the board with screw terminals. It is initially off.

The board is activated by a short press of a button and the load is switched on if the battery voltage is high enough.

  • 13 – square-inch version works ✔

    Jan09/18/2019 at 07:07 0 comments

    Update 2019-10-03

    finally working version - see the 10 ohm resistor :)

    Phew, that was a journey. This project really started killing me slowly... It worked at first but the damn thing tried to die randomly. As I put a 5V6 zener directly into the 5V rail (the reg. has a short circuit current of 20mA only so the zener does not need an resistor) at least the Attiny861 follow the regulator each time it blew...

    I tried everything and always thought: Ah, this works now. UNTIL it blew again. Mostly on (re)connecting the LiPo battery. So it had something to do with the inrush current.

    When I talked with @Simon Merrett about the issue, he suggested to limit the inrush current to the regulator with a resistor. First I though this is a bad idea because additional resistance in the path means more (quiescent) current.

    But I gave it a go. In the above picture you see a 10 ohm botch-resistor. It effectively kills the inrush-current to something which doesn't destroy the regulator.


    Read more »

  • 12 – square-inch version ordered ✔

    Jan08/15/2019 at 10:33 0 comments

    Update – 20190826

    You always seem to find errors when it's too late for changes :)

    • used interrupt pin in the "wrong way":
      • switching it to +Vbat (via 50k, so the high voltage doesn't kill the pin)
      • forgot pull-down resistor

    The right way would've been: using the internal pull-up and switching to GND...

    • C4 should've been directly tied to the regulators input. It is connected correctly to +VBAT and GND, but not as close as possible to the regulator. As the whole board is only 25x25mm it shouldn't be a problem though...

    Update – 20190816

    Today I finished my square inch design and ordered it at Aisler:

    online shop rendering

    This time I added a stainless stencil for top and bottom because I hate adding solder paste with a toothpick or syringe :)

    Read more »

  • 11 – use case ONE: mobile boom box

    Jan08/06/2019 at 16:34 0 comments

    Update – 20190809

    Repaired speaker

    Speaker repair is done. Was quite the easy process, even glue was included. Next thing will be to mount the amp and battery etc. Would love to add both into the case but there's not enough spcae for both...

    Read more »

  • 10 – next iteration

    Jan07/22/2019 at 07:41 0 comments


    New board will look something like this. The above screenshot is fully routed and DRC'd. Should work :) Size is 25 x 40mm (1" x 1.6"). MOSFET and two diodes are on the bottom copper side. I'd love to get rid of the trimmer pots but then I'd loose all comfort which was a main goal of this project: using one board for all project-needs without the need for an PC to change settings...

    Read more »

  • 09 – first DC/DC tests

    Jan07/04/2019 at 19:31 0 comments

    Update – 2019-07-15

    The ripple-measurement screenshots I originally posted below were done with the ground-wire-alligator-clip-method and not the correct direct-connection method. See this Application note by Analog [p.5] for more details how to do it correctly. Analog doesn't call it "Incorrect Ground Loop Method" for no reason...

    Measuring this way (and setting the probe to 1x = no amplification) the ripple reduces to the more reasonable 30mVpp I mentioned in my updated log below.

    Update – 2019-07-10

    Using the DC/DC buck converter with nearly 30mVpp ripple the ADC readings by my Attiny861A test board are always within 0.05V of "jitter" between readings (each reading is an average of 10 single readings).

    So, the circuit seems to work just fine. Problematic thing is the "no load"-current of nearly 0.55mA which is too much drain on my projects batteries for my taste.

    We'll see where it goes from here...

    Read more »

  • 08 – thoughts about linear regulators

    Jan06/28/2019 at 07:15 4 comments

    There are some laws that just can't be bent. Ohms law is one of those. It dictates the law of conservation of power, which means: P_in = P_out.

    So, you can't just expect the small linear regulator in a SOT23-5 case to convert 40V to 5V and 100mA without getting hot.

    The power dissipated by the regulator will be:

    The biggest "drivers" here are the input voltage and the current at the output. I need at least 10mA to guarantee safe operation while switching the MOSFET. The ground current usually is in the range of 100µA.
    With a full 8S (yes, I want to extend to this cell-count) battery at 33.6V this means around 0.3W of power which the regulator needs to get rid off.
    SOT-23 cases feature very bad thermal design with around 170°C heat-up per W dissipated power. That's the "Junction to ambient thermal resistance" value in the datasheet. The value is so high because the plastic case has no metallic pad which could transfer the heat into the PCB much more efficiently.

    So, 0.3W x 170°C = 51°C heat on top of the ambient temperature. This would be okay on paper but it creates a hot-spot on the PCB which spreads to other parts which have a drift with temperature...
    The paper linked above has good design techniques for this style of case. I'll definitely try that anyway as the DC/DC chips I want to try are in that case too. Richtek has some good info on this as well.

  • 07 – new linear regulator tests

    Jan06/26/2019 at 19:30 5 comments

    Update 2019-07-15

    I tested two of the regulators. Both work quite well and didn't release the magic smoke yet. Even after the the repeated inrush-current tests (repeatedly connecting the fully charged 6S lipo battery) with the load connected.

    The MD7350H does indeed use the full 3% output voltage tolerance stated in the datasheet and is my least favorite part.

    The much smaller ME6203 works perfectly up to 38V and limits itself when short-circuited. It puts out perfect 5.00V under up to 20mA load and has a smaller footprint than the MD7350H. Using bigger PCB traces on all three pins will wick away enough heat to ensure proper cooling at 5V/10mA out (max).

    At 2.7µA current consumption with no load (µC in power down state) it's well within what I need for low battery discharge when the circuit cuts the connection. I think my next set of PCBs will use this regulator!

    The SY6345's are still in their anti-static bag and will be tested next.

    Read more »

  • 06 – new DC/DC buck design

    Jan06/25/2019 at 20:41 0 comments

    After all but the last regulator blew, I wanted to test a DC/DC power supply next. So I quickly made a little board around the Rohm BD9G102G-LB DC/DC buck regulator which is quite close to the reference design from the datasheet.

    Aisler online rendering
    KiCad rendering - parts included

    The boards are 25x20mm in size. I use a bigger inductor than is probably needed for 20mA max output, but I wanted to try a few different ones and look at the output waveform on my scope. Rally can't tell how the ripple will affect the ADC readings of the chip. We will see how that works out. Found a nice paper on reducing ripple by TI...

    I'd love to use a small 1206 chip inductor to keep everything nice and small! Resistors and caps will be 0603 instead of 0805 too for the final board.

    I ordered three copies of the board together with all the parts for 18.30€ from Aisler in Germany, so I expect them to arrive in 7 or 8 days as they usually do. The parts are sometimes a bit more expensive when ordered through Aisler, but you don't have to come up with other stuff to get to 50€ free shipping at Digikey, so that's fine I guess...

    Hope this design works :)

  • 05 – project is not dead yet

    Jan06/21/2019 at 09:03 7 comments

    So, after having so much trouble with the failing regulator I finally found the culprit: the regulator needs at least 4.7uF of ceramic capacitance at its INPUT to keep it from blowing up. 

    This does generate another problem which is arcing when connecting a battery, caused by the near short circuit behavior of an discharged cap... 

    So to keep things short I found a few other regulators that I want to try:

    I'll decide for one and come back to you with a fresh design. 

  • 04 – unpredictable? regulator fails :( HELP!

    Jan06/17/2019 at 19:12 0 comments


    After I did the first tests with the first board (and writing my very happy post about it) the next day I connected the board to a fully charged 6S LiPo battery again and got... the magic smoke.

    the circuit in question

    After inspection of the board it was obvious that the regulator blew. I double checked all the parts in the schematic, found no obvious error and re-worked the regulator and Atmega328. It worked a few times after that.

    A few days later I even did rests with the same LiPo and a 150W electronic load to test the MOSFET for heat dissipation. Worked like a charm.

    Then on some random re-connection of the battery blew the regulator (and micro) again. DOH!

    Tests I did

    So, I did solder just the TPS70950DBVR on an breakout board, added the caps needed (50V rated, low ESR MLCC) and did some tests again.

    Leaving EN floating (according to the datasheet) and with no load connected, the regulator seems to be super sensitive to repeated quick connection of 30V with a high current capability (DSP5005 srt to 30V/5A). 

    It seems like the inrush-current can kill the regulator?! At least that's what happened a few times. I'm through 6 of my 10 regulators now...

    Did the same tests with an 100 ohm load resistor to simulate 50mA output current and saw some heavy heat-up of the regulator with a over-temp shutdown by the regulator. With 20mA output it got quite hot but didn't shut down.

    Connecting the 30V current-limited to like 100mA seems to reduce the chance of the regulator popping.


    I really can't reproduce the error reliably... The inrush-current theory is just that, a theory. I tried several other things which I thought could be the reason for failing, like: too high enable voltage, wrong caps, other style of caps, wiring, ...

    To sum things up: the boards are NOT going to production any time soon. Did check several other regulator options but can't seem to find any good one yet.

View all 13 project logs

Enjoy this project?



Bharbour wrote 10/03/2019 at 21:20 point

Hi Jan,

Am I missing something? I don't see a files section.


  Are you sure? yes | no

Jan wrote 10/04/2019 at 06:53 point

Hi @Bharbour you're right. There's been so many sudden deaths of all the various revisions that I haven't uploaded files yet.
I sure will when everything is working fine, which it will eventually (I hope) :)

  Are you sure? yes | no

Simon Merrett wrote 04/28/2019 at 10:38 point

Hey @Jan I know this is a preliminary version but is there a schematic you are happy to share? 

What regulators are you using? 

Also, what MOSFET do you envisage using and at what price? Maybe we can find something with equivalent RdsOn and logic level driving? 

What about a "Pro" version which adds JST balance connectors and has the ability to monitor each cell individually? 

Ref the pots, what about fixed resistors and pin header bridge jumpers? Just move the bridge jumper across the correct pair of pins for your configuration. Not as compact as pots but doesn't require a screw driver / flat tip to switch. Dip switch would be the same but I don't think it's cheaper than the pots. 

To shrink the board, can you put the FET and connectors on the bottom? 

For the microcontroller, how about the new ATtiny range (404, 814 etc)? Given the low speed requirements for the processing, they have some fantastically low current options when running on their internal 32kHz oscillator. 

  Are you sure? yes | no

Jan wrote 04/30/2019 at 16:55 point

Hi @Simon Merrett

Let me address everything individually:

1) schematics are in the files section

2) the regulator is a TPS70950 which works up to max. 30V input

3) you're right with the MOSFET. I changed it to an ultra low Rds_on one (1.1mΩ @ 4.5V gate) so I can ditch the driver

4) a pro version is not planned yet. I have to take sume things as granted, which in this case includes propperly balanced/charged battery packs

5) I used pots because the user can set the setting quickly and individually without the need to fling a soldering iron or something.

6) all alternatives to tiny pots seem to use more board space :(

7) board shrinking will be done in the next iteration!

8) the micro will be changed to some easy to program Attiny.

I appreciate your very eye-opening and competent help so far!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates