Loading…

ARTe: Providing real-time multitasking to Arduino

In the last decade, thanks to its modular hardware and straightforward programming model, the Arduino ecosystem became a reference for learning the development of embedded systems by various users, ranging from amateurs and students to makers. However, while the latest released platforms are equippe...

Full description

Saved in:
Bibliographic Details
Published in:The Journal of systems and software 2022-04, Vol.186, p.111185, Article 111185
Main Authors: Restuccia, Francesco, Pagani, Marco, Mascitti, Agostino, Barrow, Michael, Marinoni, Mauro, Biondi, Alessandro, Buttazzo, Giorgio, Kastner, Ryan
Format: Article
Language:English
Subjects:
Citations: Items that this one cites
Items that cite this one
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary:In the last decade, thanks to its modular hardware and straightforward programming model, the Arduino ecosystem became a reference for learning the development of embedded systems by various users, ranging from amateurs and students to makers. However, while the latest released platforms are equipped with modern microcontrollers, the programming model is still tied to a single-threaded, legacy approach. This limits the exploitation of the underlying hardware platform and poses limitations in new application scenarios, such as IoT and UAVs. This paper presents the Arduino real-time extension (ARTe), which seamlessly extends the Arduino programming model to enable the concurrent execution of multiple loops at different rates configurable by the programmer. This is obtained by embedding a low-footprint, real-time operating system in the Arduino framework. The adherence to the original programming model, together with the hidden support for managing the inherent complexity of concurrent software, allows expanding the applicability of the Arduino framework while ensuring a more efficient usage of the computational resources. Furthermore, the proposed approach allows a finer control of the latencies and the energy consumption. Experimental results show that such advantages are obtained at the cost of a small additional overhead and memory footprint. To highlight the benefits introduced by ARTe, the paper finally presents two case studies, one of such in which ARTe has been leveraged to rapidly prototype a mechanical ventilator for acute COVID-19 cases. We found that ARTe allowed our ventilator design to rapidly adapt to changes in the available components and to the evolving needs of Intensive Care Units (ICU) in the Americas. •Arduino’s programming model is rather simple, supporting only single-thread apps.•The Arduino programming model hampers developers from leveraging multi-tasking.•ARTe provides a friendly extension for develop multi-tasking applications on Arduino.•ARTe is an integrated solution which allows the leverage of the Arduino codebase.•We propose an ARTe-based control system for ventilators for the COVID-19 outbreak.
ISSN:0164-1212
1873-1228
DOI:10.1016/j.jss.2021.111185