ENS160 Air Sensor Calibration, Reliability and Benchmarking

Hi,
I'm looking specifically for a SPI or analog air quality sensor. The majority on the market are i2c and due to the distance between the ESP32 and sensor this is not a reliable method of communication/connection. At the moment, I'm experimenting with the https://wiki.dfrobot.com/SKU_SEN0515_Fermion_ENS160_Air_Quality_Sensor but it does not seem to provide readings that would be considered in the right ball park. I understand the issue of accuracy but would expect a £20 sensor to provide results in the right ball park.
My first experiment was to run the sample code as provided on the wiki. This gave me an air quality of 5 in a normal room of our house even when left on for a long time (few hours).
So as a second experiment. I set up a comparison of the ENS160 against the SGP30 from Adafruit. In both cases I was using a SHT31 to provide temperature and humidity. I left it running for 24 hours outside in fresh air in a rural location. Below are a selection of outputs from the program, which is just a mash up of the example programs for the SGP30, EN160 and a SHT31 for temperature and humidity. I have included the code in a file below.
I'd welcome any insight into the sensor. The SGP30 has a baseline option where you can set baseline values from a known environment which I have done with fresh air. The EN160 only seems to have the automatic option but I cannot see it working at the moment.
Thanks
Max
***** STARTING CAVE MONITOR *****
SHT31 - Heater Enabled State: ENABLED
SGP30 - Found 0 - 1C1 - 8541 and baseline set.
cave_monitor setup complete at 1658419996; data interval: 5000.
LOOP: 1658419996 - Thursday, 21 July 2022 16:13:16
SHT31 - Temp *C = 26.27 & Hum. = 44.09
SGP30 - TVOC: 0 ppb; eCO2: 400 ppm;
SGP30 - Raw H2: 14094; Raw Ethanol: 19157;
SGP30 - Baseline values: eCO2: 0x 99C5; TVOC: 0x 97A2
ENS160 - Sensor operating status : 1 (0Norm, 1WarmUp, 2StartUp)
ENS160 - AQI: 5; TVOC: 2389 ppb; eCO2: 1289 ppm
LOOP: 1658493111 - Friday, 22 July 2022 12:31:51
SHT31 - Temp *C = 26.12 & Hum. = 44.16
SGP30 - TVOC: 466 ppb; eCO2: 402 ppm;
SGP30 - Raw H2: 14608; Raw Ethanol: 19679;
SGP30 - Baseline values: eCO2: 0x 9AAD; TVOC: 0x 9ABC
ENS160 - Sensor operating status : 0 (0Norm, 1WarmUp, 2StartUp)
ENS160 - AQI: 4; TVOC: 1169 ppb; eCO2: 1042 ppm
LOOP: 1658493116 - Friday, 22 July 2022 12:31:56
SHT31 - Temp *C = 25.84 & Hum. = 43.81
SGP30 - TVOC: 458 ppb; eCO2: 400 ppm;
SGP30 - Raw H2: 14626; Raw Ethanol: 19688;
ENS160 - Sensor operating status : 0 (0Norm, 1WarmUp, 2StartUp)
ENS160 - AQI: 4; TVOC: 1125 ppb; eCO2: 1032 ppm
LOOP: 1658609860 - Saturday, 23 July 2022 20:57:40
SHT31 - Temp *C = 17.98 & Hum. = 79.94
SGP30 - TVOC: 299 ppb; eCO2: 400 ppm;
SGP30 - Raw H2: 14867; Raw Ethanol: 19851;
ENS160 - Sensor operating status : 0 (0Norm, 1WarmUp, 2StartUp)
ENS160 - AQI: 3; TVOC: 415 ppb; eCO2: 840 ppm
LOOP: 1658609865 - 23 July 2022 20:57:45
SHT31 - Temp *C = 18.01 & Hum. = 80.03
SGP30 - TVOC: 344 ppb; eCO2: 400 ppm;
SGP30 - Raw H2: 14771; Raw Ethanol: 19821;
ENS160 - Sensor operating status : 0 (0Norm, 1WarmUp, 2StartUp)
ENS160 - AQI: 4; TVOC: 719 ppb; eCO2: 929 ppm
Hi and good morning,
Sorry the delay in responding. I've been moving the circuit from a breadboard to prototype PCB. The ENS will be connected via the 6pin connector towards the bottom. Yes, I noted the 3.3v so everything else is powered via the outer rails at 5v but its from the 3.3v. Apologies for the photo angle - the pins do line up correctly. The MCU is a AZDelivery NodeMCU V2 WiFi Amica ESP8266 ESP-12F I2C Development Board CP2102 although the original tests were performed on a ESP32 (same brand). I'm programming via Visual Studio Code if it makes any difference.


Hi,
What kind of MCU are you using? The ENS160 requires a 3.3V power supply.Could you please send me the photos of the wiring you used if it is convenient?
