Rechargeable Battery Capacity Tester


If you are like most people, you likely have a mixed pile of rechargeable batteries sitting around with no idea as to what kind of charge they can hold. You could watch a voltmeter for a few hours while you drain each and every battery, noting when it drops below its stated voltage – but then again, you have a life.  Instead of wasting away in front of his multimeter, [BrianH] decided he would build an automated battery capacity tester to do the job for him.

He created a simple circuit that drains any AA battery, NiMh or NiCd, and records its useful capacity in milliamp hours.  Since the ATMega168 microcontroller used has 6 analog/digital converters on board, he figured that he might as well design his tester to measure the capacity of three batteries simultaneously.  [BrianH] wired the meter up to an old Nokia LCD, then moved his project to a perfboarded ATMega, freeing up his Arduino for other tasks. Once he had things reassembled, he packed it all into a handsome wooden box.

His writeup is chock full of details and source code, so be sure to check it out.  We have video of the charger in action after the jump.

[gigya src=”” width=”470″ height=”345″ quality=”high” wmode=”transparent” allowFullScreen=”true” allowScriptAccess=”always” ]

21 thoughts on “Rechargeable Battery Capacity Tester

  1. I’m looking for a way to get the last power out of of the batteries when one of the set is done, or there is not enough to run the device it is in but still enough for some other tasks.

  2. Confused? He states that he used an FET IRL3103S and that any similar device should work as long as the Drain-to-Source On-Resistance is low.

    Spec Sheet shows 12Meg ohms for the RDSon resistance for that device whereas an IRF510 has .54 ohms.

    How is 12Meg Ohms “low” resistance? Did I miss something?

  3. I learned that battery internal resistance is much better indicator of life, for example enveloop lose less than 100mah in a year but internal resistance doubles after 2-3 month of ruff use and make cell useless for high power

  4. I’ve got one of those chargers from maha/lacrosse that’ll test and cycle 4xAA/AAA and it’s nice if you maintain a large set (fleet? array?) of cells. When I retired my former camera that used 6xAA (Minolta with battery grip), my use for it dropped way off but it’s still really useful for my pile of GMRS radios.

    I like this DIY solution quite a lot for its quality and customizability. Good execution, BrianH

  5. I use Eneloops. I have marked each one with a letter (A-Z) because otherwise they all look the same. I have made a long, narrow, sloped tray. When a battery is used up (AA or AAA) I charge it up and put it in one end of the tray (at the high end of the slope). When I want a new battery I take one from the lower end. This means I cycle my batteries evenly, and I know the ones in the tray are fully charged.

  6. @bunedoggle do you trust the thinkgeek charger? I mean how do you get a capacity of a battery that is supposedly flat when you put it into the charger?

    I’d be interested in combining these with an impedance test. A lot of commercial chargers as well as having a complete discharge test function for batteries also draw a very high power pulse from the battery to gauge their internal impedance.

    I have plenty of batteries here which have great life performance and last for months in my mouse, yet put 4 fully charged cells into a camera flash and they fire about 3 shots before giving up due to high impedance.

  7. … was thinking about such battery testers for a while now, for two very different applications: AA batteries and big lead-acid batteries (same problem).

    One feature I imagined was to be able to control the discharge current by PWMing the MOSFET, with appropriate filtering to make it look DC from the battery. This would allow to evaluate capacity depending on discharge current. (Does that battery still work for my high current digital camera ? …or measuring Peukert’s constant for lead-acid).

  8. I dont get this: He states that he was limited to testing three batteries at a time, as he has to use two of the six AVR microcontrollers analogue inputs for monitoring each battery?

    Why do you need to measure the voltage and current of the battery since the resistance of the load is known? Could you not just measure the voltage on the load, and get the microcontroller to calculate the current through the load using I=V/R?

    That way you could simultaneously test 6 batteries instead of three.

    The voltage across the battery will be recorded when it was inserted for the first time. Then it is allowed to discharge for a particular time. From the 2nd time onwards the outputs will be added to together. Using this added up value we will find out the average voltage across the battery. Then the difference between the firstly recorded value and the average value will be finding out and displayed as the average drop of the battery.

    Here we will divide the last recorded value by the average drop. It will give the information about how long the battery will last from the last recorded value, ie., the battery capacity will be given in time specifications

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.