This post is a bit of an aside, or at least it started out that way. I thought it worth noting though, because it's a good example of how quickly and easily a new Arduino/Pachube application can be put together, once you have some basics in place.
A friend was having some difficulty with some older NiMH rechargeable batteries (actually AA cells). He'd charge them up, but when he put them in his camera it would immediately complain that the batteries were low, and it wouldn't turn on. The batteries seemed OK when checked with a voltmeter, reading 1.4V or a little better (the nominal voltage for NiMH cells is 1.2V). My friend was aware that batteries are best tested under load, and I gave him a few resistors for that purpose, and he went off to try again.
In the meantime, I was looking at my recently-completed XBee/Arduino/Pachube lashup (see prior post) and a light went on.
I wired up two NiMH cells with resistors for loads, connected them to two analog inputs on the Arduino, added a few lines of code to the Arduino sketch, and literally within 10 or 15 minutes I had Pachube collecting the voltage data once per minute (in addition to the temperature data that I was already collecting). It's taken me a lot longer to write this post than it did to get the thing working in the first place!
Now I could produce nice discharge curves for two batteries simultaneously. It was just a matter of popping them into the battery holders, then waiting for 8 or 10 hours while they discharged and Pachube collected the data. In the end this gives a heck of a lot better picture of what's going on than could have been accomplished with a voltmeter, and with a lot less effort!
This first chart shows two cells that I had. The first was relatively new (~8 months old), and the other a few years old, and while I no longer used it in my camera, it still seemed to work OK in my old iRiver MP3 player. You can see Cell A held 1.2V for six hours or so, but Cell B dropped below 1.2V after about only an hour. What surprised me is that the curves aren't that different, just shifted down for the older battery. If you do the math on the mAh capacity, it comes out pretty close!
The second chart shows two of my friend's cells that wouldn't work in the camera. Cell C looks similar to my Cell B, but Cell D drops below 1.2V almost immediately, and after an hour, is below 1.1V. Note the sharp initial drop in voltage. This leads me to suspect that as these cells age, their internal resistance goes up, while overall capacity may only decline modestly. This is contrary to my gut feel; when a battery doesn't work I think it's dead, empty, out of capacity. Actually these older batteries might work OK in devices that aren't terribly voltage-sensitive. Obviously the cameras watch the voltage pretty closely and let you know about it when it drops only a few tenths of a volt. But consider the challenge: You need to know you're running low far enough in advance of the knee in the curve, because things go south in a hurry then. And the camera has to make some sort of assumption about the quality/age of the cells. Or maybe the camera people are just in cahoots with the battery companies ;-) A 5-ohm load was used on all cells.