07-11-2023 07:43 PM - edited 07-11-2023 10:46 PM
I'm running some code on the bme dev-kit (x8). Right now, I am looking at raw sensor data from the API -- not looking at BSEC. The code reads raw data from 1 of the 8 sensors and prints the data to serial. The problem is that depending on which of the 8 sensors I read from, the readings change. I can choose the sensor via #define SENS_NUM. For example, I define SENS_NUM as 0 and I get one set of raw gas resistance readings, but I define SENS_NUM as 1 and get a completely different set of raw gas resistance readings. It also appears that after running these sensors for some time, the raw gas resistance readings change, as if the sensor is recalibrating itself.
The datasheet for the BME688 sensor mentions that some calibration parameters exist, but it does not say where they come from--who computed them, that is. I'd like some more information about these calibration values.
07-12-2023 12:14 PM
Hi zrummler,
If you have a brand new BME688 dev kit, you should stabilize the sensors on the board before taking any measurements. To do so, connect the board to power with a Micro USB cable and let it run for at least 24 hours. This procedure is necessary only once and your board is then ready to take reliable measurements.
Currently, calibration is for the use of BSEC. If the user doesn't use BSEC, the calibration solution should to be developed by the user themselves.
As described in the BSEC integration document(latest BSEC2.4.0.0 https://www.bosch-sensortec.com/software-tools/software/bme688-software), selecting different BSEC configurations results in different calibration times. Calibration is implemented by the BSEC algorithm and there is no publicly available implementation of the algorithm. Users can obtain the current calibration parameters and save them, or load the last saved calibration parameters after the next boot.
07-12-2023 01:48 PM - edited 07-13-2023 04:59 PM
Thanks, I should have mentioned that I've stabilized the devkit for well over 48 hours (I left the device plugged in over the weekend). I re-read your response--is there a difference between stabilization and calibration?
I'm still wondering:
I would expect the data to be exactly the same, and to not change over time, because I'm keeping the devkit in an enclosed chamber; both sensors are being exposed to the exact same air. So why are they getting wildly different results? And why does it take so long to arrive at stable results?
If it's perfectly normal for two identical sensors to be giving wildly different raw data, then I will have some more questions...
08-22-2023 08:55 AM
Hi zrummler,
Stability is internal to sensors, while calibration is specific to software algorithms. If you are not using the BSEC algorithm, calibration only makes sense for your algorithm.
Sensor to sensor has a resistance value error of ± 15%, even in the same environment.