02-28-2023 05:13 PM
Hi,
I have a quick question on which library to use for BME688 on arduino.
I see on github there are 2 libraries associated with BME688, one is Bosch_BME68x_Library, another is Bosch_BSEC2_Library.
I see that bme68x lib is a dependency of bsec2, I just want to know what does bsec2 offers that bme68x doesn't? And is it possible for me to use the bme68x lib to interact with the sensor, or do I have to use the bsec2 lib?
Thanks.
03-01-2023 03:10 AM
Hi Tru,
Bosch_BME68x_Library wraps the BME68x Sensor API to provide a simpler experience to use the BME680 or BME688 Sensors under Arduino environment. With this library, host under Arduino could get sensor data.
The BSEC fusion library has been conceptualized to provide a higher-level signal processing and fusion for the BME688. The library receives compensated sensor values from the sensor API. It processes the BME688 signals to provide the requested sensor outputs.
Key features
03-02-2023 06:36 PM
Hi Robin,
Does "The library receives compensated sensor values from the sensor API" mean that the raw gas data values coming from BSEC2 are not actually raw from the BME68x driver itself? Does BSEC2 do any additional compensation on the raw gas resistance values to account for drift prior to returning a result? Does an algorithm created from the AI studio also modify how BSEC2 compensates these values, and if so does this also affect the raw gas resistance values?
Essentially, I am using the BME688 8 sensor devkit board with BSEC2 and the supplied sample program that's included with it so I can control the different heater profiles. However, besides using BSEC2 for the heater profiles, I am not using it for anything else as I am only interested in the raw temperature, pressure, humidity, and gas resistance values coming from the sensor. Although, now I am concerned that if I am using BSEC2 the "raw" data I am receiving for temperature, pressure, humidity, and gas resistance is not actually raw from the driver, but compensated via some calculations done in the library. Is this true? If it is, and the algoritms I output from the AI studio also affect the "raw" data, then this is not the desired behavior I expected from this sensor.
03-21-2023 03:02 AM
Hi S_Brohl,
"Bosch_BME68x_Library wraps the BME68x Sensor API to provide a simpler experience to use the BME680 or BME688 Sensors under Arduino environment. With this library, host under Arduino could get sensor data." Bosch_BME68x_Library will get sensor RAW data, the raw data is passed to the BSEC algorithm, which compensates the gas resistance value based on the temperature and humidity value. If you look at the example code, you will see that the application program can get the sensor raw data through the Bosch_BME68x_Library interface, or can run or not run the BSEC algorithm.
04-13-2023 07:14 AM
@BSTRobin Thank you for answering that! This is really helpful info as we noticed the data seemed like it was compensating for drift or something, but now this solves that puzzle. Thanks again!