Feb 27, 2013, 01:29 AM
Registered User
Irvine, CA
Joined Sep 2004
200 Posts
DIY ESR / IR Meter for Lipos that costs less than \$25

A ~ \$25 DIY ESR / IR Meter for Lipos that uses a voltmeter for readout.

What does the circuit do?

This circuit pulses a user set current through a test lipo. The pulsed current generates a voltage drop across each cell in the lipo pack. The circuit measures the voltage drop for each cell using the balance connector of the pack. The cell ESR is calculated by dividing the measured voltage by the pulsed current. All setup and measurements are done using a voltmeter.

Is the circuit difficult to construct?

This circuit is fairly straightforward to construct and set-up (despite the long winded description below!). I have included a lot of information that, for the experienced constructor, is probably not necessary. A full parts list including suggested components can be found as an attachment below.

I have followed with interest the thread on measuring ESR / IR in lipos which can be found in the 'Batteries and Chargers' section here on RCGroups:

http://www.rcgroups.com/forums/showt...&highlight=esr

For sometime I have been making ESR measurements on my lipos by using a pulsed current and then measuring the differential voltage across a cell using an oscilloscope and two high impedance probes. The oscilloscope 'does the math' by calculating the difference signal between the two channels and displays it on screen (see below for some example oscillograms). The ESR of the cell is just the difference voltage divided by the current through the cell. It is very straightforward to construct a circuit that will generate a 10-20 ms long pulsed current up to many 10's of amps. I have used pulsed currents of 5, 10, 20, even 30A for my measurements but I've found that for most of the lipo's I use there isn't much of a measured difference (see below) at currents above 10A. 10-20 ms pulses seem to be long enough so that the difference signal reaches a peak value for most of my lipos (again, see oscillograms).

Some results of ESR measurements using different pulsed currents (results in milliOhm for a single cell of lipo) at different charge voltages for 3 different lipos:

Pulsed Current 5A 10A 20A 30A
4S Turnigy 5000mAH(15.5V, new) 2.8 2.8 2.8 2.7
3S Zippy 2200mAH (12.6V, 15 cycles) 12 12.1 11 11
4S Zippy Compact 4000mAH (16V, new) 4 3.8 3.8 3.6

From a practical point of view even the difference of 1 mOhm for the 2200mAH lipo is not significant (to me anyway). For example, according to the Lipo C calculator at: http://www.jj604.com/LiPoTool/
for the Zippy 2200mAH a reading of 12mOhm gives a 'C' rating of '15' and a reading of 11mOhm gives a 'C' rating of '16'. For most lipos, according to the calculator, a change in ESR of 10% is <5% change in C rating. I think a pulsed current of 10A should be fine for ESR/IR measurements for most lipos.

Referring to the schematic, the circuit works as follows (I will describe the operation in general terms and then discuss specifics):

General Operation: Lm78L05 (U1), 555 (U2), 741 (U3), Mosfet(s) (Q1, Q2) part of the circuit.

1) The LM78L05 provides a fixed, stable 5V to power the 555 timer. The output of the 555 depends on its supply voltage. We don't want it to vary because the battery voltage that powers it drops with use. The other op-amps in the circuit are powered directly by + / - 9V batteries. Feel free to use other power supplies to power the circuit.

2) A square pulse of duration 1.1*R3*C3 is generated by the 555 timer circuit when pushbutton 1 is pushed,

3) The 555 output pulse is divided down to a certain value (more in specifics) and fed into the non-inverting pin (pin 3) of the 741 op-amp,

4) The output of the 741 is used to control the gate voltage on the Mosfet(s) which results in a current flowing through the Mosfets and into the load resistors. The duration of the current pulse is equal to the 555 timer pulse. The current is provided by the Lipo pack to be tested which is hooked up to connector P5 (battery connector).

5) The voltage across the load resistors is fed back to the inverting input of the 741 (pin 2). Basically, the 741 drives the Mosfet gate so that the current through the load resistors provides a voltage drop across the load equal to the input voltage fed from the divided 555 output pulse (op-amp wants to have 0 volt difference across its input).

