1.
Voltage divider, 've seen a few topics on this forum discussing measurements of linearity using this approach. Idea is simple, measure voltage between A-B and B-C and sum up. Total must be A-C (Reference Voltage). See picture "Simple divider".
(B-A + C-B) = A-C
If not, we have linearity error at the middle.
Issue: to have good accuracy (very) many measurements should be done to average
results and get SNR level under control below 1 ppm. Manually to do this work is a nonsense,
to put arduino on duty - have to buy relays. One point in the middle of scale obviously is not
enough, though a lot of relays. More issues: price, reliability, complexity of assembling etc.
2.
Propose.
It would be nice to have a DAC, 8 - 12 bits in place of voltage divider. Unfortunately,
I've never seen a DAC with two outputs from the same string.
But there are dual DAC's freely available. Look at the picture: it's the same as initial gear
only with two ladders.
Middle points B & B' have different potential, but since arduino is
doing measurements, I don't care - just One more measurement between B and B' and all
math from paragraph 1 is Correct !
(B-A' + C-B' + B-B') = A-C'
As voltage difference in between B-B' is small. non-linearity is negligible and not counted. For example,
chart MCP3551-60 INL. Differential inputs, claimed value < 6 ppm. Look at the middle for low voltages, line crosses zero symmetrically.
3.
Results.
So far I observed a lower level INL of mcp3551-60, below 1 ppm, but not sure if my software is bug free - there are huge noise reduction processing involved. Fastest 3 points scan (2.048 V steps) tooks 3x32 = 96 seconds. Small scales steps ( < 0.25V ) consumed a lot of time, since idea is worked only all ladder scanned from the ground to the reference. Temp stability requirements for DAC is tough.
Would update later on if I have more results to share.