# Ways to measure current in picoamperes

I need to check the low power consumption of a microcontroller in the range of picoamperes. I only have a multimeter capable of measuring milliamperes and as such it shows 0.

Is there an easy and precise way to measure picoamperes?

• If it would be easy, your multimeter would probably have an option to do so. And I have a hard time understanding why picoAmps would matter for a µC, nanoAmps in sleep mode maybe, but pico, are we really that far already? – Arsenal Aug 24 '15 at 12:56
• You could probably check out eevblog.com/projects/ucurrent but it seems largely a waste of time going that low for a microcontroller. Why do you really want to measure it, surely you'd want average current over a longer period of time when it was doing something? – PeterJ Aug 24 '15 at 13:03
• What kind of battery? The self discharge current of it will give you a good hint on how big the current you measure has to be to be relevant. A standard CR2032 has a leakage current of ~0.2µA so based on that going to picoAmps is just not worth the trouble. – Arsenal Aug 24 '15 at 13:41
• Bob Pease on femtocurrent measurement (and the special precautions required to avoid leakage ruining it) electronicdesign.com/test-amp-measurement/… – pjc50 Aug 25 '15 at 8:31
• Just what the doctor ordered: hackaday.com/2015/08/26/data-logging-in-the-picoampere-range linking to sigzig.com/blog/2015/8/18/… – Russell McMahon Aug 26 '15 at 11:18

Power the micro-controller with a capacitor, charged to a known voltage. Wait an appropriate amount of time, then measure the voltage. Calculate the current from the delta-V and the C. (Don't measure the voltage continuously, unless you have a meter with a high-enough impedance, because that might draw extra current.) You will need a capacitor with known capacitance, but in a pinch you could measure a capcitor in the same way by discharging it through a known resistor.

As the comments point out, other current paths might contribute to the discharge of the capacitor (including self-discharge). You could repeat the measurement with the UC removed and see what value that gives. Then you might think about whether you can realisticly avoid such 'other' currents in your design.

And don't forget your batteries self-discharge and/or ageing!

If you aim is too 'see' the power-down mode of the chip in action you could use the capacitor, build a simple circuit that periodically connects it to the power supply (if possible synchronysed with the uC's activity cycle, must have a realy low leakage current!), and watch the C's voltage on a scope (the scope impedance must be higher than the UC's current consumption, or you might even use AC coupling if the uC"s activity cycle is short enough). This way you can verify both the time-wise division in high and low current consumption, and the currents in both modes.

• Capacitor leakage current might be an issue with this method and the aimed region of current. The capacitor size also has to be chosen in a way that the voltage won't drop too much. – Arsenal Aug 24 '15 at 13:19
• @Arsenal: A 1 nA current will discharge a 10 nF capacitor 0.1V in one second. There are many low-leakage capacitor technologies available in that range of capacitance. But measuring currents in this range is always a challenge, because you have to pay attention to ALL possible leakage paths -- surface contamination is a common problem. – Dave Tweed Aug 24 '15 at 13:30
• You could also do a few more tests with only the capacitor (for self-discharge testing), or with the meter constantly hooked up (to see what effect the meter + capacitor discharge has) and compare all the scenarios to find out how much each specific loss is – user2813274 Aug 24 '15 at 14:55

One simple method I've used is to put a resistor in series with the power to the micro and parallel it with a capacitor. The leakage of the capacitor is not as important in this case.

For example, if you think the supply current should be no more than 10nA then you can use a resistor of value 10M 1% in parallel with a 1uF ceramic capacitor. That will give you 100.0mV for 10nA (so the burden of the ammeter is 0.1V, which should not overly affect the circuit- raise the input voltage up a bit to compensate for the drop if it bothers you).

Then look at the voltage across the 10M resistor using a voltmeter with high input impedance, such as the Agilent 34401 in >10G input resistance mode. The bias current of the meter will influence the reading, but it is less than 30pA (0.3%) at room temperature.

The 10M/1uF combination filters out spikes unless they are happening at very low frequency (if, for example, your processor wakes up once every 10 seconds and draws 0.5mA for 100usec it won't work very well).

The power or current consumption of a microcontroller can be very irregular depending on the µC's state. For example: 1pA for 999 ms and then 1uA for 1 ms. On average that would be 1.001 nA. If your multimeter would do a measurement every 100ms, it would never measure the 1.001 nA ! In this case you need to use a resistor in series with the supply and an oscilloscope to measure the voltage across the resistor to "see" the actual current over time.

• Can you point me to such a resistor? – Tedi Aug 24 '15 at 13:37
• If the OP is only interested in battery life, the dynamic characteristics of the load don't matter that much; all he really needs is the integral of the current (charge), which is what the capacitor-based technique measures. – Dave Tweed Aug 24 '15 at 13:39
• @DaveTweed Actually for battery life the dynamic characteristics can be quite important as the chemistries don't always react that well with sudden changes, but I feel like the actual question would be "How do I estimate my battery life?" so I'll stop. – Arsenal Aug 24 '15 at 13:54
• I also want to make sure that the sleep command in the uC does its job. – Tedi Aug 24 '15 at 14:44

Most oscilloscopes specify their channel input impedance. It tends to be about a Gigaohm. If you put the scope in the ground path of the uC (most scopes connect channel ground to earth ground, and you may not be able to place an earth ground on the VDD of the uC) you will be measuring the voltage across this resistor, and therefore the current being used by the uC, in real time. That should give you fairly accurate measurements (1mV => 1pA).

Let's look at the issue of whether the battery "cares" - ie would a load in the pA range affect battery lifetime significantly?

Spoiler: No. Even measurements capable of 1 nA resolution are more "precise" than are needed in practice.

The very best primary (non rechargeable) Lithium batteries have useful shelf lives of around 20 years (with maybe 30% - 70% capacity loss) without more than sensible attention to temperatures etc. Typical examples are

20 years is about 175,000 hours so 10 mAh of loss over that time is equivalent to a current of 10/175,000 mA or 10,000,000/175,000 = 57 = 57,000 pA. So measurement of pA is completely unnecessary for any battery size liable to be used.

For example, a 50 mAh battery with say 50% lost to shelf life after 20 years (a good trick if you can do it) would allow 25 mAh for the load or a mean current of 142,500 pA = 142.5 nA = 0.1425 uA. Measurement to the nearest nA of mean load current gives you around 1% accuracy - which will allow a vastly more precise estimate of battery life than you will find in reality. Practical variations will swamp such attempts.