Example: Suppose the 555 output pulse is divided down to 1V and suppose the load resistance is 0.05 Ohm. Then the 741 drives the Mosfet gate so that the load resistor has a 1V drop across it. Therefore, 20 Amps flows through the load resistor (V=IR). [NOTE: Changing either the input pulse voltage to the 741 or the load resistance will change the pulsed current in the circuit].

General Operation: 741 (U4) and LF398 (U5) part of circuit.

1) The 741 in this part of the circuit is set-up as a differential amplifier with a gain of 5. It is AC coupled so no DC is input into the 741 from the lipo. The input of the 741 diff-amp is connected across a single cell of the Lipo battery pack via the balance connector of the Lipo.

2) When the 555 timer is triggered the current pulse through the battery causes a difference signal to be input to the 741 diff-amp (this is the IR of the cell times the current through the cell). The signal is multiplied by 5 and sent into the input of the LF398 sample and hold op-amp.

3) The full output of the 555 is also used to trigger the LF398 so that it takes a reading only when there is an output pulse from the 555 and therefore only when there is a current pulse from the lipo being tested.

4) A voltmeter is used to measure the output of the LF398.

5) Switch 2 is used to zero the sample-hold capacitor between test pulses.

Example: Suppose we have 20 amps flowing through the battery during the pulse and the output of the LF398 reads 200mV. The cell IR is then: IR=200mV/(20*5)=2 milliOhm.

Specific comments: Lm78L05 (U1), 555 (U2), 741 (U3), Mosfet(s) (Q1, Q2) part of the circuit.

1) Don't try to just use a switch to trigger the 555 without the RC circuit formed by R1 and C1. The switch contact usually stays closed for more than the 1.1*R3*C3 (~17 ms with the values used in the schematic) RC pulse duration. That results in a pulse longer than 1.1R3*C3, as much as 30-50 ms longer, and it is not repeatable shot-to-shot! NOTE: The ground pin, for some reason, is not shown on the 555 op-amp in the circuit. It is pin#1. MAKE SURE IT IS CONNECTED TO GROUND!

2) There is nothing special about the values of R3 (15k) and C3 (1uF) that I picked to give the time constant. Any reasonable values for R and C so their product is >10ms but <18ms is fine.

3) Don't use a fast op-amp in place of the 741. You will notice there are no decoupling caps at pins 4/7 of the op-amps. I have had no oscillation problems with this circuit using a 741 (see oscillograms). However, faster op-amps gave oscillations and needed lots of decoupling. Of course, it never hurts to use decoupling caps.

4)The resistors (R6, R7) at the output of the 741 are meant to keep the output voltage near 0 volts even if there is no lipo battery connected. Without these resistors the 741 output sits near the + rail voltage due to the intrinsic small input offset voltage at pin 3 and the high open loop gain (no feedback without the lipo battery connected). I used a 1uF cap to decouple the small DC output voltage of the 741 even though it is less than 0.7V for the resistors shown. This way the Mosfet cannot be driven into the ON state unless there is a pulse from the 741.

5) There are no critical tolerance parts in this part of the circuit except for the load resistors. Fortunately low resistance, high power, 1% tolerance resistors are easily found. You can use thick film, metal strip, and other types but don't use wirewound unless it is very low inductance. Make sure you look at the pulsed current capability of the resistor, it should exceed the current desired for the 10-15ms pulse duration. Or, if pulsed current isn't listed then pulsed energy for the ~10-15ms pulse. Calculate pulsed energy by I^2*R*t where t is the pulse duration you have for your circuit. A single 100 milliOhm resistor rated at >2W is fine for 10A, I would use 2 in parralel for 20A. I use metal strip resistors rated at 3W.

6) Basically a single Mosfet with voltage rating > 40V and power rating > 150W and low on-state resistance (say < 3milliOhm) is good for at least 10A using a 6-cell lipo and you can just parallel up more for larger currents. 40V allows at least 6 cell batteries to be tested. I haven't tried any larger cell count than that on the prototype. I use two Mosfets with no heatsink. Add a heatsink if you like (can't hurt). Generally, the lower the on state resistance and the higher the power rating the better.

