View All Posts
Want to keep up to date with the latest posts and videos? Subscribe to the newsletter
HELP SUPPORT MY WORK: If you're feeling flush then please stop by Patreon Or you can make a one off donation via ko-fi

As you wonder around town, have a look in the gutters (or if you’re feeling brave rummage around in pub ashtrays), you’ll notice a pretty nasty trend. There are now a large number of disposable vape devices that aren’t getting recycled.

It’s terrible for the environment, but it’s a great source of free lithium cells for our projects.

So far, I’ve only managed to score a couple, but I know of people who can’t seem to stop finding them. I guess it’s the same people who always seem to find pennies when they are walking around.

The first battery I found was still lodged inside it’s pretty grotty container. The top had already been lost and I was able to pull the base off with some pliers.

First Battery

I pushed out the contents with a long screwdriver, taking care not to poke the battery directly.

It’s pretty disgusting and it is covered in the special magic fluid. I really regretted not wearing rubber gloves for this procedure and in the future I’m going to be a lot more careful.

First Battery

If you watch the video above you’ll also see a slightly scary moment when I was snipping off the atomiser and released a final puff of smoke. I briefly thought the battery was about to blow up!

The second battery looked like it had been run over and I initially thought the cell had been squashed, but it’s actually the same shape as the first one and when I tested its voltage it still had 3.7 volts left.

Second Battery

With both the batteries I tacked on a couple of wires and charged them up using a TP4056 based board. These boards are pretty nice and have battery protection built in - which is good as these free cells don’t have any protection PCBs.

TP4056 Board

Each cell charged up in an hour or so to 4.2 volts.

The first battery claims that it has 500mAh capacity and remarkably connecting it up a battery capacity checker gave this exact value.

500mAh Capacity

The second battery claims 550mAh capacity and our battery tester gives us 566mAh.

566mAh Capacity

Now this battery tester is pretty simple and it’s not particularly accurate. It can be calibrated to improve the accuracy, but even with that it’s not very good. It does give us a reasonable estimate though.

So I decided to splash out on this fancy pants tester since I’m planning on trying to find more cells.

New Tester

For the first 500mAh battery I got 440mAh.

Battery Tester

And for the second 550mAh battery I got 567mAh.

Battery Tester

So we’re still getting pretty good results and I may have dischared the first battery before testing it.

Playing around with the cheap battery tester got me thinking. It’s not doing anything clever - it should be possible to recreate it with parts I’ve got lying around.

There’s a 0.02 ohm shunt resistor along with an op-amp for sensing the current. And there’s a MOSFET for switching the load into the circuit.

Under the display there’s a seven segment driver and an MCU. There’s a great tear down video here of this device along with some details on why it’s not very accurate.

All the board is really doing is measuring the current and then integrating that over time until the battery voltage drops below a threshold. This gives us the Ah capacity of the battery.

\(\int_{0}^{T}I\ dt\) \(while\ V>=3.0\)

I’ve got a whole bunch of ESP32’s lying around including this one with a nice colour display and the ESP32 has a built in Analog to Digital Conterter so I’ve we’ve got something we can use to build our own slightly crappy battery tester.

TTGO Display

If we know the resistance we are discharing the battery through we can calculate the current and sum that up over time to get the Ah value.

I’ve sketched out this very simple circuit - the ESP32 only goes up to 3.3 volts so I’ve got a simple voltage divider of two 10K resistors halve the maximum 4.2V that the battery will output down to 2.1V.

To discharge the battery I’ve got a 5W 7.5 ohm resistor and I’m switching this into the circuit using a power MOSFET. This will let us switch off the battery discharge when the voltage drops too low.

The battery will continue discharging through the 20K divider, but we’re not going to be leaving it connected forever so this should not be a problem.

I’ve also added a little indicator LED to the gate of the MOSFET so we can see when it is turned on.

Battery Monitor Circuit

When the MOSFET is turned on, the total resistance that the battery will be connected to is 8.6ohms - so we’ll use that to calculate the current flowing.

Discharge Resistance

I’ve also measured the two potential divider resistors to make sure my voltage calculations are correct.

Having said that, the ADC on the ESP32 is notoriously inaccurate, so we’ll only really be able to get approximate values without doing some calibration. It’s also very noisy, so I’m taking multiple measurements and then averaging the result.

ADC Inaccuracy

The software is very simple. We start off in an idle state with the MOSFET switched off.

When we connect the battery we see the voltage go above 4v and switch into the measuring state. We turn on the MOSFET, reset any calculations. And then we start to acumulate the current we measure over time.

When the voltage drops below 3 volts we switch back into the idle state and turn off the MOSFET.

The battery capacity can then be read off the screen.

State Machine

It works pretty well - we’re in the same ballpark as the other battery tester. Though both that and our DIY version are going to be pretty inaccurate.

My measurement of the total resistance when the MOSFET is turned on is probably not very accurate, my multimeter is a pretty cheap one. And we are dealing with the ESP32’s very inaccurate ADC.

I’ve also recorded the battery voltage on the serial monitor every second so we can plot the discharge curve of our cells. This is the 500mAh cell.

500mAh Discharge Curve

And this is the 550mAh cell.

550mAh Discharge Curve

These seem to match the curves that I see online for batteries so that’s a pretty good result!

