Mbed and Arduino: Low-code development for IoT and ML


Two years ago, Arduino adopted Mbed OS as their primary IoT OS. This enablement 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. By using Arduino platforms such as the Portenta and the Nano BLE 33, developers can benefit from the flexibility and reliability of Mbed OS coupled with the low-code approach typical to Arduino.

During the next Mbed OS Tech Forum, the Arduino team will share their journey with Mbed OS, what made them choose it and what new features they are developing, including a focus on improving ML development and deployment.

In the last few years, there has been an impressive growth in machine learning applications. With recent advancements in dedicated hardware for ML workloads, breakthroughs in improved algorithms and networks, and new software frameworks and tools, embedded machine learning has enabled a huge variety of use cases not even considered possible before; 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. The list goes on.

We know embedded machine learning development isn’t easy. We hear regular feedback from developers that ML projects are failing at the PoC stage as the software complexity manifests itself. 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.

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). In simple terms, this project draws on a pre-trained TFLu model that has been trained and compressed into a format that can be included in your embedded project. Then, by using the Arduino IDE and Mbed OS, you can include the model library in your application code and compile it into a binary that you can run on the device.

In this example, 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 you to focus on the data science without worrying too much about the hardware support and/or integration on the device.

For further tinyML examples and resources using Arduino and Mbed, we recommend checking out the links below:

By bringing the Arduino and Mbed community together, we believe we are able to simplify and streamline the software development process so developers like you can focus more time on differentiation and innovation.

Interested to hear more?

During the next Mbed OS Tech Forum, on Wednesday, 14th April, hosts Alessandro and Don will be joined by Martino Facchin, Senior Firmware Engineer and Dario Pennisi, Hardware Development Manager at Arduino to talk more about the collaboration between our teams. The session will include a discussion on IoT security, machine learning and why dual-core capabilities are so important.

Set a reminder for the upcoming session  here.

The Mbed OS Tech Forum takes place every second Wednesday of the month at 5pm BST/9am PT (4pm UTC). Here are some links to bookmark so you can set a reminder for each session and contribute to the Tech Forum discussion:

You need to log in to post a discussion