I'm trying to
accurately measure the output of an R22 electro-chemical oxygen sensor for a project with a microcontroller.
Essentially these sensors output ~10mV at atmospheric oxygen levels (21% PP02), and include an inbuilt resistor network for temperature compensation. The output varies linearly (within limits) with oxygen partial pressure. They are commonly used in diving equipment (don't worry, that's not what I'm using them for). There's an excellent write up about how they work here:
https://www.advanceddivermagazine.com/articles/sensors/sensors.html This is my first attempt at a circuit:

The idea was for the TL431 to generate a 2.5v reference voltage so we are working within the input common mode range of the INA333 instrumentation amplifier. The sensor is connected across load resistor R14. R15 and C29 provide some noise filtering. R16 (505R 0.1%) should set the amplifier up for a gain of x100. The voltage out to the ADC would be 100 times the input (eg. 1 volt at 10mv input) so it can be measured more accurately by an ADC.
However my circuit doesn't work very well.
When I measure across the sensor in-circuit with my multimeter, I find 9.8mV. When I measure with my oscilloscope, I find a DC average of 12mV.
When I measure the sensor out of circuit, both my multimeter and oscilloscope agree on almost exactly 10mV.
The voltage over the TL431 is 2.481v.
I shorted R15, and still find 12mV with the oscilloscope.
The output voltage of the INA333 is also way off what I was expecting, 1.88v (IE not a gain of x100, more like x180).
Everything from the ADC onwards works as it should. The ADC reading is agreeing on the 1.8v I measured on its input. Its the circuit trying to amplify the small 10mV signal to something meaningful that I can measure accurately that is causing the problem.
Can anyone offer guidance / recommendations? At this point I am getting a bit frustrated, and I'm would be more than glad to scrap the whole lot and go back to the drawing board. What is the correct way to amplify the 10mv signal accurately?
Thanks in advance