Close

Improving Ozone and NO2 Sensor Performance

A project log for Street Sense

Portable electronic device to measure air and noise pollution

mike-teachmanMike Teachman 05/14/2019 at 17:070 Comments

This project update outlines some incremental improvements to the ozone and NO2 sensor performance.

A separate analog power supply was created on the breadboard to provide 3.3V to the ADC and Spec Sensor modules.  The idea is to isolate these sensitive analog components from the noisy 3.3V digital power supply.   The battery provides power to the input of an ultra-low dropout linear regulator which then feeds the ADC and Spec Sensor modules.   Luckily, the combined current consumption of the Spec Sensor modules and ADC are low enough that the Lolin D32 Pro battery charging circuit is not affected.  The analog power supply circuit can be found in the version 8 schematic.

The method of reading the sample values from the ADC is another significant change.  Previously, the ADC was polled using I2C in single-shot mode to detect every new sample.  The polling with I2C was factor in creating unwanted noise into the Vgas outputs of the Spec Sensors.  This noise was appearing while the ADC was performing the conversion - not good.  Now, the ADC runs in a continuous conversion mode and the ~DRDY signal is used to run an ISR in the MicroPython code.  The ISR reads the sample value.  This is arrangement is better for two reasons:

  1. I2C polling during ADC conversion is eliminated = less noise is seen by the sensitive op-amp circuits in the Spec Sensor modules
  2. The MicroPython code is more efficient - no more polling is need to detect the end of ADC conversion

The MicroPython code for this change is documented with this github commit.

Here is what the breadboard prototype looks like now.  You'll spot the new voltage regulator which sits just below the two orange tantalum capacitors.

Here are some ozone measurements that were published to Adafruit IO using the MQTT protocol, every 2 minutes.  The units are parts-per-billion (ppb).  The goal is to have a resolution of 10ppb. You can see that the readings still bounce around.  It is significantly better with the changes.  But, there is still work to be done to improve measurement stability.  

These latest changes seem like the end-of-the-road for improvements to the breadboard prototype.  Breadboards have so many other limiting factors such as capacitance between metal connection strips and stray inductance.  Future improvements in sensor measurement performance will need to come from  other means, such as soldered connections and likely a custom PCB.

Discussions