I'm trying to understand a current measurement of a hobby project.

This project consists of several ICs and is battery operated.
At a certain mode (deep sleep) it should consume a very low current, which I estimated around 100μA or less.

To verify low current consumption I'm using the following setup for the measurement:


simulate this circuit – Schematic created using CircuitLab

Since my shunt resistor R1 is 0.5 Ohm, I would expect the current to be V / 0.5. (Actually I'm using 3 resistors of 1.5 Ohm in parallel, which I consider as a single 0.5 Ohm resistor).

The load R2 is the digital circuit with multiple components (ESP32, BQ21040DBVR, CP2104, M3406, XC61CC3302NR-G, resistors, capacitors, etc) at a deep sleep mode.

And this is the reading I'm getting:

enter image description here

This measurement is consistent. When removing power it goes flat so it originates from my circuit.


  • Is the setup I'm using good enough for measuring sub-milliampere currents?
  • Why Vmin is less than 0? The scope is calibrated and when removing power it goes to 0.
  • Is it correct to use Vrms as the "average DC measured voltage"? It so, it means that the average current draw is 0.00056 / 0.5 = 1.12mA
  • Regarding those 7.28Vpp spikes every 500μsec:
    • I would like to find their source.
      The circuit is a printed PCB with SMT parts so I prefer not to rework it, if possible. What would be a good way to debug it and find the part that creates these spikes?
    • Since these spikes are very short and at a (more or less) steady frequency, my guess is that they come from one of the ICs on the board, and not from analog discrete parts. But looking at their datasheets, I couldn't find any reason why any of them would consume ~14mA every 500μsec when the system is in a deep sleep mode.
      Any idea?
  • \$\begingroup\$ Why would anyone have any idea; no data sheets, no circuit, no idea. Also, try connecting your current sense resistor so that the scope is grounding the negative rail of the supply. \$\endgroup\$
    – Andy aka
    Commented Dec 16, 2019 at 10:04
  • \$\begingroup\$ @Andyaka fair enough. I gave a list of components above but I didn't really expect everyone to start reading their datasheet to analyze this. The question is more about: 1. Am I measuring and understanding this correctly? 2. How should I further debug this (which good practice), regardless of what the exact components are. \$\endgroup\$ Commented Dec 16, 2019 at 10:08
  • \$\begingroup\$ Regarding the current spikes, here is what I would do: 1) Check each of the device's datasheet to try to identify which has the more chance to wake-up every half-second 2) If no conclusive evidence from datasheet readings: disconnect or force reset line low on each IC and check if spike is still there 3) After identifying the IC, check datasheet for current consumptions, identify which mode it is likely in, compare averaged current too 4) If not the mode you expect, start diving into the IC registers to figure out if some peripherals/clock are still on and correct those modes. \$\endgroup\$
    – eeintech
    Commented Dec 16, 2019 at 17:51

1 Answer 1


It's difficult to cover the dynamic range required to measure both peak current and sleep current at the same time.

When trying to verify very low sleep current requirements, I use the following circuit, with component values suited to the particular load.


simulate this circuit – Schematic created using CircuitLab

R1 is a reasonable value to develop a measurable drop at the expected uA levels. C1 is large enough to source all of the high current pulse demanded periodically by the load with negligible drop during the pulse, say <100mV, verify this with your scope.

Of course a large electrolytic for C1 will have a large leakage current, and this current may vary with time, especially if your C1 has just come out of your junk box after sever years uncharged, but this can be measured, tracked, allowed for with a bit of care. Letting the capacitor sit at its maximum voltage for a while before using it will reform the insulating oxide, and should mitigate most of the high leakage and its variation before using.

Replace C1 and R1 with much smaller values to characterise your peak load current.

  • \$\begingroup\$ Your suggestion was very useful! I've added a large capacitor and tried a sense resistor of 10/100/1000 Ohm. Now I measure a consistent 160-200μA which makes more sense (albeit a bit high). Do you have any idea why the original value I got with the 0.5 Ohm resistor (1.12mA) was so high? Could it be related to the scope's sensitivity? or to some artifact of the circuit/measurement setup? \$\endgroup\$ Commented Dec 17, 2019 at 7:31
  • \$\begingroup\$ 200uA * 0.5ohm is 100uV. Does your scope have that sensitivyty, or offset? I have another answer to this question which you might be interested in, but it's more complicated and untested. current sensing nA to mA \$\endgroup\$
    – Neil_UK
    Commented Dec 17, 2019 at 8:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.