I want to measure current using a Arduino Uno and use a very low resistance of 0.1Ohm or lower for the shunt resistor to measure the current(to reduce power waste and heat generation), as a result resolution wouldn't be good at lower currents, while I do not need a very good resolution better resolution makes it more dependable and more easy to use and more universal. and it is very unlikely that I would run close to that many amps through it, as for that it would need 10A of current to reach 1V.

my idea to solve this was to set the Aref to a lower voltage of 1.1V by setting it to the internal Aref this would mean it could measure up to 11A of current but also has 5 times as much resolution.

but I noticed people online seemed to never do this, and instead just use higher restance of 1Ohm or such or directly use a external higher resolution ADC(and still only use a small part of it) or some dedicated amp measuring hadware. so I started to wonder does the internal ADC in the arduino behave worse when set to 1.1V aref instead of the default 5V aref despite the datasheet saying it can go down to 1V aref?

setting the Aref inside of the arduino to the internal Aref of 1.1V and using a 0.1 Ohm resistor would give +-10mA resolution(up to 11A), if I where to use a 1 Ohm resistor like most others do it would even give 1ma resolution(up to 1.1A).

is there something I am missing? which is the reason why other people do not change the Aref for this? does lowering the Aref to 1.1V cause a reduction in the lineairity of the ADC curve(so that at some places the steps are a bigger difference than at some other places) compared to when it is kept to the default 5V Aref?

or as a shorter more TLDR question:

does anyone have graphs or data available about the linearity of the arduino ADC with the ADC Aref at different voltages? mostly to compare the linearity at a Aref of 1.1V and 5V.


ADC Linearity in this context refers to integral non-linearity


I already looked into those 4 sources:

they all seem to confirm exactly what I was thinking with my solution. but none of them seem to give any info about how actually the Analog to Digital converter works on different Aref voltages, so for example if using a lower Aref might for example make the steps per volt less of a straight line and instead more of a curve or such where steps might all have different voltage difference differences? the datasheet I found only gave a fixed offset value but not how or if it was affected by the used Aref voltage, and neither any form or graph or such of the typical integral non-linearity. only one value that it has a integral non-linearity of 0.5LSB

things people mentioned

  • apaerently the arduino ADC indeed has some non linearity, but no actual values are given and neither if it also depends on the Aref voltage, people mention/reffer that the arduino ADC should be most efficient at the middle value of the ADC https://arduino.stackexchange.com/a/69390/70020
  • to reduce energy wasting and maintain higher resolutions people recommend adding in a differential amplifier which would allow using even lower shunt resistors and still a good resolution. in theory this should do the same as changing the Aref, but then allowing even more sensitivity since the Aref can only go down to 1v so 5 times amplificaton
  • 1
    It may be impossible to answer without being in the heads of the people you mention. My guess is that they were simply unaware that Aref can be changed. You may want to measure the conversion noise with INTERNAL, but I doubt it could be larger (in real voltage) than with DEFAULT. Commented Nov 16, 2023 at 15:43
  • With respect to answerability, like Edgar Bonet said. They and you are potentially going down the wrong path anyway. The most essential part of what I would say about that has been said by somebody else in this answer or its comments.
    – timemage
    Commented Nov 16, 2023 at 17:38
  • 1
    is there a reason or do they just all follow and clone similar guided - we can't really explain why some people are not doing something. This sounds a bit like an XY problem to me. You say resolution is bad at lower currents. Why do you need good resolution? What are you actually trying to achieve? Even a poor resolution solution could detect if a motor is drawing too much current. The Uno isn't really designed as a high-precision instrumentation device. Having said that, using a lower voltage on AREF could help in your situation.
    – Nick Gammon
    Commented Nov 17, 2023 at 6:32
  • @NickGammon I don't actually need such good precission or accuracy indeed, as long as it is roughly right, it is for a simple project where it needs to generate output currents in between +-100ma to around +-1A perhaps more in some cases but this is the main usage, it would need steps of around 50ma at most. the main reason for wanting improved resultion is because with such a arduino setup I doubt many people will actually use high enough currents to not make changing Aref worth it since going over 10A with such a setup doesn't seem smart in general, and most people use it much lower anyway Commented Nov 17, 2023 at 17:48
  • @EdgarBonet it was indeed surrounding how it would affect such noice and offset in the curve of steps per volt as if they stay lineair or not. I was thinking about testing it, perhaps wouldn't be the best way, but I thought about using a voltage divider and then comparing the 3.3v to the 5v or comparing some known voltage divider options which might perhaps show some curve shape difference when plotted, for the noise I wouldn't know how to properly test that safely since when it is connected it seems to not be to noisy anyway. Commented Nov 17, 2023 at 17:55

1 Answer 1


If you used the 3.3 volt pin as external AREF a 1.5Ω resistor would drop 3V @ 2 Amps, 3V would produce an ADC value of 930 or 2.15mA per ADC count. If you use the 1.1V internal AREF, a 0.5Ω resistor would drop 1V @ 2A, ADC values would be the same.

  • Hi, that was the thing I thought as well, my question was a little unclear at first however. but essentially in my question I more meant to ask about if I change the Aref will that change the accuracy at which the real hardware follows the calculations. since the calculations asume each step is a fixed voltage difference but at different voltages it might be that the hardware would become less consistent in that, so I mostly wanted to know if that was the case for the arduino uno, if the consistency with which the ADC follows the calculations would change decently at a different Aref Commented Nov 17, 2023 at 18:40

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.