The Hardware:

While the first Battery Analyzer did its job I wasn't quite happy about the fixed load resistors. I took the chance to learn how to design my own PCB and created the MkII with a programmable constant current load. Like the MkI it is designed as a hat for the Arduino Mega 2560, which might not be as fancy as a standalone device, but for my first PCB I didn't want to bite off more than I could chew. The measurements are done by an Adafruit INA219 module and the constant current load consists of a MCP4725 12-Bit DAC, a TLV2372 rail-to-rail OpAmp and an IRLZ44 MOSFET (as well as some caps and resistors). Additionally it uses a generic 0.96'' 128x64 OLED display and a micro SD card adapter.

Schematic of the CC circuit

I included the KiCad files in the Github project, but they're probably quite bad and no one should look at them. :D

When the Battery Analyzer gets powered on the OLED display shows a selection menu for Alkaline, NiMh and LiPo/Li-Ion batteries. This selection determines the test end voltage. The next screen shows the discharge current selection. If OK is pressed the test starts. First a battery check is performed to see if it is already discharged, missing or in reverse. If everything's OK the CC control sets the discharge current and the INA219 takes a measurement every second which is then displayed on the OLED screen. Every 15 seconds a data point is logged to the SD card in CSV format. If the SD card is missing the optional logging is disabled and a message is displayed on the screen. The test ends when the battery reaches the end voltage and a message will be shown.


The Battery Tests:

The test parameters were quite simple, I tested four batteries of every brand, two at a 100mA discharge rate and two at 500mA. The analysis was done in LibreOffice in which, like in everything else in this project, I had very little experience, but I hope the data is understandable.

Starting with the most basic, the measured energy of the batteries.

In the low drain (100mA) test all Alkaline batteries are in the 2500-3000 mWh range while the Lithium (LiFeS2) batteries are above 4000mWh.

In the high drain (500mA) test the Alkaline batteries lost a significant amount of power which got converted into heat, most struggle to reach 1600mWh. The Lithium batteries on the other hand kept most of their energy.

This gives us our first insight, Alkaline batteries are bad for high drain applications and while some are a little bit better than others, rechargeable NiMh batteries will save money and protect the environment on the long run. Btw, stay tuned for part two of the Battery Analyzer "series" where I take a look at NiMh batteries.

None of the brands is much worse than the others, but one thing is interesting. The expensive top tier batteries of brands with multiple tiers are always worse than the mid tiers. Duracell Ultra < Duracell Plus in energy. Energizer Max Plus < Energizer Max in energy. Coop Basic Plus is roughly the same as Basic in energy, but has a worse high drain loss and Varta Long Life Max Power has also a worse loss than Varta Long Life Power.

Here we see the energy loss that occurred in the 500mA test compared to the 100mA test. The first thing you probably noticed is the super low loss of the Lithium batteries with roughly 11.5%. Most Alkaline batteries are between 40% and 50% but there are some outliers like the dishonorable mention, the Energizer MAX Plus, which are not only the most expensive cells in the test, but also have the worst high drain loss with 58.6%. The lowest high drain loss achieved Energizer's Industrial cell with 40.5% which is quite a contrast to Duracell's Industrial cell with not so great 56.2%, making it the second worst battery in the test.

The next two graphs show how much charge you get for your money, or rather how much you pay for each 100mWh. The prices are in Swiss Francs because that's where I live, but you can add your local prices to the...

Read more »