 DigiKey and Adafruit present. IMPI this week. Lady Aida is from Bosch. That's right. I'm excited because I actually heard about this sensor a while ago, the BME688, but it's finally in stock at DigiKey. I didn't really want to do an IMPI unless you could actually go and pick it up, and they were a lot in stock. So this week's IMPI is from Bosch Sensor Tech. They make all sorts of sensors. Clearly some of our favorites, the BMP280, BME280, and of course the BME680, a lot of very popular sensors. So this week's is the BME688. You can see here, it's got the 688. Sounds familiar, right? Sounds a lot like the BME680. That's because it's very similar to the BME680. The BME680 is, you know, I think the B is for Bosch and he's environmental, and the 680 stands for it has pressure, humidity, temperature, and gas sensing capability. So this is a sensor that we've already stopped the BME680, and the 888 is the next generation of it. And what's really cool about the sensor, the 680, is that it's like the only sensor we've ever seen that can do pretty much all of your environmental sensing in one package at a really good price. It does temperature, yes. It has humidity, yes. Environmental pressure, so you do altitude as well. And gas sensing, so you can do environmental sensing, volatile organic compounds like air quality sensing as well. So what's new with the 688? Well, the 680, I'm glad you asked because I also was like, what is new? So when you've got, you know, the way the gas sensor works, it's called a metal oxide semiconductor. And basically there's an exposed oxide layer that reacts with gases in the environment, like, you know, have it react with methane or alcohols, or, you know, there's carbon dioxide or carbon oxide, whatever. And when it reacts with them, the resistance of that oxide layer changes. And, you know, the thing about oxide sensors is, this is pretty much the only way that we do solid state sensing. It works quite well. It's expensive. But there are some variations from sensor to sensor. And not only that, but temperature and humidity affect them. So you, having the temperature and humidity sensor in the BME 688 is handy because you'll actually use the data to normalize the gas sensor data. But I think what people, the folks at Boston Realized, is that anytime you have something that's dependent on another environmental factor, you might be able to kind of use that or abuse that in a different way. So in this case, the BME 688 has this heater underneath that heats the metal oxide layer. And what that can do is first, of course, get any water condensation off of it, but can also change the reactivity of that metal oxide layer so it reacts differently to gases. And by changing the heater profile, by changing the heat level quickly between multiple different levels and doing different measurements, you can kind of sense different things. And maybe it's not like, oh, this heater profile is good for methane and this heater profile is good for ethanol. It's more like if you go through these cycles and you try to measure a scent or an emission, you might be able to detect it from other emissions. So let's talk about what that means. So each BME sensor has the heater profile and the duty cycle. Like I mentioned, the heater profile duty cycle is that micro heater that when you turn on and off and set to different settings, it affects the sensitivity and reactability of that metal oxide layer. You can try multiple different profiles and then expose the sensor to what you want to sense and collect data. And again, what are you actually sensing? It's not kind of not clear, but by looking for patterns of data, you can then train an algorithm like a machine learning algorithm to look at those changes based on the heater profile to detect differences or unique scents. So to do that, they recommend going with their dev kit. This dev kit is not available quite yet, but it'll probably be available soon on DigiQ. It actually has Adafruit stuff in it. It has A32 and ESP32. And then on top, it has a feather wing with eight BME 688s. So it's a bit of a kit. It's also got two buttons. It's got SD card slot as well. And the reason it has eight of these are like, why do you need eight? Do you need eight for your final thing? No. The reason you have eight is you can have each one have a different heater profile. You can also have each one just because each mock sensor is a little bit different in general. So you can have eight different data samples. You can make sure that you're not being too specific with your training data. You want to have multiple data points because, again, there's this variation from sensor to sensor. But you program it with the code that Bosch gives you. There's an example that you load onto the ESP32. And then in their video, for example, you can put it in some espresso beans and you take 30 minutes worth of data. You can put it in filter coffee beans and take 30 minutes of data. And you can, of course, leave it on the table. Not exposed to any coffee and take data. And then the dev kit saves that data to an SD card, which then pop into your computer and load into the AI studio from Bosch, which is a software that runs on Windows that takes that particular data file. Here you open it and then we'll plot the data. So here you can see the plot. So you can see you're like, well, what's the purple, red, blue? So those are different. There's kind of, actually, if you look at the bottom, there's actually kind of like red, yellow, green. There's a couple of different colors. And the top one also has two traces. So these are the eight different sensors. And you see that they all kind of follow along each other, although there's DC offset. And the DC offset, I think it's just because there's variation from sensor to sensor. I don't, or it could be that they have a heater profile. I wasn't actually sure by watching the, or reading the demonstration of why there's variations, but I do know that mock sensors do have some. So it could be that this is just, you know, each sensor has enough DC offset. However, if you look at the patterns, you can kind of see the four different sections, right? There's the beginning sensor section where it kind of heats up. And then it's exposed to, you know, the espresso coffee. And you can see the data drops a little bit, right? There's a little bit of a dip in the cycles. You can see that the heater profile cycles. And then in the third one, it's a different thing. It's exposed to it rises up a little bit. And then the fourth one, they all drop again. So there's, you can definitely see that there's change in the sensors between those four. But if you were trying to program this as a programmer, it would be really annoying and frustrating because like there's so much little variation. How do you detect it? This is where machine learning comes in. So what you do is for those first four sections, you see here, the first one is normal air, then espresso, and then another normal air, and then filter coffee. You can take as many data samples as you want. This one has four. You label them. And then the software, you tell it, what do you want to train the two classes? And you say, look for the coffee class, class A, espresso or filter. And then the normal air, you put the other two measurements and you say, I want you to train on that data so that you can determine whether or not I'm being exposed to coffee. I can sense coffee. And again, it's not hard to make one sensor detect coffee or not. The problem is if you have a product and each sensor is a little bit different, how can you make an algorithm that is generalizable enough that it won't be specific to like that brand of coffee and that particular sensor and that particular humidity. And that's what the training does. That's why you want to use machine learning. It does the training and it pops out a file. And then you can, of course, try different heater profiles, et cetera. You can also analyze it. It'll tell you, you know, be statistically on the model and data that you have. How good is it at detecting? In this case, it's, you know, 93% accurate, which is excellent. If you're not getting the accuracy you want, you know, of course, you can take more data and then train against that data or test against that data. Try different heater profiles. They sort of say, look, you know, tweak the numbers a little bit until you're able to really get detectable differences. And then what you do is you load the BSEC library, the Environmental Sensing Library from Bosch. It's a pre-compiled binary blob, but they do, as you see here, have lots of different platforms from the mega AVRs to Cortex M0s and M3s and M4s and expressive chips, 32s and H266s. If there's a chip that you want to use that's missing here, like maybe a RISC-5 chip, tell Bosch, they're very responsive and they'll probably compile for you the binary needed. It is, you know, a trade secret of theirs so they don't release the source code of actually how they do the training analysis. But you can at least, you know, get that blob and then you compile it in. You feed that BSEC file that's generated by the training software. It's small. It fits onto your mic controller. And now your BME 688 in the field can be used to detect different senses and objects. So, very neat. Because, it's very long-digit key, starting to see more machine learning and AI make its way to sensors. You remember we had the audio sensor that did wake-word detection on its own. We've had a couple of motion sensors from ST that could do, you know, basic machine learning as well. So, we're starting to see more smarts get to sensors. And I think this is a good example of a sensor that has variation. So, it's very hard for humans to program it. But it's very, the patterns are reliable enough that you can train, you know, basic machine learning or neural networks on and get good data. So, it is in stock. It's backwards compatible with the BME 680. So, even if you don't use the AI stuff, it's still an excellent sensor for temperature, humidity, biometric pressure and gas sensing use cases. I have a video. Bosch SensorTech introduces the BME 688 gas sensor together with the BME AI Studio, a data-driven software tool to explore, validate and deploy sensor use cases with the power of machine learning. And it all begins with our new sensing hardware, BME 688, the first environmental sensor with AI. It digitizes temperature, pressure, humidity and gas data. And by using machine learning algorithms, the BME 688 is able to measure and recognize the unique fingerprint of different gas mixtures. Here's an example. Do you like coffee? Let's use the sensor to distinguish various types of coffee. Just measure the smells of different coffee beans with the BME Board x8. Then launch BME AI Studio and easily import and label the recorded data. You can then use this data to create an individual algorithm custom tailored just for your use case. That was just one example. BME 688 enables a vast range of new use cases. And you don't have to be a trained computer scientist or neural net expert. BME AI Studio is designed with great user experience and comprehensive documentation to help guide and accompany you while developing your customized algorithm. Bosch is continuing to push AI forward and with the BME AI Studio our customers can now bring sensor AI into their own products. Right. And also there's a shuttle board available from Digikey if you search for BME 688. It's very nice because it has the sensor on the board with breakouts and capacitors and there's a pinout available. It is set up for I2C or SPI and we just pushed update to our Adafruit Arduino BME 688 library or 680 library to work with the 688. He's the latest version of the Bosch API code for Arduino. Okay. And that is on API.