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.

ARTe: Providing real-time multitasking to Arduino

Restuccia F.;Pagani M.;Mascitti A.;Marinoni M.;Biondi A.;Buttazzo G.;
2022-01-01

Abstract

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.
2022
File in questo prodotto:
Non ci sono file associati a questo prodotto.

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/11382/544952
 Attenzione

Attenzione! I dati visualizzati non sono stati sottoposti a validazione da parte dell'ateneo

Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus 2
social impact