Hello FanDE,
You could download BME680 data sheet, BSEC package and refer them. https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bme680-ds001.pdf https://www.bosch-sensortec.com/software-tools/software/bsec/
Take LP mode as an example: In the first 30 minutes, the change of resistance value is not obvious, and the algorithm does not output IAQ value. The IAQ value obtained within 8 hours is not trusted, and the trusted IAQ value can be obtained only after 8 hours. After 7 days, for different sensors under the same environment, based on similar baselines, the output value should be within the scope of the specification, ± 15 + ± 15%.
BSEC algorithm 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 IAQ performance. The calibration process considers the recent measurement history(typ. up to four days, adjustable by BSEC config string) to ensure that IAQ ~ 26 correspnds to "typical good" air and IAQ ~ 250 indicates "typical polluted" air.
This is example of getting and setting calibration status in BME680_BSEC_1.4.8.0 example code.
/*! * @brief Load previous library state from non-volatile memory * * @param[in,out] state_buffer buffer to hold the loaded state string * @param[in] n_buffer size of the allocated state buffer * * @return number of bytes copied to state_buffer */ uint32_t state_load(uint8_t *state_buffer, uint32_t n_buffer) { // ... // Load a previous library state from non-volatile memory, if available. // // Return zero if loading was unsuccessful or no state was available, // otherwise return length of loaded state string. // ... return 0; }
/*! * @brief Save library state to non-volatile memory * * @param[in] state_buffer buffer holding the state to be stored * @param[in] length length of the state string to be stored * * @return none */ void state_save(const uint8_t *state_buffer, uint32_t length) { // ... // Save the string some form of non-volatile memory, if possible. // ... }
... View more