Thread Tools
Jan 15, 2009, 07:28 AM
Magicsmoke maker
Inflexo's Avatar
Here's the simplest of them all (see attached photo).

The one I use now us the TinyUSB-ISP ( ). I built the version-1 type which doesn't have any buffering.

I did mine on some single-sided PCB using surface mount parts and an Atmel ATTiny2313 chip with a 12MHz xtal. Works fantastic, actually have a couple just in case I blow one up. Best of all with the USB ones, you can power your projects from the USB 5V, assuming they don't consume too much of course (10mA~20mA).
Sign up now
to remove ads between posts
Jan 15, 2009, 07:36 AM
Magicsmoke maker
Inflexo's Avatar
Prototype #3 updates

Well, #3 is alive, though there's some things I feel I want to change already - namely the 10R load test is essentially "worthless" as the difference between the voltages is insignificant on most packs which translates to very coarse IR readings.

What I'm going to do instead is change it to a 2R load, so then we'll have 1R, 2R and maybe 0.75R (1R|2R). I've opted to ditch the 0.5R idea as well because for lipo cells that are fully charged that's asking for 8A+ to pass through the 0.1" pin headers and that's not going to work so nicely even if they are gold/silver plated.

Now, what's this added bit I was talking about before....?

I had about 500 bytes 'spare' on the 4K AVR and a couple of digital I/O lines, so with some discussions with a person on this thread, it was decided that we'll try add a "summary" mode and have the ability to punch in the battery capacity (in 100mAh blocks) and to give a quick view on a possibly suggested C rating / current-draw for the pack based on a given voltage drop per cell (eg, 0.3V drop per cell). The question is, will I be able to cram it into 500 bytes

Jan 15, 2009, 11:05 PM
Magicsmoke maker
Inflexo's Avatar
Development progress

I've settled on 1R and 3R loads for testing, that gives us the following combinations;

1R = 4A (roughly)
3R = 1.3A
1R|3R = 5.3A

The nice thing with this combination is that I use the same load resistor for everything (3R) so they all heat up evenly and subsequently temperature variance between samples is minimised.

The downside though of using this method is that I end up with a bit of an ugly division (by 3) but it's still fitting into the uC.

Jan 16, 2009, 12:07 AM
Magicsmoke maker
Inflexo's Avatar
Small bit of bad news on the resolution

I actually sat down and crunched some hard numbers to get an actual mR resolution of this device and unfortunately it doesn't quite make 1mR, instead it's more like 1.25mR.

The AVR's 10-bit ADC resolves to 4.88mV per count, however into a 1R load at 4.2V, 1mR represents 4.11mV, so that's roughly 1.2mR resolution instead of 1mR.

The way around it, just install two 1R loads as originally conceptualised, when both loads are on it gives us 8.22mV drop per mR @ 4.2V, that means then that the IRM ends up with a precision of 0.6mR, that gives us the desired precision allowing for error margins.

Jan 16, 2009, 07:36 AM
Registered User
I prefer increased resolution over a broader current difference. Would you use a parallel / serial combination of resistors with the 1 mohm / 1 mohm combination for the 2nd and 3rd measurement? (IIRC you were concerned with too much current through the tap wires).


BTW I am quite satisfied with the proposed accuracy since cell IR varies so much with state of charge, temperature, etc. Increased resolution should give you better repeatability.
Last edited by Al Offt; Jan 19, 2009 at 02:11 PM. Reason: typo
Jan 16, 2009, 08:02 AM
Magicsmoke maker
Inflexo's Avatar

New - "human mode" added

After getting other things sorted out, I was able to add on a new "human" mode for the IRM.

This human mode makes a set of summaries based on the internal resistance measurement.

The human mode is activated by pressing one of the two buttons i've added, once in there, you then press the other button to increment the battery capacity to suit the cell you're measuring (in my case, 850mAh).

Once you've finished incrementing the battery capacity, the human-mode display will start to show you summaries of what will happen at various voltage drops within the cell starting from 0.1V and going through to 0.5V (or what ever).

The display is set out as follows;

