AIfES for Arduino high-efficiency AI framework for microcontrollers becomes open source

AIfES (AI for Embedded Systems) is a standalone, high-efficiency, AI framework, which allows the Fraunhofer Institute for Microelectronic Circuits and Systems, or Fraunhofer IMS for short, to train and run machine learning algorithms on resource-constrained microcontrollers.

So far the framework was closed-source and only used internally by Fraunhofer IMS, but following a collaboration with Arduino, AIfES for Arduino is now open-source and free to use for non-commercial projects.

AIfES for ArduinoThe framework has been optimized to allow 8-bit microcontrollers such as the one found in Arduino Uno to implement an Artificial Neural Network (ANN) that can be trained in moderate time. That means offline inference and training on small self-learning battery-powered devices is possible with AIfES without relying on the cloud or other devices.

The library implements Feedforward Neural Networks (FNN) that can be freely parameterized, trained, modified, or reloaded at runtime. Programmed in C language, AIfES uses only standard libraries based on the GNU Compiler Collection (GCC). Fraunhofer IMS also says it is compatible with other AI software frameworks such as Keras or TensorFlow.

AIfES library architectureAIfES is offered within a dual license model: free of charge for open-source software under the GNU General Public License (GPL) version 3, but for commercial products, a license agreement must be signed with Fraunhofer IMS.

Since the institute has been using the library for a number of years, several demonstrators have been showcased, including a handwriting recognition system realized on an Arduino Uno (see video below), a wireless current sensor for condition monitoring, and a gesture recognition system.

If you’d like to give it a try and learn more about AIfES for Arduino, head over to the Github repository to download and install the library, access code samples, and read the documentation. Note you may also need to install the Arduino_CMSIS-DSP library for some of the samples, and edit the code following the instructions in the source code to build an AIfES sketch successfully.

AIfES for Arduino CMSIS AI training example
AIfES for Arduino – AI training example for Arduino Nano 33 BLE Sense board

More details about the solution may be found on Fraunhofer IMS website.

Share this:

Support CNX Software! Donate via cryptocurrencies or become a Patron on Patreon

ROCK Pi 4C Plus
Notify of
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
Tuff Professional
Tuff Professional
2 years ago

A Neural Network on a 8-bit CPU with 2kb of ram? Is this witchcraft?

Massimo Banzi
2 years ago

Well if you write in pure C from the ground up, you can squeeze a lot in 2 k 🙂

2 years ago

It does not necessarily require lots of resources, it’s just that common modern use cases like to show face recognition and such features that require multiple layers and large patterns, but I’ve done character recognition 25 years ago that used to work pretty fine with 8×8 pixels, that could be implemented as a single 8-bit float if desired.

Khadas VIM4 SBC