Arduino uses Mbed for low code IoT ML development
Using Mbed provided Arduino users with a larger standard library of high quality components including an RTOS, networking stacks and automatic power management. And for Mbed users, it brought the Arduino core as a library to Mbed OS giving developers the potential to access a huge set of Arduino peripheral drivers through a standard interface.
“We know embedded machine learning development isn’t easy. We hear regular feedback from developers that ML projects are failing at the proof of concept (PoC) stage as the software complexity manifests itself,” said Donatien Garnier, Principal Software Engineer at ARM and Technical Lead for the ARM Mbed OS. “A skilled embedded developer can address the complexities using an RTOS and hand-crafting software libraries and components. However, the time this requires to develop an application, verify it and manage the on-going maintenance after the device is deployed, increases costs and impacts the viability of products and services.”
Recent advancements in dedicated hardware for ML workloads, breakthroughs in improved algorithms and networks, and new software frameworks and tools have enabled a huge variety of use cases not even considered possible before. Garnier points to industrial machines that can predict when they’ll need service, sensors that can monitor crops for the presence of damaging insects, healthcare monitors that track vitals while maintaining privacy.
“By using the learnings from the work between Mbed and Arduino in the IoT space, we are investigating ways to get tinyML in the hands of more developers. As an example, we recently developed a tinyML person detection demo based on the Arduino Portena H7 board with Mbed OS and Tensorflow Lite for Microcontrollers (TFLu),” he said.
This uses a pre-trained TFLu model that has been trained and compressed into a format for an embedded project. The Arduino IDE and Mbed OS can include the model library in application code and compile it into a binary to run on a device.
The role of Mbed OS is to provide the basic functionalities to simplify the deployment of ML frameworks such as TensorFlow or TVM. Abstracting some of the hardware specific functionalities required by the ML frameworks, allows developers to focus on the data science without worrying too much about the hardware support and/or integration on the device.
Related Mbed articles
- Mbed moves to new IoT development tools
- Mbed launches next generation command line tool
- Crowdsourcing an HD gaming system for Arduino
- New Arduino Portenta range now at Farnell
Other articles on eeNews Europe