Thanks for reading that long topic on the Fibaro forum and answering in detail. So the only remaining issue is the input buffer current.
First, I have to clear up some confusion. I have no issues with the hardware, nor with the software aspect of this project. Long time ago I worked as a test engineer, I wrote programs to test the specs of analog and mixed signal chips... But I am not sure about the other people involved in that topic, so I really appreciate it when you go through the basics! And I'm also fairly new the Z-Uno so I appreciate this too!
Also, thank you for planning a test to investigate the input issues when more than 1 input gets sampled. The OP needs more than 1 input so this is important to him. He can work around the issue by adding buffer(s) or a multiplexer but this would increase complexity.
I wonder why you suggest to use the Z-Uno Voltage regulator... There is a diode between the 3V3 regulator and the SoC so I expect the VCC to be noisier, more variable and less accurate than the 1.25 V reference. Did I miss something? Is there any particular reason why you do not like the internal reference? Remember, the OP is going for at least 1024 significant bits in this case (maybe at 12 bit resolution) and he'd like to get 0.1 % accuracy as well...
Regarding divider: you say: "R1+R2 = 100KOhms will be enough, 10V/(100KOhm) = 100uA." At room temperature, I measure < 1 uA input current to the ADC so I agree. But the Spec of the chips says +/- 10 uA so in that case the input current would cause too much loading of the divider and I would not get accurate results. I'll do more tests to confirm the value of the leakage on 1 input but at higher temperatures, the spec might be too pessimistic.
I also connected a ADS1115 delta-sigma 16-bits ADC (so integrating type). Costs a few $ on a breakout board. If you are interested, I'll turn it into a complete solution and post it here so you can link to it on your website.
Datasheet:
http://www.ti.com/lit/ds/symlink/ads1114.pdf
This chip is a much better solution for this particular application (measuring 0-10 V of existing tank pressure and temperature sensors).
I did some basis measurements and it beats the built-in ADC by an order of magnitude on several aspects.
- Extremely easy to use. Requires almost no code (only send a few commands over I2C).
- 4 single ended inputs (or 2 differential).
- 15 bits resolution + sign bit (= 16 bits in total).
- IT automatically averages the input. No math/loop/time/sampling needed.
- It does not keep the Z-Uno busy
- 8 -> 868 samples per second.
- built-in programmable gain amplifier.
- built-in reference.
I'm not from Ti, I do not gain anything by saying this!
I think this chip beats the Z-Uno ADC any time you need to sample signals below 400 Hz... And if the Z-Uno input current issue cannot be solved, I would certainly use this chip instead of adding buffers or other stuff... What do you think?
Are you interested in a comparison between this ADS1115 and the built-in ADC? In that case, I'll take some extra measurements and produce a nice document. Just ask and then give me a few days...
Again, thank you for your fast and to-the-point answers. I think this is a strong selling point of the Z-Uno.
EDIT: the original breakout board from Adafruit:
https://www.adafruit.com/product/1085