The original design used a carbon monoxide (CO) sensor from SPEC, in a 6 lead through hole package. They also offer a number of sensors in the same package: NO2, alcohol, O3, SO2, H2S.
I was interested in the ozone (O3) sensor, as electrostatic filters can generate some ozone.
It is essentially a drop in replacement, however some circuit elements and code needs to be changed. For comparison:
|Carbon Monoxide (110-102)||Ozone (110-401)|
|Sensitivity||4.75 nA/ppm||-12 nA/ppm|
|Range||0 to 1,000 ppm|
0 to 4.75 uA
|0 to 5 ppm|
0 to -60 nA
So while the sensitivity is higher, the range is much smaller and higher TIA gain is needed. Recommended is 500k, however the LMP TIA amplifier used will only go up to 350k. This means a maximum voltage output at -60nA of only 21mV. With a 10-bit ADC and a 3.3V reference, that would give us only ~26 counts to cover the full range of the sensor.
The reference voltage needs to be reduced, but there is a limit. LMP91002 has a lower level of 1.5V:
STM32L476 has a lower limit of 1.62 to 2.4V:
So U8 can be replaced by LM4120AIM5-1.8 for example, to provide 1.8V Vref and 48 counts to cover the full range. Still not great, but better than before. Oversampling will help, although this point is really pushing the gain of the LMP91002.