Review, Teardown, Reverse Eng: Generic Battery Tester

As a kid growing up in the 90’s, one fond memory I had was sorting through piles of batteries to see which ones were good and which ones needed to be discarded or recharged. With many toys and appliances using AA, AAA, C, D, or 9V batteries, finding out was critical to make sure that batteries aren’t wasted by prematurely throwing them out when they could still be usable. To help me in my “quest”, I used a battery tester very similar to this one I got from eBay for under AU$2.

2016092712008646 2016092712018648

At the time, I was still a very young child. I couldn’t yet solder, but because this device was so simple, even I could use it. It consists of a scale on the front with colour coded conditions, and a hinged arm.

2016092712018649

2016092712028652The hinged arm had contacts at the end, and all you would have to do is insert the battery in the correct polarity and let the spring-loaded arm “clamp” the battery in place to get a reading on the display. There’s really not much to it, but it was something I fondly remember doing a lot of.

2016092712008647

For 9V cells, there are two contacts on the opposite side, which allows you to butt-up a battery against them and receive the reading in much the same way. The unit I used as a child was much better constructed with more sturdy contacts and better plastic, but the principle is just the same. By the time I got my first multimeter, I still used this style of battery tester because it was more reliable compared to just reading the open circuit voltage.

Teardown and Reverse Engineering

The unit is constructed without any screws. Tearing it apart with my hands resulted in the internal plastic clips breaking, meaning the unit can’t be put back together neatly.

2016092712058653

As can be seen, aside from the casing, and a spring, the rest is the meter itself with a PCB and a few folded/pressed metal contacts.

2016092712068654

The meter PCB is soldered directly to the meter contacts, with the battery cell contacts also wired in. Four surface mount resistors are used.

2016092712088655

In what would be the most slap-dash construction I’ve ever seen, this one had a small bit of solder wire attached to the terminal and left there, as if the construction worker had a little short piece of solder left and didn’t want to hassle himself with throwing it into the bin … so it became part of the product.

2016092712088656

Turning the meter over, we can see the d’Arsonval meter movement in all its glory, with blue lacquer securing the assembly and the zero-ing screw. By desoldering the meter, I measured the coil resistance at 500 ohms.

Using the Keysight E36103A, I could easily determine the voltages corresponding to different scale readings.

2016092712188657 2016092712188658

At the edge of replace/recharge.                     In the middle of low.

2016092712188659 2016092712198660

At the lower-edge of good.                               At the end-stop of good.

It seems that the meter can accept 0.535v at the most, although as expected, the movement is not exactly linear with respect to voltage and this is probably related to spring tension difference across the scale.

From this, a full schematic could be developed:

battery-tester-schemat

The unit draws about 56mA (excluding the display) because of its 27 ohm load resistor on the 1.5v/3v inputs, and about 13mA due to the 680 ohm resistor on its 9v input. The load is roughly 100mW, which isn’t much, but is enough to bleed off surface charge and provide a more accurate indication of remaining battery power compared to reading the open circuit voltage.

Both set-ups seem to produce about 0.35-0.38v on the meter at the nominal voltage. A little leeway exists between this and the maximum scale reading, likely to accommodate slightly higher voltages (e.g. fresh batteries can be slightly higher, as can alternative chemistries such as Lithium based cells or rechargeable 9v cells with 9.6v nominal voltage). The exact value of the resistances are probably not critical, as the indicator scale is relative and small errors are unlikely to be noticed by the end user.

I consider this “mystery” solved. Now I know what’s inside a battery tester, at long last.

Adaptation: Bogus Lie Detector

Well, I decided I wouldn’t stop here. Now that I know the current/voltage/resistance relationship for the meter, I thought I’d try to adapt it for use with an Arduino. I achieved this by putting the meter in a voltage division scenario to ensure that 5v applied to the meter would not kill it. For further protection, a reverse-EMF protection diode was added across the coil. A small capacitor was also added, as I anticipated using PWM drive using an Arduino, and it could help smooth it out a little and reduce the possibility of audible noise. The schematic is as follows:

adapting-meter-for-arduino

I took apart the display by removing two pieces of adhesive tape and carefully removed the screen, replacing it with a piece of paper with a makeshift scale on it. I taped the assembly back together using electrical tape, as the casing was pretty much damaged by opening it up. I decided to make a whimsical bogus lie detector, that uses an Arduino and settles the needle randomly after a button push. To add to the theatre, it alternates back and forth twice before settling randomly. The code is provided after the end of the article.

As you can see in the video, it works … although not very well as a lie detector. You can use the same principle to drive any “salvaged” d’Arsonval meter movement, so long as you know the coil resistance and sensitivity (i.e. voltage required for full scale deflection).

Conclusion

Of course, the meter is predictably nothing too complicated. It’s basically a d’Arsonval meter with appropriate voltage division and a load resistor to allow for the bleeding of surface voltage from the battery to see the voltage under load (and hence a better representation of state of charge compared to open circuit voltage).

By buying a meter, and breaking it apart, I managed to trace out the schematic, determine the load resistances used and the characteristics of the meter, and adapt the meter for a “whimsical” application just for fun. For about AU$1, I thought it’d be a fun thing to do.

Appendix: Bogus Lie Detector Code

Just a very simple program that alternates the needle back and forth twice before settling at a random position. I decided to use PWM for the forth portions to avoid slamming the needle into the end stop too hard. Because the meter movement is non-linear with respect to voltage, the probability of lie vs truth is not 50%. Input is provided by push button connected between pin 2 and pin 3 using 3 as a ground source.

#define METER 11
#define BUTTON 2
#define BUTTON_GND 3

void setup() {
  pinMode(BUTTON,INPUT_PULLUP);
  pinMode(BUTTON_GND,OUTPUT);
  digitalWrite(BUTTON_GND,LOW);
  pinMode(METER,OUTPUT);
}

void loop() {
  if(!digitalRead(BUTTON)){
    analogWrite(METER,200);
    delay(1000);
    digitalWrite(METER,LOW);    
    delay(1000);
    analogWrite(METER,200);
    delay(1000);
    digitalWrite(METER,LOW);    
    delay(1000);
    analogWrite(METER,random(0,255));
    delay(500);    
  }
}

About lui_gough

I’m a bit of a nut for electronics, computing, photography, radio, satellite and other technical hobbies. Click for more about me!

This entry was posted in Electronics and tagged , , , , , , , , , . Bookmark the permalink.

2 Responses to Review, Teardown, Reverse Eng: Generic Battery Tester

  1. matson says:

    The Bogus Lie Detector Game is funny. I was smiling all the while watching, then final two questions made me LOL!

    If most of your articles can be thought of as “nutritious healthy food” with high information/education density, then this one entry is a “sweet treat” with higher than usual funny content. Still “healthy”. 🙂

    • lui_gough says:

      I agree – gotta have some fun sometimes, even if it is silly ;). Sometimes it’s how you learn … especially when something silly and supposedly simple ends up being a little more complicated than expected.

      – Gough

Error: Comment is Missing!