Battery Capacity Tester


[Moris_zen] built a device to accurately measure the capacity of batteries. He needed to have an accurate measurement for the batteries he uses in a RC airplane. Knowing the discharge time allows him to fly the friendly skies while avoiding crashes from lost communications.

He based the tester around the Arduino platform. Instead of using a pre-built Arduino board he referenced the open source schematics and built the device from components to fit his needs. His solution automatically detects the battery type (Lithium-Ion, Nickel Metal Hydride, etc) based on voltage when the battery is added to the circuit. It then uses a 2.2 Ohm resistor and ADC measurements to take the battery through a discharge cycle. A character display shows status information with the ability to track discharge information using a computer to graph the data.

Apart from flashing an LED this was his first Arduino project. It’s a great use of the platform and much more automatic than other solutions we’ve covered.

16 thoughts on “Battery Capacity Tester

  1. The 2 ADC are to measure the voltages across the 2.2 ohm resistor. The purpose is too measure the current running through it. The voltage should be used to decide when to stop the discharge process. The current measurement would tell the capacity of the battery (mAh or Ah)

  2. I think he’s made a mistake. because current is measured in mA and not mAh. mAh = I (in mA) * time (in hour)

    so he uses the 2 ADC’s because he measures on the side which is charged. so the voltage across the battery is not constant, and thus he needs to measure the voltage before, and after the 2,2Ohm resistor. (ADC2 is equal to Vcharger, which may variate during charging)


    if he moved the circuit, he might save one ADC


    (ADC1 will now always be 0)

  3. My LaCrosse BC-900 is also good for this. It charges, exercises and/or tests the capacities of 1 to 4 NiCd or NiMH AA and AAA independently and simultaneously.

    I modified it so I can also work with the sub-C cells found in cordless drills.

    Very handy to be able to easily put numbers to the capacity of rechargeable cells.

  4. The biggest mystery, why he use arduino bootloader. The only arduino advantage over uC is no programmer requirement, and it very arguable one(you always cab build programmer with less than 2 resistor).

  5. Therian,

    A lot of people have started using microcontrollers using Arduino hardware because it’s easy and straightforward. Many people don’t even know about programmers and bootloaders and their functions because that’s not required to mess around with platforms such as Arduino.

  6. Therian, for one NiMH cell 2.2 Ohm will be about only 0.5A In most cases that is less than 0.5C (C – capacity), its safe. Ofcorse everything ruin NiMH/Cd battery life, slov charging, fast charging, slow discharging (this hapens when battery is not used for some time).

  7. Note that standard practice for battery manufacturers is to discharge the battery at 0.1C, then multiply that value by 10 to get the (m)Ah capacity. This is probably why you are getting results that differ from the manufacturer’s stated value.

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.