11-13-2023 04:52 PM - edited 11-13-2023 04:55 PM
I am working with an Arduino Nicla Sense ME to measure indoor air quality.
Unfortunately the resulting values are far off realistic CO2 PPM values.
When starting the controller the co2_eq values stay at 500 for about 5 minutes.
After that they jump to 400 and increasing. That seems to be standard procedure.
In a room with around 700 PPM CO2 (external CO2 monitor) the Nicla's co2_eq values are around 1000-2000.
It drops to around 500 when opening the windows. But it also increased to over 1000 immediately after closing.
I also started to train the sensor with extreme values for 30 Minutes. I put it in a box with fresh air and put it outside. And i put it in a box with the smoke of a matchstick. After that the values are over 3000 and stay there for hours.
The documentation writes:
The IAQ scale ranges from 0 (clean air) to 500 (heavily polluted air). During operation, the algorithms automatically calibrate
and adapt themselves to the typical environments where the sensor is operated (e.g., home, workplace, inside a car, etc.).
This automatic background calibration ensures that users experience consistent IQ performance. The calibration process
considers the recent measurement history (typ. up to four days, configurable) to ensure that IAQ ~ 50 corresponds to "typical
good" air and IAQ ~ 200 indicates "typical polluted" air.
Is the "recent measurement history" saved or does it start with a reboot / flash from zero?
How many hours and which conditions are needed to get realistic values?
11-14-2023 03:37 AM - edited 11-14-2023 03:38 AM
Hi em_,
BME688 needs to be calibrated, and the calibration completion time depends on the configuration. Please refer to the application notes in BSEC2.4.0.0:
Until the calibration accuracy reaches 3, BSEC will output high-precision values.
The historical data saved during the calibration process is run in the background by the BSEC algorithm.
11-14-2023 09:39 AM
Hello BSTRobin,
thanks for the description. Do you know which configuration is implemented in the Nicla Sense ME? I can't find it in the source code.
Is the calibration stored permanently or is the information lost when there's no power or new code is transfered to the board?
Does accuracy value 3 signal that the calibration is finished? The values are still twice as high as the external CO2 monitor.
bat:88,iaq:189,acc:3,co2eq:1308
bat:88,iaq:193,acc:3,co2eq:1336
bat:88,iaq:186,acc:3,co2eq:1288
bat:88,iaq:188,acc:3,co2eq:1299
bat:88,iaq:187,acc:3,co2eq:1297
bat:88,iaq:199,acc:3,co2eq:1374
bat:88,iaq:199,acc:3,co2eq:1370
bat:88,iaq:186,acc:3,co2eq:1286
bat:88,iaq:198,acc:3,co2eq:1366
bat:88,iaq:200,acc:3,co2eq:1379
bat:88,iaq:201,acc:3,co2eq:1382
bat:88,iaq:208,acc:3,co2eq:1427
12-25-2023 10:45 AM
Hi em_,
Nicla's software does not specify a specific configuration.
The calibration parameters were not saved to Nicla board, and need to be read and saved to the host end by the host.
Accuracy of 3 indicates calibration completion. The IAQ and CO2 output by BSEC are relative values, not absolute values.