I am using the VOLTCRAFT VC130 multimeter for measurement of current through my esp32. The microcontroller runs perfectly with two 1.5V batteries(~3V as read by multimeter in voltage mode). But when I put the multimeter in current mode between power supply(batteries) and esp32 in series for the monitoring the current. The brownout detector triggers. The brownout voltage level is 2.43 V +/- 0.05 for the esp32.

  • 5
    \$\begingroup\$ Spend some time reading about burden voltage. This can be a tricky problem - if you are trying to measure peak current put the meter on a larger scale. For sleep current you may sometimes be able to bypass the meter with a clip lead during startup, and then remove the bypass once you know the system is asleep. Or you can use a carefully chosen sense resistor with a scope or something like an INA219 to do power vs. time studies - adding a small capacitor across the resistor may help smooth out the picture a little while still letting you see various modes of operation. \$\endgroup\$ Jan 4, 2019 at 16:26
  • \$\begingroup\$ What is duty cycle and rep rate of Wake mode vs Sleep mode? Are you trying to measure current in each mode or average? \$\endgroup\$ Jan 4, 2019 at 16:54
  • 4
    \$\begingroup\$ You can use an external amplifier to reduce the burden voltage. A cheap multimeter will typically have 200 mV full-scale, but this can be reduced by a factor of 10 or 100. \$\endgroup\$
    – Dave Tweed
    Jan 4, 2019 at 16:56
  • \$\begingroup\$ Try using the "10A" jack. Your current reading may be small, but the burden voltage should also be small - likely brownout won't trigger. \$\endgroup\$
    – glen_geek
    Jan 4, 2019 at 18:12

4 Answers 4


To prevent this problem you select a small value resistor to put in place of where you are at present trying to place the multimeter for the current measurement. Then use the meter in voltage mode to measure the voltage drop across the resistor. Using Ohm's law you can compute current from voltage divided by resistance.

The meter internally uses this same technique in the current mode. However at whatever current range you were using the meter's internal resistance is high enough that the net voltage drop is sending the MCU into the brown landing zone.

Another technique that can be used is to power the unit from an adjustable bench power supply where you can tweak up the source voltage slightly to compensate some for the drop for a series multimeter in current mode. Care must be taken with this though to avoid running your target device at a voltage above its ratings.

  • \$\begingroup\$ how much resistance would you suggest? \$\endgroup\$
    – Alok Y
    Jan 7, 2019 at 9:38
  • \$\begingroup\$ You have to figure that out for your self. Value has to be small enough such that the voltage drop across it due to the load current does not disrupt the operation of the load. At the same time the value has to be large enough so that the voltage drop is measurable by your DMM. \$\endgroup\$ Jan 7, 2019 at 15:45

This meter can read down to 200uA full scale or 400mV full scale.

That means it uses 400m/200u=2k series resistor for the lowest scale so when it comes out of sleep mode you get a Brown Out.

If your IoT device spends more time sleeping, you could also put a large e-cap across the meter in the mA range to average current. But dV = Ic*dt/C so depending how long pulse current = Ic and duration dt= and value of Cap, C determines the change in dV needed to prevent brown out.


I can think of two reasons why you may want to measure current: you worry about what the peak current is and whether your batteries can provide it, or you want to know if how long your batteries will last. Now, bear in mind that power consumption of such devices can vary a lot depending on whether and how often they are transmitting, but also what kind of operations they are performing. For a fun activity, write a tight loop that does nothing, and compare it with a tight loop that writes to flash (sequentially, and not for long, or you'll kill your flash), and compare the power drawn. But I digress.

Anyway, if you are interested in the instantaneous current draw during the wake cycle at a higher temporal resolution than your voltmeter will show you, use the same technique as Michael Karas suggested, but hook up your oscilloscope across the shunt (needless to say, if your scope does not have an isolated ground, use two channels in differential mode).

To see how long your batteries will last, just put in a fresh set and let them run until they die. I know it sounds silly, but you'll get more reliable results this way. Of course, if you are aiming for multi-year battery life with very long sleep cycles, this won't quite work :)

While we are at it: the two easiest ways of reducing the power consumption are to limit the maximum transmission power (there are API calls fro that) and also lower the clock rate.

I assume by your statement that you are using two 1.5V batteries that you are not using one of the breakout boards with the built-in regulator, but that you are feeding 3V to the module directly, correct?


You basically need a multimeter that has lower burden voltage at the range you want to measure.

In general, there is a trade-off between accuracy and burden voltage. IOW, the lower the range you select on your multimeter the higher the burden voltage is.

The burden voltage is the voltage drop at your multimeter when you put it in series to measure the current. Basically, the multimeter measures the voltage over an internal resistor and computes the current from that.

When you multimeter uses an internal resistor of - say - 100 Ohm at the current range you (or the auto-range mode of your multimeter) have selected then it only requires your ESP32 MCU to consume 5.7 mA for the voltage drop to yield a brownout condition!

Better multimeters specify their burden voltage in their datasheet. AFAICS, the VC130 doesn't do that.

For example, the EEVBlog 121GW multimeter has a relatively low burden voltage of 100 µV/µA at the µA ranges and 2 mV/mA at the mA ranges. Meaning that your MCU could consume up to 284 mA until the voltage drops to brown-out values.

Of course, increasing the MCU VCC voltage just a bit for the power management might make sense, too.

An alternative to a multimeter with low burden voltage is a specialized current measurement device such as the Joulescope which has a low burden voltage of 25 mV at 1 A over all ranges and supports very fast auto-range switching.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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