bme690 high sensor-to-sensor deviation (IAQ)

I am using bme690 sensor on a custom PCB with ESP32. I am also using version bsec_v3-2-1-0 of the library with forced and LP modes. I am using the code in bsec_v3-2-1-0/examples/BSEC_Integration_Examples/examples/bsec_iot_example. I have done a test to measure the precision of the iaq measurement. The datasheet specifies Sensor-to-sensor deviation (IAQ) of ± 15% ± 15 IAQ. I have followed this testing guide by Sensirion to see the behavior of the sensors. The only modification is that the high concentrate solution I used is diluted 10:1 instead of 100:1. I subjected 4 sensors to the same procedure. I have attached graphs that compare different parameters of the 4 sensors. The legend contains their IDs. Is the gas resistance measurement (middle graph) within spec? Does the variance in magnitudes and rates of change of the gas resistance graphs among the 4 sensors lead to the big difference in iaq and tvoc calculations? The difference exceeds 15%. Also why would the sensor represented with the blue color have a constant resistance value? And the sensor represented by the green color has tvoc value that kept increasing unlike the orange and red sensors?

In case this information is relevant: I have noticed that

    ret = bsec_iot_init(SAMPLE_RATE, bme69x_interface_init, state_load, config_load);

Always returns BSEC_W_SU_SAMPLERATEMISMATCH even when SAMPLE_RATE is BSEC_SAMPLE_RATE_LP and I am using the config file bme690_iaq_33v_3s_28d/bsec_iaq.c. However, bsec_iot_loop procedure never returns any error codes signaling that sampling is done correctly.


Please let me know if you need any more information. I can generate graphs for all the outputs of the bme690 sensor.

sensor_plot_tvoc_gas_iaq.png
327.38KB

Sensor
BME690
Application
Airquality
Development Platform
esp32 using the arduino framework with Freertos
Project Phase
EVT
Label
Hardware
31 replies
BME690