Measure with a shunt resistor and ADC pins


Hi there,

I am trying to make some measures with a shunt resistor of 100 mΩ (This one from farnell).

My setup is just as is described in your doc. I have used two loads: one embedded system and one simple resistor of 100 Ω.

On project settings I set the ADC current checkbox and set the value of my resistor.

However, measured currents are not the expected. I am using a regulable power source so I can see the current consumption there, but the OTII does not match the values so far. For example, for currents of 200 mA I get 300 mA with OTII.

Am I missing anything?

I thought to fake the resistor value on OTII software to match the current, but I don’t think it would be the best way…

I want to use this setup because I have a device working from 7V to 12 V and I can’t use the OTII to power it.


PD: I ran a calibration process before the tests, with a precision resistor of 1 MΩ, just in case


I was reading other posts like this, where you mention a low side shunt measurement for voltages above 5V volts.


Would it be right to connect AGND together with ADC- to the GND of the system and ADC+ to the shunt in series with the load, just as in the picture attached?



The low-side setup looks correct. The voltage on ADC+ and ADC- pins should be below 5V referenced to AGND (which is connected to system ground), so it’s definitely recommended to connect ADC- to AGND. Make sure there are no ground loops.

How have you connected the high-current vs sense wires to the resistor? With a relatively small value like 100mOhm it’s important with a proper Kelvin connection. It sounds a bit excessive that it would behave like a 150mOhm resistor though, but not unheard of if excessive current is flowing in the sense leads.


Hi, thanks for your answer.

Then, how would you exactly recommend to do it? I simulated a kelvin clip with short jumper wires.

I tested with a small protoboard, a Li-Oin battery of 3V3 with a 100 Ohm resistor. With this setup, I would measure 33 mA but up to 80 mA is measured with the OTII (due to the voltage over the shunt measured by the OTII has an offset.

Regarding resistor value, well, a generic IoT system with a radio would have current spikes up to 500 mA, which sets a resistor of 160 mOhm maximum. If higher currents, lower resistors.

I am interested in this because the right way to measure a system behaviour is being powered with the real supply, not the ideal OTII power source

Let me know your thoughts


This is how I envision your setup:

The offset you’re experiencing is very large so it would be interesting to see how the recording looks like with and without the 100 Ohm resistor (to see if it’s a combination of gain and offset errors or just offset). Alternatively you can record a few seconds with the 100 Ohm resistor and then change it to another value and perform another recording (parallel another resistor for example). As long as we know the combined value we can verify the offset and gain. If you can attach the resulting otii project here that would be great.

One last thing, are you running the lastest Arc firmware 1.1.1 in this unit? We did correct a small offset in the ADC readings in 1.1.1, but that only really comes into play when the voltage between ADC+ and AGND increases, which is not the case in this setup.


Hi there,

Good envision, Just like it is.
shunt_low_side_.otii (1.3 MB)
I attach the OTII project with osme measures. I have tested with 50, 100, 200 and 300 Ohm as load. Besides, two records with a voltage meter on the shunt and amperimeter in series with battery.

Battery voltage was 3.3V so current with 100 Ohm it is supposed to be 33 mA and the Voltage drop across the shunt 3.3 mV.

Using las firmware 1.1.2 on OTII

what do you mean with without the 100 Ohm resistor?

Here are also some pictures:
Simple circuit
100_ohm_circuit !

Real voltage across the shunt:
Also current reading:


Thanks for the recordings and the pictures, that explains a few things.

What I meant by “without the 100 Ohm resistor” was basically open-circuit to see the zero reading, something that I could see in the 12:53:00 and 12:58:27 recordings, which shows that this is not an offset issue.

When I’m looking at the breadboard wiring I believe you may have additional resistance from the breadboard to the shunt resistor. Your multimeter is clipped on fairly close to the resistor body, it would be much better if the ADC+/- pins could be attached similar to that, right next to the resistor body and not through the breadboard contacts. Contact resistance can easily be in the tens of mΩ. I believe that explains why the readings are off (the shunt voltage gets measured on the “wrong” side of the breadboard contacts which carry the current).


Thanks for your answer. I shorted the wires as much as I could and the readings got better

For an VCC of 3.7 V:
R_load = 50 Ω, I_ideal = 74 mA; I_otii = 72.4 mA
R_load = 100 Ω, I_ideal = 37 mA; I_otii = 36 mA
R_load = 200 Ω, I_ideal = 18.5 mA; I_otii = 18.4 mA
R_load = 300 Ω, I_ideal = 12.3 mA; I_otii = 12.3 mA


Also here are the waveforms.

shunt_low_side_.otii (1.7 MB)

For me, the problem is solved.