I need to monitor the charge and discharge current of two 12V lead-acid batteries in series using an INA219 current sensor, and a 0.75 mOhm shunt. At first, I placed the current shunt in the low side of the circuit as shown below in the first figure. That setup was necessary due to the common mode limitation of the INA219, which was 26V; high side sensing was not an option due to the voltage of the two lead acid batteries in series that could reach 26V. The low side sensing was working as intended.


simulate this circuit – Schematic created using CircuitLab

I decided to place the shunt between the two batteries in the series connection to reduce the number of wires. This lead to an almost constant sensor reading of 0.5A (meaning a shunt voltage of 0.4 mV was obtained) when no voltage is present across the shunt(see figure 2 below). I did probe the shunt with an oscilloscope and beside negligible harmonics, there wasn't any DC component across the shunt. I did the same with a multimeter and a stray reading of 0.003 mV (9999 count multimeter) was obtained across the shunt, which is also negligible. I also measured the current in the loop using a current meter and the result was 0 mA. This current reading quickly becomes null once I disconnect the shunt from both battery terminals which leads me to believe that the batteries are affecting the sensing somehow; More specifically, The BAT1+ terminal, since when I connect the shunt to it, this problem occurs.


simulate this circuit

What exactly is causing this offset in the reading of the current sensor and how do I eliminate it?

Note: the low pass filter was used to reduce harmonics as per the datasheet instructions of the INA219.

Current sensor Datasheet

  • \$\begingroup\$ How are you powering the INA219, and setting its gain? Please add to schematic. \$\endgroup\$ Commented Jun 17, 2022 at 20:43
  • \$\begingroup\$ Does the part still work when placed in the original circuit? In the present design, if BAT1+ is ever disconnected when a load is present, -12V appears in the INA219 inputs. I was wondering if the part could be damaged. \$\endgroup\$ Commented Jun 17, 2022 at 22:38
  • \$\begingroup\$ The datasheet mentions max 100 µV offset error at gain 1. Which gain did you configure to calculate 0.5A at 750 µohm? \$\endgroup\$
    – Jens
    Commented Jun 17, 2022 at 23:38
  • \$\begingroup\$ @JohnBirckhead yes it still works for the original design. \$\endgroup\$
    – A.H.Z
    Commented Jun 18, 2022 at 9:20
  • \$\begingroup\$ @Antonio51 The INA219 datasheet states that the maximum supply voltage should not exceed 6V and is independent of the commont mode voltage. You can see those limitations on page 4 of the datasheet. \$\endgroup\$
    – A.H.Z
    Commented Jun 18, 2022 at 9:23

2 Answers 2


The shunt used only generates 375uV. This is not ultra low, but precautions are required.

Common Mode Rejection Ratio: The INA219 has a typical CMRR of 120dB. Hence by moving the sense point to the other side of BAT1 you've added 12V of common mode. This is expected to appear as an error then of 12uV RTI (referred to input). Likely to be a contributor, but much smaller than the offset reported.

Note CMRR can be tested easily. Short INA219 inputs together (or just leave the almost short 750uOhm!) and connect to a variable PSU. Check how much the output varies over 0-12V.

Processing: Has the software processing chain be proven correct with large known currents? Does the software set the correct gain in the device for what its calculating? I wonder if its a combination of wrong scaling and the CMRR issue.

Input Bias: I'm am a little suspicious over the slightly different way the IN+ and IN- bias currents are specified (despite both being 20uA). Is there any chance R3/R4 are not actually 10Ohms but much higher. This could induce an offset error larger than expected for the device if coupled with unequal bias currents.

Thermocouple effects: Given sub millivolts are being investigated maybe double check for these type of issues. Unless something is really wrong it shouldn't explain the magnitude of offset observed.

  • \$\begingroup\$ "Has the software processing chain be proven correct with large known currents? Does the software set the correct gain in the device for what its calculating?". Yes it definetly does, with the initial setup I've mentioned I've been able to obtain current measurements with an accuracy of 0.7% throughout its measuring range ( tested with an active load). I am now suspecting input bias and will definetly check the input currents/ voltage difference at the INA219 side after the low pass. \$\endgroup\$
    – A.H.Z
    Commented Jun 18, 2022 at 10:53
  • \$\begingroup\$ After testing the input bias currents, I've found that 50µA is being drawn from from the shunt terminal to Vin- while 15 µA is being drawn from the shunt terminal to Vin+ which is why there is a voltage of 375µV present between the actual Vin pins going to the IC. I still do not know the reason behind this however, it only happens when I connect the shunt to the batteries, a 45µA difference is rather big. \$\endgroup\$
    – A.H.Z
    Commented Jun 18, 2022 at 13:22

You wrote: " I did the same with a multimeter and a reading of 0.0003 mV was obtained across the shunt, which is also negligible."

Can you really measure 300nV ? An ordinary multimeter can not do this.

I think you mean 0.0003 V, this are 0.3mV.

If you have a voltage drop of 0.3mV over 0.75m ohm, then the current would be: 0.0003V / 0.000750 ohm = 0.4A

Possibly the voltage drop is: 0.000375V / 0.00075 ohm = 0.5A

Please check the current with a multimeter or a clamp meter. Possibly there is an unwanted current flow. Check all the ways the current can go.

  • \$\begingroup\$ There is no current i checked with the current meter, and the multimeter was showing 0.003 mV ( i added a zero by mistake) it was just showing a stray value, I have an ANENG8009 meter with 9999 count which is why it is capable of display that amount of digits. \$\endgroup\$
    – A.H.Z
    Commented Jun 18, 2022 at 9:16

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.