[Battery capacity in mAh] [ Cell resistance in milliohms ]
[Voltage drop] [Maximum current]/[Computed 'C' value] [Power burned up in cell (as watts).

The idea is that based on your allowable voltage drop per cell, you can then see what the pack can deliver as a maximum, as well as seeing just how much wastage there is in the cells.

You can switch back to the "Detailed" mode by pressing the screen select button again.

Attached are a couple of photos, I suggest looking at the attached images and reading the associated text to make things clear.

Jan 16, 2009, 08:11 AM
Magicsmoke maker
Inflexo's Avatar
Originally Posted by Al Offt
(IIRC you were concerned with too much current through the tap wires).
Yes, the big problem with too much current is that the heating of the parts starts making things worse.

BTW I am quite satisfied with the proposed accuracy since cell IR varies so much with state of charge, temperature, etc. Increased resolution should give you beter repeatability.
Yes, I've noticed a large variance in the resistance as the batteries wear down (basically resistance goes up) as well as the temperature effects too.

I think that the usage/user manual for this device is going to have to be fairly direct about comparing cells that are in the same state of charge and same temperature.

Given that the IRM currently only takes small samples, it's unlikely that it'll contribute significantly to the temperature attribute of the packs (unless you're testing cells under 350mAh-12C.

Jan 16, 2009, 11:04 AM
bad speller extraordinair
TucsonClint's Avatar
As a techno dabbler, the addition of the human mode certainly adds to my interest.

I would be interested in one of the early ones - especially if it allows you to continue with development.

Thanks for chasing this,

Jan 16, 2009, 11:45 AM
write2dgray's Avatar

Could you share the exact methodology and calculation behind the generated C value? One of my concerns behind reported C value and real world C value is that voltage drop may be higher under sustained load rather than the short duration used in the IR calculation.

Also, I would be more interested in seeing watts available from the cell at max. C vs. watts dissipated due to internal resistance at given discharge rate.

- David
Jan 16, 2009, 04:35 PM
Magicsmoke maker
Inflexo's Avatar

The 'C' rating posted on the display is derived based on the maximum current that the cell can pass without exceeding the chosen voltage drop; I'll do the long-math here.

Given the cell resistance is 41mR and the pack capacity is 850mAh, and we want to know the C-rating/discharge-rate we can achieve without exceeding 0.3V drop per cell...

V = IR (volts = current * resistance)
0.3 = I * 0.041
I = 0.3 / 0.041
I = 7.317A

Now, we know the pack capacity is 850mAh, so we can derive the maximum C rate at 0.3V from this;

C = current / pack-size
C = 7.317 / 0.850
C = 8.6

Regarding your concerns for the 'real world' scenarios, you're correct, the apparent resistance of the pack will fluctuate, however the IRM will give everyone a common specified standard to work against.

Of course, the IRM is a pocket unit, as apposed to a full bench unit. To keep costs and size reasonable there clearly has to be some concessions made and in this case it's the duration of the high current tests in order to avoid people holding a hot potato in their hands.

The future "bench unit" version will on the other hand be able to work with much longer sustained loads.

Jan 16, 2009, 04:58 PM
Magicsmoke maker
Inflexo's Avatar

Many thanks for your vote of support. Yes, sales of the electronics gear I design/manufacture do of course help keep things going in terms of development of new items. I'm not a large store/business as such, though I do enjoy the rapid activity of development of new devices, so long as things don't get too costly and the product isn't already 'too common' (so developing a new $300 charger is rather out of my risk catagory)

Jan 16, 2009, 05:30 PM
write2dgray's Avatar
Thanks Paul, that makes sense and is a great write-up of the methodology. My concern with providing a C rate by this method has to do with overstating the C rate. I am curious if for the given 850 mAh cell a 7.317A discharge rate would result in a 0.3V drop or if it would be significantly more (voltage drop) if the load was sustained for more than a second. We are talking about continuous C - not burst C, right?

Any thoughts on this one:
Originally Posted by write2dgray
Also, I would be more interested in seeing watts available from the cell at max. C vs. watts dissipated due to internal resistance at given discharge rate.
Jan 16, 2009, 06:13 PM
Magicsmoke maker
Inflexo's Avatar

It'll depend a lot on the cell make up. Though i've found that even with tests that are 5 to 10 times longer, the cell resistance don't vary much (in fact, on this 850mAh pack, there was no variation from the 41mR). Also, cell resistance seems to drop slightly as the pack warms up (to a limit). Any cell capacitance might play a part in keeping the 1kHz value lower but a sustained 0.5R (5~8A) load for more than 1/10th of a second will absorb/discard that factor (also, the tests are run continuously, so you can watch the cell resistances approach a stable value over the course of a few cycles).

Regarding showing the power/watts available from the cell, the reason I haven't gotten that up there is simply because of lack of screen real-estate. I'd have to drop a character or two in order to fit in the 6 chars needed (9999W + space).

Jan 16, 2009, 07:13 PM
Magicsmoke maker
Inflexo's Avatar
Okay, here's a new summary screen, I had to do some things though, namely I dropped the leading '.' char for the voltage, so if viewing the screen you need to already know that the leading-char '3' (in this case) is actually meaning 0.3V.

Anyhow,I've made it so that it computes the watts output (per cell) based on a moderately coarse amps x volts arrangement as follows;

Watts = (Vopen -Vdrop [eg, 0.3V]) * (Vdrop / IR)

So in the case of the screen shown...

Watts = (3.8V -0.3V) *(0.3 / 0.04)
= 3.5V * 7.5A
= 26.25W (Screen shows 25W, due to rounding off of the volts display)
Jan 16, 2009, 07:18 PM
Magicsmoke maker
Inflexo's Avatar
Important I should point out that the "Watts" output per cell display is for a single-cell, so you'll actually multiply that by the number of series-cells you have in your pack to get a final figure, eg, this being a 2S pack, that means the total pack output could be 50W.

The reason why you add the watts figure is because of the formula Power = Current * Volts, adding more cells in series increases the volts.

Also note, the wattage output is cell-voltage dependent. If we did the test with a fully charged cell at 4.2V (assuming all other things the same), we'd end up with;

W = (Vopen -Vdrop [eg, 0.3V]) * (Vdrop / IR)
= (4.2V -0.3V) * (0.3V / 0.04R)
= 3.9V * 7.5A
= 29.25W


Thread Tools

Similar Threads
Category Thread Thread Starter Forum Replies Last Post
Lipo cell internal resistance viflyer Batteries and Chargers 31 Jan 13, 2016 09:40 PM
KAN 650 cell internal resistance Smokin' Beaver Batteries and Chargers 2 May 31, 2004 04:12 AM
Tp Li-po Cell Internal Resistance hall woo Batteries and Chargers 2 Apr 09, 2004 06:53 PM
Matching of cells with Apex internal resistance meter. John Jennings Batteries and Chargers 9 Nov 14, 2002 12:25 AM