The BME680 is a very nice gas sensor released a few years ago, and remains the only temperature-humidity-pressure-gas sensors that we’ve ever seen. Small and easy to use, at Adafruit we’ve sold tens of thousands of BME680 sensors on breakout boards so we’re very excited to see the next-generation of BME68x chips arriving and in stock at Digi-Key.
The BME688 is the first gas sensor with Artificial Intelligence (AI) and integrated high-linearity and high-accuracy pressure, humidity and temperature sensors. It is housed in a robust yet compact 3.0 x 3.0 x 0.9 mm³ package and especially developed for mobile & connected applications where size and low power consumption are critical requirements. The gas sensor can detect Volatile Organic Compounds (VOCs), volatile sulfur compounds (VSCs) and other gases such as carbon monoxide and hydrogen in the part per billion (ppb) range.
Additionally to all features of the BME680, the BME688 has a gas scanner function. In standard configuration, the presence of VSCs is being detected as indicator for e.g. bacteria growth. And the gas scanner can be customized with respect to sensitivity, selectivity, data rate and power consumption as well. The BME AI-Studio tool enables customers to train the BME688 gas scanner on their specific application, like in home appliances, IoT products or Smart Home.
The BME688 is completely back compatible to the BME680
, in fact over the weekend we added support to the latest Bosch C API. So, like the BME680 you get a high-grade temperature, humidity and pressure sensor that can measure humidity with ±3% accuracy, barometric pressure with ±1 hPa absolute accuracy, and temperature with ±1.0°C accuracy. Because pressure changes with altitude, and the pressure measurements are so good, you can also use it as an altimeter with ±1 meter or better accuracy!
The BME68x can also measure gases – however we have to be really specific whenever we talk about how this is done. Like almost all solid-state gas sensors
, the BME68x uses a MOX (metal oxide) sensor.
Semiconductor sensors, also known as metal-oxide-semiconductor sensors (MOS sensors), detect gases by a chemical reaction that takes place when the gas comes in direct contact with the sensor. Tin dioxide is the most common material used in semiconductor sensors, and the electrical resistance in the sensor is decreased when it comes in contact with the monitored gas. For example, the resistance of the tin dioxide is typically around 50 kΩ in air but can drop to around 3.5 kΩ in the presence of 1% methane. This change in resistance is used to calculate the gas concentration.
You can read the raw kilo-ohm resistance values over I2C, using the Bosch library. However, that value will vary not only with gas concentration but with temperature and humidity. So, you’ll want to normalize it to let the resistance at least not depend on ambient air changes. To do that you’ll need to use the closed-source Bosch Sensortec Environmental Cluster (BSEC) library
. This library is distributed as a pre-compiled blob, but is available for a wide range of microcontrollers.
The dependency of the MOX sensor on temperature can also be taken advantage of to create a sensor that is ‘tuned’ to detecting specific gases. The BME688 can have a ‘heater profile’ set up – which will turn on the micro-plate heater, under the MOX layer, to warm it up. This changes the susceptibility of the MOX sensor to different gases, allowing it to react to a range of volatile gasses.
Bosch even makes a FeatherWing
specifically for testing this out: each of eight BME688 sensor is loaded with a different heater profile, then takes various measurements over time to create a ‘profile’ of the ambient scents. A JSON file is loaded on with the desired configuration and the Feather sits next to the scent it wants to detect for 30 minutes to collect a good amount of data. After exposing the sensors to a group of scents we want to detect, we also expose it to the ‘negative’ detection: normal air.
Data is stored to an SD card that can be removed and then loaded in the Bosch AI-Studio software
. The software loads in the raw data and graphs it for you to verify it could differentiate between the positive-and-negative detection. Once you have enough data, the different groups are programmed into a neural net training algorithm that attempts to ‘learn’ from the data, to be able to predict based on the heater-profile-reaction-data whether it is the positive or negative determination (in this case, coffee or not). The FeatherWing makes the data collection faster because you could tune the 8 sensors to different profiles or have one profile, but 8 different samples since there are going to be some manufacturing differences from sensor to sensor. Finally the training model can be exported from the AI studio tool and loaded into the BSEC algorithm running on your microcontroller/microcomputer.
We’re starting to see more sensors with built-in AI or ML capabilities – and for some sensors with variability this could be very useful. MOX sensors, for example, are notorious for drifting and having different resistance ‘offsets’ – unlike a temperature sensor we don’t have the ability to calibrate a complex sensor like MOX. So plain if-then type decision making will not work as well as a pattern-matching based decision tree. We’re excited to see ‘brainier’ sensors reach the market, because it means we can squeeze better performance from them without having to simplify the data output to make it easier for humans to deal with.
I’m going to order some ASAP to turn into a breakout board, it looks like this chip is fully pin-compatible with the BME680 so if you need an example circuit that we know works, check out our open source BME680 design
. If you’re looking for a great all-in-one sensor, and particularly if you’ve been using the BME680 and want to upgrade, there’s thousands
of BME688 in stock at Digi-Key right now
at a great price! Order today and you will be smelling success by tomorrow afternoon.