Boiling Batteries – The Effects of Extreme Temperatures on LiPo Voltage

There is a very slight and recoverable output voltage drop when charged LiPo cells are subjected to temperatures above about 75C.

Cells that have been subjected to under-voltage, however, show a very quick and non-recoverable drop to 0 volts when they reach about 75C.

If you are one of the (very few) people who are interested in all the details, read on!…

Results

Here are the results of exposing 4 LiPo cells in various states-of-charge to a temperature range of about 0C-100C…

Screenshot_122615_023823_PM.jpg

There is a very slight voltage rise when they are frozen, and a very slight voltage fall when they are boiled. The voltage recovers when they return to ambient temperature.

Here is a zoom in on the drop during the boiling phase..

Screenshot_122615_024629_PM.jpg

I also tested a depleted cell, which showed a proportionally much larger drop to zero volts during boiling and did not recover when it returned to ambient (note different voltage scale)…

Screenshot_122615_025551_PM.jpg

It almost seams like something inside cell gives way at about 75°C and causes an internal short that permanently drains away the voltage.

Methodology

I used new LP601622 160mAh cells manufactured by EEMB Battery.

I fully charged all cells using an MCP73833 charge controller with a maximum charge current of 100mA.

For the 4 partialy discharged cells, I connected each to a 150mA load and ran it down for between 10 and 50 minutes to get a good state-of-charge spread.

For the depleted cell, I shorted it until there was no output voltage left, and then recharged it with the above parameters for about a minute to get a measurable residual voltage.

The batteries were prepared about 24 hours before the test started and allowed to rest.

Setup

2015-12-15 12.00.50.jpg

I used an Arduino to sample (1)the temperature and (2) the voltages of the 5 cells under test about once per second.

I used a waterproofed version of the DS18B20 sensor to measure temperature.

I put the cells and the temperature sensor inside a freezer bag and put that bag into a pot of water.  I used a vacuum seal bag to avoid air pockets and try to get a uniform temperature across the cells and the sensor. The water fully submerged the batteries and the temp sensor, but the Arduino was well above the surface.

To get the low extreme, I added ice to the water in the pot.

To get the high extreme, first I tried turning on the stove, but the magnetic field from the induction heater scrambled the temperature measurements so I quickly turned that off and instead poured boiling water into the pot.

2015-12-15 12.46.58.jpg

Data scrubbing

To remove the scrambled temperature readings caused by the induction heater, I interpolated values from nearest valid neighbors. These scrambled values represented much less than %0.01 of all values, and and likely would have matched the replacement interpolated values because of the short duration and the significant thermal mass of the pot of Water.

Original raw data set available upon request.

FAQ

Q: Why?
A: I am working an a problem were a device with a LiPo battery is subjected to a high temperature during a molding process during manufacture. These devices started failing QA at a slightly higher rate after the temperature of the molding process was increased. One theory was that the exposure to the higher temperature might have caused marginal batteries to drop enough voltage to fail testing after the molding step was complete.

I looked for data on the voltage response of LiPo’s to non-destructive temperature extremes and could not find anything at all. (There is lots and lots of data on battery lifetime while being operated in extremes, however!)

So I did the test!  I think the results are interesting and not at all what I expected.

Q: How did you make the pretty charts?
A: This turned out to be the hardest part of the whole exercise!

I started with Mathematica, but as far as I can tell there is no straightforward way to do a plot with 2 different ranges on the Y axis! Really? The advice from the official documentation is remarkably ugly, and after spending literally hours trying to get it to do what I wanted… I gave up. While I love Wolfram Language in theory, I seem to often end up falling into a holes of complexity and non-discoverability. Doing something as common and simple as making a 2-range plot should not requite this much work.

Then I switched to MATLAB. I saw this as surrender since MATLAB is so normal and has the built-in plotyy() function, which does exactly what I want. I got an initial 2-range plot up in about a minute (including importing the data from an ASCII file), but when I tried adding an additional series to the secondary y-axis, I hit a wall. Really? The documentation seems to show that it can be done and when I cut and paste the example it works, but there is no explanation as to what the  arguments actually mean and how they are used. So I think you are left to trial and error to try and figure it out on your own, which was not an option for me because Mathematica had already used up my soul.

