Hello, the Hardware side is quite simple: the BME680 is on a daughtercard with another I2C sensor(Idle during my tests), powered by VREG that can be set to anything between 1.8v to 3.3v (3.3V for my last tests), SDA and SCL are 1K-pulled to VREG, SDO tied to GND, CSB tied to VREG, VDD and VDDIO are tied to VREG and decoupled with 100nF+1uF. Software side is more difficult to share/explain as I had to remap your code to my environment. I'll attach an excerpt of it anyway as I think its readable enough. Here is a summary of the thread handling the BME: First the Init part: Get calibration data and fill bme680_dev.calib Initialize BSEC by calling bsec_init() Load library config if any with bsec_set_configuration (none in my test) Load last saved state if any with bsec_set_state (none in my test) Subscribe to wanted "sensors" with bsec_update_subscription (here :HEAT_COMP_TEMPERATURE, RAW_PRESSURE,RAW_HUMIDITY,HEAT_COMP_HUMIDITY,RAW_GAS,IAQ,STATIC_IAQ,CO2_EQUIVALENT) Then the measurement loop: Get current time Get BSEC's BME settings with bsec_sensor_control if trigger_measurement is set, fill tph_sett and gas_sett setup filter, heater control, T,P and H oversampling, runGas and NB conv etc Set power mode to Forced-mode to trigger measurement Get expected measure duration with bme680_get_profile_dur Wait and poll until BME back to sleep Fetch new data and fill "inputs" to BSEC call bsec_do_steps to get "outputs" and send them to application Wait for next iteration based on BSEC's next_call I attach both source code and a debug trace of its execution. If you need specific register dumps or test case I'll be happy to run them. Thanks for your support, Laurent
... View more