We can also get an estimate for the internal DC resistance of the batteries. We can see that the battery voltage under load was 4.078V, assuming the battery was fuly charged to 4.2V we’re dropping 0.122V in the battery.

Given the current of 0.474A we can calculate the internal resistance to be approximately 0.26ohms.

This is obviously a very approximate calculation given all the errors in the our system.

So we’ve got a couple of healthy batteries, you would think we can go ahead and use them in our projects - well, not so fast batman.

But there’s one issue - there is no battery protection board.

That’s fine if we always use our charging board with the built in battery protection, but we really should not use these bare batteries anywhere else. We need to make them safe.

So I’ve bought some battery protection boards, these boards feature the DW01 protection chip along with the dual mosfet. It’s exactly the same circuit as we have on our charger board.

Battery Protection Board

I’ve tacked a couple of wires onto the output pads. And I’ve soldered the tabs to the battery tabs.

Everything is now wrapped up in Kapton tape and we’ve got a couple of safe free 500mAh batteries!

Protected Batteries

We can see this in the discharge graph - I’ve changed the code so that it does turn off the MOSFET unless the voltage drops below 2.5V. But as you can see when we drop to 3V the battery protection cuts and we drop down to 0V, this makes our code turn off the MOSFET.

3V Cut Off

You can also see the effect of the batteries internal resistance - as soon as we remove the load the voltage jumps back up above 3.0V.

So, keep your eyes peeled and help to make the world a slightly cleaner place by recycling these batteries.

The two battery testers I’m using are available here:

And you can get the ESP32 board with the display from here:

You can watch a video version of this blog post here:


Related Posts

DIY 20,000mAh Power Bank - Was it worth it? - In this blog post, I embarked on a fun project to create a DIY power bank using two 10,000mAh lithium cells I had lying around, and a charge control board. After some tinkering and tests, I learned that measuring power bank efficiency requires more than looking at amp-hours. With some help from a friend, I found out our power bank was actually over 93% efficient, a pretty fantastic result. Despite some challenges with certain devices not drawing their full potential power from my power bank, I concluded that while it was an enjoyable project, buying a ready-made power bank might be more convenient.
I got this feeling bezos is watching - Discovered my Hue switch battery performance is correlated with room temperature after a nifty web scrape of Amazon's device usage history. While it's a given that batteries are temperature-sensitive, actual data from my own living room provided a neat confirmation, graphing a daily pattern. Wanted to go green with a rechargeable lithium coin cell, but the voltage risk to the ATmega256RFR2 on the PCB is a no-go. For now, it's back to the humdrum world of regular coin cells and unexciting battery charts. Dive into the video for a deeper geek-out on this!
Making hard pcbs at home - In my latest DIY adventure, I explored nickel plating to harden PCBs at home. I was inspired by a slick resistor box design I found through EEVBlog, which had an incredibly cool switching technique but left the PCBs vulnerable to wear from contact scraping. Despite some initial mix-ups and challenges—like dealing with steel instead of pure nickel, using the wrong voltage, and dealing with contamination—my experiments led to some promising results. I even compared the scratch resistance of plated vs. original PCBs in a very informal test. I wrapped up by sharing some handy links for anyone eager to dive into their own nickel plating escapades. It's clear that more experiments are on the horizon!

Related Videos

Another Street Battery Salvage - In this video, I plucked a battery from a Honey Melon street crystal, ending up with another 500-milliamp hour battery to add to my growing collection. After checking the connection, I added a protective PCB and tested the battery - a reasonable 3.5 volts at a flat level. Following the safe soldering of wires and wrapping it up, I hooked the revamped battery to my charger. It showed promising results, charging quickly at one amp with voltage visibly on rise. After a full recharge, I performed a load test which unfortunately gave a disappointing 311 milliamp hour. It falls short of my other salvaged batteries – 500 and 550 milliamp hour, but nonetheless, it’s a fine addition to the collection.
Boost Battery Life: DIY Rechargeable LED Lights Hack - Have you ever wanted to hack your battery-powered LED string lights and make them rechargeable? In this fun DIY project, learn how to replace disposable batteries with lithium cells and transform your LED lights by using a charging board, resistors, and other simple components.
Upgrade Your Old Keyboard: USB Rechargeable Hack! - Learn how to convert an old wireless keyboard into a modern rechargeable one by reusing components and 3D printing a compartment for a lithium battery, saving money and giving it a new lease of life.
Reviving FREE Batteries: Test, Make Safe & DIY Capacity Tester! - Learn how to test and safely use free batteries in DIY projects by building a homebrew battery tester with an ESP32 and a simple circuit. Find out how to make batteries safe by adding protection boards, and see the results of testing battery capacities and discharge curves.
Mysterious Battery Drain Solved: Rechargeable LED Lights Mystery - Discover the intriguing issue of faulty tp4056 chips causing battery drainage and how to solve it using a DIY power board. Learn how a customized PCB, created with PCB way, can be designed to improve battery life and ensure a stable voltage output.
HELP SUPPORT MY WORK: If you're feeling flush then please stop by Patreon Or you can make a one off donation via ko-fi
Want to keep up to date with the latest posts and videos? Subscribe to the newsletter
Blog Logo

Chris Greening


> Image


A collection of slightly mad projects, instructive/educational videos, and generally interesting stuff. Building projects around the Arduino and ESP32 platforms - we'll be exploring AI, Computer Vision, Audio, 3D Printing - it may get a bit eclectic...

View All Posts