EmbeddedEra EmbeddedEra

← Notes from the bench.

Why a current monitor reads wrong at 1 mA

Oct 23, 2026design-for-testpcb-designfirmwareDrafted with AI assistance, reviewed and edited by our engineer.

You put a current monitor on the board. At 100 mA it agrees with the bench meter. At 1 mA it is off by a visible amount. At the 20 µA your firmware draws asleep, it reads a steady number that has nothing to do with reality. The part is not broken. It is working inside its error budget, and the budget was never sized for the bottom of your range.

This is common on battery products, where the load spans several decades: microamps asleep, tens of milliamps awake, a couple hundred during a radio burst. One shunt and one amplifier cannot cover all of that equally well. Here is why, and what to do about it.

The shunt only gives you a few microvolts to work with

A shunt monitor measures the small voltage across a resistor. The INA226, a widely used I2C part, reports shunt voltage in steps of 2.5 µV, with a full-scale range of about ±81.9 mV, and a maximum input offset voltage of 10 µV, according to the TI datasheet. Check these figures against the datasheet revision you are designing against, because some figures have changed between versions.

Offset is the number that matters at low current. It is a fixed voltage error that is added to the true shunt voltage, so it is a fixed current error once you divide by the shunt resistance. The arithmetic is short:

  • With a 0.1 Ω shunt, a 10 µV offset looks like 100 µA of current. At 1 mA that is up to 10 percent of the reading. At 20 µA the reading is meaningless.
  • With a 1 Ω shunt, the same offset looks like 10 µA. That is ten times better, but you now drop 1 mV at 1 mA and 100 mV at 100 mA, which your supply rail may not tolerate.

Texas Instruments says it plainly in its application note on current-sensing accuracy: the offset error, bias currents and input-referred noise of the amplifier limit the smallest current you can measure across a low-ohm shunt. A larger shunt helps, but the voltage you give up has to be spent somewhere in your design.

The datasheet number is a worst case, and a typical part will do better. But you cannot ship a product on the typical part. If the reading has to be trusted on every unit, design to the maximum or calibrate each unit.

Three other things that distort a small reading

Layout. At low shunt resistance, a few milliohms of stray trace resistance in series with the sense path is a real fraction of the shunt. TI’s guidance on low-side current-sensing layout is to make a Kelvin (four-wire) connection from the shunt pads to the amplifier, so that the sense traces carry no load current. Its Precision Labs material on shunt resistor layout adds that mismatched trace resistance on the two sense lines can create offsets through the amplifier’s input bias currents. Keep the two sense traces short, matched and routed as a pair.

Temperature. A perfect layout fixes the error you measure on the bench at room temperature. The same TI application note points out that it does nothing for the drift of the shunt itself. If the product lives outdoors or in a warm enclosure, either choose a shunt with a stated temperature coefficient, or calibrate at more than one temperature, or accept a wider error band and write that down.

Averaging and burst timing. The INA226 averages over a configurable conversion time, covered in the datasheet’s section on averaging and conversion time. Averaging reduces noise on a steady load. It also smears a short burst into its neighbors. A 5 ms radio transmit measured with a long conversion window will read as a smaller, wider bump. If you want charge per event, integrate with a window that you know covers the burst. If you want peak current, a monitor is the wrong tool; use a scope on a small series resistor.

What a careful engineer does about it

Start by deciding what you need to know. There are three different jobs hiding under “measure current,” and they have different answers.

  1. Firmware needs to know the load for a decision, such as a motor stall, a stuck relay or a battery gauge. You need modest accuracy, over a modest range, all the time. A monitor with a shunt sized for the working range is right, and the sleep floor does not matter.
  2. Manufacturing needs to confirm the board draws the right current, in sleep and in active modes, before it ships. This does not have to live on the product at all. Put the measurement in the test fixture, where you can use a better instrument, a larger burden, and a range you can switch freely. The same fixture can then cover the board’s other checks, as in what test points and programming pads a board needs.
  3. Engineering needs to understand the power profile during development. Use a bench instrument built for it. Do not try to turn the on-board monitor into a precision tool.

If the product really does need to measure both microamps and amps on its own, the usual options are these, with their trade-offs:

ApproachWhat it buysWhat it costs
Larger shunt, accept the dropSimple, one rangeVoltage burden at high current; heat in the shunt
Two shunts, switched by firmwareGood accuracy at both endsExtra parts, a switch whose own resistance matters, and a transition to handle in firmware
Zero-drift current-sense amplifier ahead of an ADCMuch lower offset and offset driftA different part family; you design the gain and ADC range yourself
Calibrate offset at zero current in firmwareRemoves most of the fixed errorNeeds a moment when the load is truly zero, which is not always possible

TI’s own notes list a zero-drift current-shunt monitor as the way to minimize the offset-drift contribution, so if the low-current floor drives the design, start from that family and not from a general-purpose monitor.

The zero-current calibration deserves a closer look. If your firmware can put the load into a known idle state, read the monitor, and store the result as the offset, you subtract the fixed part of the error. This only works if the zero is real. A leaky input divider, an LED indicator or a pulled-up bus on the measured side will all keep the current from being zero. Which brings up the last point.

Check what the monitor actually sees

Before you trust any low reading, confirm that the shunt is in series with the right thing. Put it on the supply side of the whole load, or you will miss the regulator’s quiescent current, a leakage path through a protection diode, or a sensor that is powered from somewhere else. This is the same trap behind most sleep current that comes in above the datasheet: the number is real, but it is not the number you thought you were measuring.

Then do the cheap check. Disconnect the load and read the monitor. That is your offset floor on that unit. Apply a known current from a bench source at three points, one near the bottom of your range, one in the middle and one near the top, and compare. If the error is a constant number of microamps at all three, it is offset, and a zero calibration or a bigger shunt will fix it. If the error scales with current, it is the shunt value or gain, and a two-point calibration will fix it. If it moves around with temperature or with the other signals on the board, go back to layout.

How we approach it

We size the shunt and amplifier from the lowest current you need to trust, not from the highest, and we check the choice against the worst-case offset in the datasheet instead of the typical figure. If you send us the schematic, the current range you care about in each operating mode, and the accuracy the firmware or your production test actually needs, we can tell you whether the on-board monitor will do, or whether the measurement belongs in a fixture.

If your board's current readings only make sense at the high end, we would find the offset floor and design a measurement path, on the board or in a fixture, that holds at microamps.

ENGINEERING NOTES

One note a week on PCB design, firmware and getting hardware built. No sales email.

Double opt-in. Unsubscribe in one click.