Issues with the BME688 gas results

Hi!

I try to run the BME688 sensor. I found your documentation and source code very useful. After running it as it’s described in the BME688 Environmental Sensor - Taking measurements (MicroPython) | Soldered Documentation I started getting some results.
But they are similar to what’s presented on that page as the “Serial output for BME688 sensor” - results varies from a few kOhms to a dozens of MOhms. I’m attaching the image with my exemplary data.

So far the sensor has been running for 2-3 days, and nothing has changed.
Just wanted to ask if it will stabilize some day. Or maybe something is wrong with my device?
What’s your experience with that sensor?


Attachments:

Hello Artur,
That behaviour is expected, as the metal-oxide sensor reacts to all gasses around it. Another reason could be that your heater profile makes it change temperature a lot frequently which also changes the gas resistance value.

The Bosch sensors are very specific on how they work, and if you are trying to get a value of a specific gas read from it, then you must use the Bosch AI Studio software to create a model which detects the presence of a specific gas.: Welcome to the BME AI-Studio

We have created an example on how to get said data from the sensor and format it in a way that is deemed valid by the AI Studio software in our Arduino library, which you can find here: Soldered-BME688-Sensor-Arduino-Library/examples/BME688_AI_Features/BME688_AI_Features.ino at main · SolderedElectronics/Soldered-BME688-Sensor-Arduino-Library · GitHub

I would also like to point you to this reddit thread, which also explains what you are getting into: https://www.reddit.com/r/embedded/comments/1ee27na/bme688/

Hello Josip,
Thank you for your reply! After reading comments from other “experts,” I was about to throw this sensor away, thinking it was defective. In fact, when I placed it in a more stable environment—in a jar filled with coffee—the results stabilized significantly.

Thank you again for saving my sensor, and I’d like to ask one more thing.

In the program you wrote in microPython, samples are taken every 2 seconds. In my project, detection every 10–15 minutes, for example, would be sufficient. However, from what I’ve read in the documentation, the sensor needs to run for 15–30 minutes to stabilize. From what I can see in the results, it’s also important to observe trends, not just individual values. I also found on your pages that “take readings more frequently, even if you don’t plan on using the value”.

Does that mean that, regardless of my needs, the sensor must continuously (every 2-5 seconds) sample the data? Do you perhaps have any examples of how the sensor is used in a practical, working project?

Finally, I wanted to thank you for the great work you and the Soldered team are doing! I looked for various libraries for the BME688 in microPython, and yours was the only one that worked correctly. I’ll definitely be buying and recommending your products!