[Nick] was tasked with building a battery capacity tester by one of his teachers in order to test some aftermarket batteries that were purchased for their Vex robotics lab. The batteries were cheaper than the official version, but boasted more than twice the capacity. Fairly skeptical of the rating, he got to work designing his circuit.
He originally planned on discharging the battery through a resistor and measuring the voltage with a PIC microcontroller. After prototyping the circuit, he found that the PIC did not have enough storage space for the data he was collecting, and that there were issues with fluctuating current as the voltage decreased.
Undeterred, he built a new tester using a Teensy microcontroller and a different discharging circuit using a LM317T. This second version not only included an LCD screen to track the discharging process in real-time, but it also dumps all of the data and calculations to a spreadsheet on the computer connected to the Teensy.
The capacity tester works pretty well, according to [Nick]. He says that most batteries overestimate their capacity, and that his meter is getting readings within an acceptable variance when testing known good batteries. What about those knock-off batteries from China? He discovered that they can hold about half the charge that they claim – it’s a good thing he decided to test them out!
While he provides the software he used for the tester, there are no schematics to be found. Check out some of the other battery capacity testers we have featured in the past for tips on building one yourself.
The project is great, just shows what you are buying for less money is not always as advertised.
Still, I found some flaws: the LM317 does not work well as a constant voltage source of 2.5V from a single lithium cell and that may be seen from the graph that shows the current variation. Since it is not a true constant current load there is no point for the LM317.
The simplest approach would have been to use a resistor as a load in series with a resistor for measuring the current. The current measuring resistor should have a better precision, like 1%. That way the current could be calculated better.
If things would have been pushed further, there could be a simple way to make the circuit as a constant current load, using a comparator and a transistor and sense resistor. The current could be set from a reference voltage which could be a filtered PWM. But then…that might complicate things too much.
The circuit is really simple. It’s just a 317T regulating the voltage down. The output is then run through a power resistor. This allows the drain current to remain relatively stable. Then, I used two A/D converters to measure current and voltage.
The voltage reading is dropped down using a simple 1:3 divider.
The other wiring is just for the LCD, which isn’t really necessary, but there are tons of resources available if you want to add one to a project. I made a mess out of the wiring, but it works.
“After prototyping the circuit, he found that the PIC did not have enough storage space for the data he was collecting, and that there were issues with fluctuating current as the voltage decreased.
Undeterred, he built a new tester using a Teensy microcontroller a”
is it a joke,? do you realize it equal to saying “PC didn’t have enough storage so he use Alienware”
therian – Actually, a Teensy is an Atmel microcontroller. There’s a difference. The PIC that I was originally using was a 12F675 which really doesn’t have much data storage ability. The Teensy worked much better because I could use its built in USB functionality to enter data directly into a computer, eliminating any need for internal storage and allowing me to collect as much data as I wanted.
bogdan – Thanks for the ideas. I originally wanted to make this project more accurate, but I ended up running into some issues. I was going to PWM a MOSFET to get a constant current, but I couldn’t get some things working. I needed to get the project finished pretty quickly, so I just simplified it. The 317T is just to keep the current a bit more stable over most of the voltage range, and it does work pretty well until the battery gets too low to sustain it. Hopefully I’ll be able to improve the circuit a bit more and make it more accurate, but I think this project turned out pretty well for the minimal cost (I only used stuff I had lying around).
@Nick Hartman, indeed the circuit is really simple, but a regulator like LM317 requires minimum about 3V difference between output and input to operate properly. That is, for 2.5V output you need 5.5V input minimum, which is higher than a lithium cell.
This is why your 2.5V output doesn’t stay at 2.5V the whole time, so this is not better than using another resistor in place of the LM317. If you look at your graphs you can see that the current varies just like the battery voltage. If you had a true constant current load, then the current would vary much less when the voltage on the battery.
Do note that I am trying to give some constructive criticism here, your project is very good and simple.
@therian you do realize that it is about a PIC and not a PC ???
@bogdan, I’m not using single cells. I’m using lithium battery packs that are 9.6V and 7.2V. They’ll maintain the voltage needed during most of the discharge. Thanks a lot for the comments. The reason that I wanted this posted was so that I could be corrected. I’m still pretty new to this stuff, so I knew someone would point out something that needs to be fixed.
I think therian means that he could have streamed to the PC with the PIC, demonstrating that the issue is not about the best internal storage but the best serial comms available.
indeed the lm317 has a minimum Voltage it needs to work with.
It’s odd to say the PIC didn’t have enough storage because PIC chips can be obtained with huge amounts of storage and external memory can be added.
You could also increase the interval between measurements/storage to reduce the amount of data needing storage.
I also found that line about the pic failing misworded. He picked the wrong chip. Thats what therian is saying. If your harddrive runs out of space you dont buy a new computer, well unless your incapable of figuring out what kind of drive you need to get .
On another note, some of the china cells require a cycle threw a conditioning charger before they will meet their specs (maybe). These chargers (when i was racing electric RC cars) were 600 – 1000$ or more. Usually the cells that require this note it and are sold as unmatched cells. These chargers also match the cells. You would probably know it if you bought these type of bulk unmatched cells.
Capacity will vary with discharge current so it is normal to quote capacity based on a discharge rate that is part of the specification of the battery. Also the terminal voltage per cell for will also be specified for the battery type. For lead acid batteries a 10 hour rating and 1.75v terminal potential is a typical standard but you will also find batteries for sale with a higher capacity as the base on a 20 hour rating. For a fair test you should really use an hour rating and a predetermined terminal voltage.
Hmm, china bashing in the write-up? He said:
“The Chinese battery, rated at over 6000mAh came out to be a little over 3000mAh, which was better than the official Vex batteries and cheaper, so that is what we are going to be using in the future”
So half what is claimed but still better.
The main reason for not using the PICs wasn’t because of storage. I could have fit all the data onto it and I did have larger ones available, but I thought it would be easier to have a system where I wouldn’t have to retrieve the data from the uC after every test. I had a Teensy too, so I decided to put its USB keyboard function to use. I know it’s way overpowered and I could have used the PIC, but it was just so much easier and more convenient to use the Teensy. Also, I only used stuff that I had lying around. I didn’t want to purchase anything new for this project.
nick, are you sure about you lithium battery pack voltage?
they usually come in multiples of 3.7V
Actually, they aren’t lithiums, they’re NiMH and NiCd. Sorry about that, the quick demonstration run was a lithium. The actual tests were done on the nickel batteries.
have you considered making the discharge rate something you can change? rate of discharge has a large influence on how many watt hours you can obtain from a given battery, with lower amperage loads giving higher overall capacity and high amperage loads giving lower overall capacity.
if you look at datasheets for commercial primary (non rechargable) cells like AA batteries, they rate the total capacity as a function of the rate of discharge, for example 0.2C where C is the ampere hour capacity of the cell; a 2Ah cell discharged at .2C would be 400mAh discharge rate. if you know what type and size of cells are in the third party packs, you can determine the correct discharge rate for analysis; this will give results that can be more directly compared to the original cells.
@rit – I have actually considered the idea. I was thinking of using a potentiometer to adjust the output voltage of the 317T which would allow me to adjust the current easily. I haven’t actually looked for datasheets for any of the cells though. That does sound like a good idea.
Visit eevblog.com site wand look qat video about batteries. There is a lot of usefull information. Also video about current laod could be of some use to you.
This is a cool project – It would be great if you ran some tests on common battery types/sizes so people could reference them. This would be especially helpful if you changed the circuit (as someone mentioned) so that the output current is adjustable.
I have worked with Alkaline batteries quite a bit for projects at work and I’ve done something like this manually. From my experience, battery datasheets are often lacking in details.
Hi Nick, have you seen these videos by Dave Jones.
http://youtu.be/R8hTQXqURB4
http://youtu.be/uT4hKd66UY4
He works through some of the details here.
other than failing at advertised quality, how do they compare as their real-world specs?
HaD post says “twice the capacity for a lower price” but were actually “same capacity for a lower price”…
… so how do they rate as far as cheap replacement batteries? Poor materials and construction quality? All things considered would it be better to just go with the “official version”… how official is official? branded?
LIES!
@phnx – The official batteries were the Vex branded ones. The other ones were unbranded Chinese batteries. The Chinese ones were both cheaper and had a slightly higher capacity from my measurements.
As for the quality of the batteries, they seems to be pretty good for their price. I’ll see if I can get a link to the battery. I don’t know exactly where my physics teacher got them. He says that he’s going to be buying the cheaper ones now instead of the Vex ones in case you wanted to know.
LOL. Arduino. That’s a nice way to show you don’t know nothing… ’bout anything.
I know I shouldn’t feed the trolls, but…
@Myke – Calm down. I used it because it was there and it was easy. I had a working prototype on the PIC, but I wanted to expand my project and did so on the Arduino platform. You can complain all you want, but just because I used the Arduino system doesn’t mean you can make the assumption that I don’t know anything about other micros. I’ve used PICs, ARMs, MSP430s, and regular Atmel micros. Sure, I’m not an expert in any of the systems, but I’m 17 and have learned everything I know about microcontrollers and electronics in about two years.
Don’t bother commenting if you’re going to make pointless assumptions that don’t help anyone.