Artificial intelligence used to happen almost exclusively in the cloud, but this introduces delays (latency) for the users and higher costs for the provider, so it’s now very common to have on-device AI on mobile phones or other systems powered by application processors.
But recently there’s been a push to bring machine learning capabilities to even lower-end embedded systems powered by microcontrollers, as we’ve seen with GAP8 RISC-V IoT processor or Arm Cortex-M55 core and the Ethos-U55 micro NPU for Cortex-M microcontrollers, as well as Tensorflow Lite.
Edge Impulse is another solution that aims to ease deployment of machine learning applications on Cortex-M embedded devices (aka Embedded ML or TinyML) by collecting real-world sensor data, training ML models on this data in the cloud, and then deploying the model back to the embedded device.
The company collaborated with Arduino and announced support for the Arduino Nano 33 BLE Sense and other 32-bit Arduino boards last May. The solution supports motion sensing, computer vision, and audio recognition to detect glass breaking, hydraulic shocks, manufacturing defects, and so on.
Arduino boards are not the only devices supported, as you can also give Edge Impulse a try on the following hardware platforms:
- ST B-L475E-IOT01A IoT Discovery Board powered by STM32L Cortex-M4 microcontroller.
- Eta Compute ECM3532 AI Sensor board with Arm Cortex-M3 and 16-bit DSP
- OpenMV Cam H7 Plus with STM32H7 Cortex-M7 MCU, especially useful for TinyML computer vision
- Mobile phone. As I understand it, it does not have to be Android or iOS, since you’ll be represented with a QR code to access a link in your web browser to access sensors and the microphone.
You’ll find documentation to get started on the official website. There’s also one community device currently supported: Wio Terminal with SAMD51 Cortex-M4 microcontroller. Seeed Studio made a fun demo which brought me to write about Edge Impulse.
They connected a gas sensor to Wio Terminal with the help of Edge Impulse were able to determine different types of alcohol beverages (beer, Maotai, and another liqueur) using the composition of the gas. This is all explained in their post and involves Node.js, the Arduino CLI, the Edge Impulse CLI, and a serial monitor.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.