So as a last resort, I fired up Excel and imported my (266,000 x 6) data set. Excel lumbered and creaked, but ultimately it (slowly) let me add my secondary axis and put the data sets on and even point-and-click color everything.

This experience left me broken. I want to hate Microsoft like everyone else, and I want to love the elegant symbolic world Steven Wolfram offers us, but ultimately I really just want to get stuff done and the tools are only a means to that end. Is it just me? Do you think the above Mathematica code is a reasonable solution to demand of someone who just wants to make a plot with a secondary y-axis?

 

 

13 comments

  1. Elliot Williams

    Not a real solution, but…

    For graphs I’ll either use R, because it’s what I used to use for school/work, or Python’s Matplotlib. Either of these make multiple axes easy.

    I’m honestly surprised that MATLAB/Mathematica make that difficult.

  2. Adam

    Cool article man.

    Regarding plot difficulty, you may consider trying out matplotlib in python. If you like it, the scipy ecosystem is the way to go… numpy, scipy, matplotlib and a bunch of associated packages. I use them as my go-to math environment, rather than mathematica and matlab. Takes a bit more investment, but is really cool.

    You should consider publishing this in an open-access journal like PeerJ. Might help you find more exposure for your work.

  3. BotherSaidPooh

    Interesting, thanks for posting. I noticed an unusual effect in some LiFePO4 batteries where if they have been overdischarged they sometimes recover the lost capacity if gently heated. No idea why though, evidently the damage thresholds are different on these.

  4. Ben

    “For the depleted cell, I shorted it until there was no output voltage left” – everything I’ve ever read about LiPos is very clear about permanent cell damage that occurs if discharging beyond around 3.0-3.2V. How do you know that this aggressive discharge was not the root cause of the failed cell? (the boiling may have just pushed it over the edge)

    ref. https://www.google.com.au/search?q=lipo+discharge+curve

    • bigjosh2

      This experiment is not about failed cells, only about measuring the voltage response of cells in various state-of-charge when subjected to temporary temperature extremes. I agree that driving a cell to under-voltage (by any means) will make it very sad. I don’t plan on using these cells for anything important after what they have been through!

      • Ben

        What was your conclusion re. the higher moulding temps and higher failure rates?

        It seems to me that excepting the cell that was fatally damaged before the test, the temperature variation from 5 to 80 C appears to have had only slight impact, from which they recovered after returning to ambient. Though there could well be life-time issues from the brief Arctic and tropical tour.

        • bigjosh2

          It appears that the higher failure rates on the line were not a result of the higher molding process temps. There could still be be life-time issues, but these would not show up until QA endurance testing later.

  5. Pingback: Boiling Your Batteries and the Effects of Extreme Temperatures on LiPo Voltage « Adafruit Industries – Makers, hackers, artists, designers and engineers!
  6. Alex

    Josh – thanks for posting this. I’m looking into using what sounds like a very similar process, i.e. overmoulding a LiPo. I’ve also found abundant information about safe storage and operating temps but you’re the first person I’ve come across who’s actually heating these as part of a manufacturing process. If you are at liberty, will you please tell me what temp and what duration you’re using for your process? I want to advise our supplier how ‘hard’ he can go with the cells while still ensuring performance of the finished pack and maintaining safety during the casting.
    Thanks!

    • bigjosh2

      The current process tops out at about 60-70C for about 2 minutes. So far the batteries seem to tolerate this without noticeable degradation.

      Interesting research…
      “Once the battery reaches approximately 85°C , the SEI on the graphite negative electrode begins to exothermically decompose.”

      http://jes.ecsdl.org/content/158/3/R1.full

  7. Matt

    I too am working on an overmolded LiPo design. Can you comment on the capacity of the LiPos after exposure to high temps? In other words, after a re-charge, are the batteries any worse for wear?

    • bigjosh2

      Of course it depends on the temperature, soak time, and battery – but there definitely can be a permanent loss of capacity when LiPos are exposed to heat.

Leave a Reply