7) Use a fast blow fuse rated at about 1/3 to 1/2 the current through the circuit (ex: if 10A then a 3A fuse is sufficient). The fuse will blow in about 10-30ms at an overcurrent of ~ 10 times rated fuse value. Otherwise it doesn't blow. This affords a reasonable amount of protection to the battery / Mosfets / load resistors, all of which would be very unhappy if asked to conduct for long periods of time!

8) The lipo battery connector, P5, could be soldered directly to the circuit or you can connect it via flexible wire like that found on a lipo battery. Gauge is not too important, 14 or 16 AWG should be OK. If you connect by wire then make the length long enough to be able to connect / disconnect easily. Don't worry too much about the wire length, say 4-5 inches, it plays no significant role in the actual measurement.

Specific comments: 741 (U4) and LF398 (U5) part of circuit.

1) The only critical tolerance parts for this part of the circuit are the 10k and 49.9k resistors that make up the 5x gain in the 741 diff-amp. Use 1% values here. Make sure that the lower value resistor is >~ 10k. This is to make sure the RC time constant at the input of the 741 is >> 1.1*R3*C3 (here 17ms), the pulse length of the signal.

2) Use a very good capacitor, polypropylene, of value ~ 0.22uF. This prevents excessive leakage current from decreasing the lf398 output too fast. Otherwise you will not get an accurate reading with the voltmeter. In practice a 0.22uF poly cap holds the output voltage for many seconds.

Set-Up:

After you have constructed the circuit, here is how I suggest you go about setting it up.

Make two connector assemblies as shown in the photo. Call the one with the male pins at one end cable 1 (lower cable) and the one with the two female header cable 2 (upper).

NOTE: DO NOT plug in the lipo until steps 1-5 have been carried out!

1) Connect the 9V batteries. Use your voltmeter to make sure the output DC voltage at P2 is less than ~0.75V.

2) Use your voltmeter to make sure the voltage at P3 is 0V. If not then you have a wiring error somewhere.

3) Connect your voltmeter to connector P7, the ouput of the sample/hold op-amp (LF398).

4) Connect the input of the differential amp, P6, to connector P1 using cable 2. Pulse the circuit by depressing SW1. Make appropriate adjustment to the potentiometer, R5, to get the desired output voltage from the 555. Remember the diff amp has a gain of 5 so if you want 1V out of the 555 then you should adjust R5 until you get 5V on the voltmeter. Also, depending on the polarity of the connection to P1 you may get a negative voltage. That's OK, just reverse the connections at the pin, or don't worry about it. Don't forget to reset the output to zero between pulses (this is important).

5) Now connect the input of the diff amp, P6, to P4, again using cable 2.

6) Connect the lipo you want to test.

7) Depress SW1 and measure the output voltage. You should measure basically the same value as you did in step 4 above. It will be a little bit smaller, less than a few % or so. You can adjust it if you want by adjusting R5. In my opinion it's not necessary (see comment above about lipo C calculation) unless you see a larger voltage difference. Be very careful, this now adjusts the current draw of the lipo! Reset to zero between pulses.

8) Disconnect cable 2 from P4 and P6 and connect cable 1 to the input of the diff amp at P6 and to a cell of the test lipo via the balance plug.

9) Depress SW1 and measure the voltage. It maybe positive or negative depending on how you connected the diff amp up to the cell. The polarity doesn't matter.

10) Pulse the circuit at most about 1 time every 15 seconds or so. This way nothing should get hot. Measure several times and average but you will see that the value won't change much. Don't forget to reset after every pulse.

Cell IR is: (Voltage on meter)/(5*current through the load)

Don't forget that the 'current through the load' is the voltage across the load resistor divided by the load resistance. You set the voltage in step 4 and checked it in step 7.

Maybe you have a variety of lipo sizes like I do. It is an easy matter of adjusting the pulse voltage using R5 so that any value of pulsed current from 5 to 20A, or greater, is possible. Maybe the lower value lipo packs, say < 1000 mAH would be better tested at 5A or so. I am not sure about this but you can do tests to see how the IR varies. I suppose as a guideline you should make sure the test current is below the max current of the pack given the stated C rating of the pack and its capacity. Practically, this is only a concern at lower pack capacities.

Finally, I have included an attachment with a general parts list which also includes specific parts from Newark-in-One with Newark part numbers.

Eusebio