Session: From an Artificial Nose Weekend Hack to a Future-proof IoT Device

It was a long weekend of May 2020. Like many of my human siblings stuck at home with time on their hands due to an ongoing pandemic, I was busy trying to perfect my bread recipe. Fast forward to a few hours later, I had assembled an Arduino-based “artificial nose” that used a gas sensor and AI (so-called TinyML) to learn and detect scents (hence potentially the smell of a perfectly fermented sourdough starter).

As I open-sourced and started to share the project on social media, it went viral… and I felt like an impostor, as most of the code powering it was, frankly, hackish. Or maybe it wasn’t, as it had the merit of having helped me invent something new, in literally a few hours.

In this talk I will walk you through some of the key features of the artificial nose, and how I eventually refactored my original codebase to leverage Zephyr (an open-source real-time operating system) in order to make it easier for myself and the community to extend the project, and run it on a variety of hardware targets.

You will learn, among other things:

  • How to move from a complex “super loop” to well architected threads and event-based programming ;
  • How to run TinyML models (ex. TensorFlow Lite) while not compromising the rest of your embedded system ;
  • How to build an efficient and easy-to-maintain graphical user interface ;
  • How to leverage Zephyr hardware-abstraction layer.

All the code and demonstrations shown in the talk will be available on GitHub, and you are very much encouraged to go ahead and build your own artificial nose after the presentation!

Presenters: