The Guide to Building your own BME688-based eNose Application without Using the BME AI-Studio

Dear fellow Forum users,

As you all know, Bosch provides Arduino-based firmware examples and the BME AI-Studio for training AI models to identify different smells using the BME688. You can collect your training data and save it on a SD card by using the sample firmware. The BME AI-Studio is proprietary software which allows you to train your AI model based on the training data and generate a configuration file and a meta information file about the AI model in a JSON-like format which you put on a SD card and insert into the BME688 Evaluation Kit to run your model.

Unfortunately,  I was not getting the results I expected using these proprietary tools (likely due to my own faults and ignorance).  I went on a journey to develop my own firmware by enhancing a BSEC2 (Bosch Senortech Ennvironmental Cluster 2) library example and train my own AI model using Jupyter notebook and scikit-learn.

I also built a REST API for the trained AI model and an AI application using it to predict smells, containerised them and pushed the container images to the quay.io repository.

You can now just run the container images on Podman, MicroShift or OpenShift. If it does not work for you due to different sensor drift and ageing characteristics between my sensor and yours, then  you have to retrain the AI model using my Jupyter notebook.

All documentation including the architecture, Jupyter notebook, training data, scripts, deployment instructions and source code can be found in my Github repository.

An accompanying video can be found here.

A link can also be found in my Github repository's README.md file.

I hope the info can help you with your project or at least provide you with an alternative.

I welcome your feedback and suggestions.

MrDreamBot

3 replies