06-26-2024 12:20 AM
I'm trying to understand how to use BSEC with a BME680 sensor. The only example in the bsec_v2-5-0-2.tar.gz download skips a delay() call between bme68x_set_op_mode() and bme68x_get_data(). Is that correct?
Details...
The example code in bsec_iot_example/bsec_integration.c calls bme68x_set_op_mode(), and then immediately calls bme68x_get_data(), with no delay.
bsec_v2-5-0-2.tar.gz:
examples/BSEC_Integration_Examples/examples/bsec_iot_example/bsec_integration.c
[lines 671-697]
This is at odds with various other sources of information:
1. The example code in BME68x_SensorAPI always calls bme68x_get_meas_dur(), and delays for the resulting time, before calling bme68x_get_data().
https://github.com/boschsensortec/BME68x_SensorAPI/blob/master/examples/forced_mode/forced_mode.c [lines 71-72]
https://github.com/boschsensortec/BME68x_SensorAPI/blob/master/examples/parallel_mode/parallel_mode.... [lines 97-98]
2. The BME680 datasheet describes the delay between setting ctrl_meas register, and data becoming available.
"BME680 - Datasheet" rev1.9, BST-BME680-DS001-09
3. The BSEC-Arduino-library (also owned by boschsensortech) calls bme68x_get_meas_dur(), and delays for the resulting time, before calling bme68x_get_data().
https://github.com/boschsensortec/BSEC-Arduino-library/blob/master/src/bsec.cpp [lines 388-390]
06-27-2024 09:22 AM
Hi alextingle,
Thanks for your inquiry.
bme68x_get_meas_dur() function performs a register read operation, and the delay after this function is not necessary.