09-25-2021 08:13 PM
Hi
I am developing a lightweight sensor board which contains the BME688.
I am looking to implement the forced read mode, and have written code that I believe reflects the quick start.
I am using the sensor with SPI and can communicate with the device, and am writing the code as a bare metal implementation in C.
I am also able to read back any register value, and am getting values for temp, pressure and humidity - but nothing for gas resistance.
The gas_r_lsb register is reporting 0x04, which suggests that the device has not achieved the heating current - yet no changes of times or target currents seem to change this.
I have read back the registers in the device, and they all appear to be as expected. I have also observed that the current draw from the device does inrease if the heating time is increased, as I can see the linear device that powers it warm up by a few degrees with a thermal camera when the time is extended.
As an experiment I also switched the device into paralell mode, but this made no difference to the output.
What am I missing?
Ta!
08-16-2022 06:45 PM - edited 08-16-2022 06:47 PM
I have run into the same issue, and for me it was a confusion with the registers.
Turns out that the BME680 and BME688 use different registers. Specifically, the Gas register is different. If you read the gas status on a BME688 using the BME680 registers you get 0x04, and it looks like the gas_valid_r bit is always 0.
08-16-2022 07:00 PM
Does sound very similar. What register did you end up reading to get the correct result?
08-24-2022 10:38 AM
Don't you use BME68x sensor API? https://github.com/BoschSensortec/BME68x-Sensor-API
08-24-2022 10:46 AM
Unfortunately not - I was not able to port it to the processor that I am using in this application
08-24-2022 10:58 AM