# 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. Tito says:

Awesome, I’d love to get one of these!

2. St.Jimmy says:

this is how you use an arduino. congrats

3. Jancans says:

Vondering, why he use 2 ADC for measuring voltage. A mosfet is used in switch mode, or to control current (that probably would explain why 2 ADC)?

4. 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)

5. urlax says:

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)

6. gyro_john says:

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.

7. Haku says:

Now that’s a hack! :)

I’m impressed, the cherry on top would be circuitry+code to be able to peak charge the battery in question, then you can start doing fancy stuff like ‘rejuvination’ by running the battery through some charge/discharge cycles to get it’s capacity back up to a better level. Much like this one which I highly reccomend – http://www.batterylogic.co.uk/technoline/technoline-BL700.asp

8. Thomascpp says:

Whats the point of using a bootloader if you already have a programing tool.

9. therian says:

Im afraid this method with so low impedance not valuable for making measurement instead this is great way to ruin battery life quickly.

10. therian says:

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).

11. 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.

12. tj says:

This is probably the first Arduino project I’ve taken seriously in a while. It actually shows an effort and practicality.

urlax pointed out a good refinement for it too

13. Jancans says:

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).

14. therian says:

@TNW

15. ApprenticeWizard says:

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.

16. Check this out: http://spaceb.org/spaceb0rg/2009/11/24/voltage-analysis.html

Components needed:
– an Arduino
– a battery
– a computer

Real-time graphing with screenshot and recording capabilities for easy analysing of different type of batteries and battery life in general.

Tons of more projects in the works, from xbox’s to nixie tubes. :-)