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!
cited_by cdi_FETCH-LOGICAL-c297t-c66f22038c4ffaffae348b73b7f2c41d4fa12f8e42faa0e8d195290552fb85f53
cites cdi_FETCH-LOGICAL-c297t-c66f22038c4ffaffae348b73b7f2c41d4fa12f8e42faa0e8d195290552fb85f53
container_end_page
container_issue
container_start_page 111185
container_title The Journal of systems and software
container_volume 186
creator Restuccia, Francesco
Pagani, Marco
Mascitti, Agostino
Barrow, Michael
Marinoni, Mauro
Biondi, Alessandro
Buttazzo, Giorgio
Kastner, Ryan
description 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.
doi_str_mv 10.1016/j.jss.2021.111185
format article
fullrecord <record><control><sourceid>elsevier_cross</sourceid><recordid>TN_cdi_crossref_primary_10_1016_j_jss_2021_111185</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><els_id>S016412122100265X</els_id><sourcerecordid>S016412122100265X</sourcerecordid><originalsourceid>FETCH-LOGICAL-c297t-c66f22038c4ffaffae348b73b7f2c41d4fa12f8e42faa0e8d195290552fb85f53</originalsourceid><addsrcrecordid>eNp9j91KxDAQhYMouK4-gHd9gdbM9C_Vq7LoKiwosl6HNJ1IaruVpLvg25tSrx0GZhjOOczH2C3wBDgUd13SeZ8gR0gglMjP2ApEmcaAKM7ZKmiysANesivvO855GcQrBvX7nu6jNzeebGsPn5Ej1ceTHSgajv1kJ-W_5vM0RrVrj_YwXrMLo3pPN39zzT6eHveb53j3un3Z1LtYY1VOsS4Kg8hToTNjVGhKM9GUaVMa1Bm0mVGARlCGRilOooUqx4rnOZpG5CZP1wyWXO1G7x0Z-e3soNyPBC5nZtnJwCxnZrkwB8_D4qHw2MmSk15bOmhqrSM9yXa0_7h_AUTIXpo</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype></control><display><type>article</type><title>ARTe: Providing real-time multitasking to Arduino</title><source>ScienceDirect Journals</source><creator>Restuccia, Francesco ; Pagani, Marco ; Mascitti, Agostino ; Barrow, Michael ; Marinoni, Mauro ; Biondi, Alessandro ; Buttazzo, Giorgio ; Kastner, Ryan</creator><creatorcontrib>Restuccia, Francesco ; Pagani, Marco ; Mascitti, Agostino ; Barrow, Michael ; Marinoni, Mauro ; Biondi, Alessandro ; Buttazzo, Giorgio ; Kastner, Ryan</creatorcontrib><description>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.</description><identifier>ISSN: 0164-1212</identifier><identifier>EISSN: 1873-1228</identifier><identifier>DOI: 10.1016/j.jss.2021.111185</identifier><language>eng</language><publisher>Elsevier Inc</publisher><subject>Arduino ; Educational ; Multi-tasking ; Real-time</subject><ispartof>The Journal of systems and software, 2022-04, Vol.186, p.111185, Article 111185</ispartof><rights>2021 Elsevier Inc.</rights><lds50>peer_reviewed</lds50><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c297t-c66f22038c4ffaffae348b73b7f2c41d4fa12f8e42faa0e8d195290552fb85f53</citedby><cites>FETCH-LOGICAL-c297t-c66f22038c4ffaffae348b73b7f2c41d4fa12f8e42faa0e8d195290552fb85f53</cites><orcidid>0000-0001-6955-1888 ; 0000-0002-9000-0543 ; 0000-0002-7041-9777 ; 0000-0003-4959-4017</orcidid></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>314,776,780,27903,27904</link.rule.ids></links><search><creatorcontrib>Restuccia, Francesco</creatorcontrib><creatorcontrib>Pagani, Marco</creatorcontrib><creatorcontrib>Mascitti, Agostino</creatorcontrib><creatorcontrib>Barrow, Michael</creatorcontrib><creatorcontrib>Marinoni, Mauro</creatorcontrib><creatorcontrib>Biondi, Alessandro</creatorcontrib><creatorcontrib>Buttazzo, Giorgio</creatorcontrib><creatorcontrib>Kastner, Ryan</creatorcontrib><title>ARTe: Providing real-time multitasking to Arduino</title><title>The Journal of systems and software</title><description>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.</description><subject>Arduino</subject><subject>Educational</subject><subject>Multi-tasking</subject><subject>Real-time</subject><issn>0164-1212</issn><issn>1873-1228</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2022</creationdate><recordtype>article</recordtype><recordid>eNp9j91KxDAQhYMouK4-gHd9gdbM9C_Vq7LoKiwosl6HNJ1IaruVpLvg25tSrx0GZhjOOczH2C3wBDgUd13SeZ8gR0gglMjP2ApEmcaAKM7ZKmiysANesivvO855GcQrBvX7nu6jNzeebGsPn5Ej1ceTHSgajv1kJ-W_5vM0RrVrj_YwXrMLo3pPN39zzT6eHveb53j3un3Z1LtYY1VOsS4Kg8hToTNjVGhKM9GUaVMa1Bm0mVGARlCGRilOooUqx4rnOZpG5CZP1wyWXO1G7x0Z-e3soNyPBC5nZtnJwCxnZrkwB8_D4qHw2MmSk15bOmhqrSM9yXa0_7h_AUTIXpo</recordid><startdate>202204</startdate><enddate>202204</enddate><creator>Restuccia, Francesco</creator><creator>Pagani, Marco</creator><creator>Mascitti, Agostino</creator><creator>Barrow, Michael</creator><creator>Marinoni, Mauro</creator><creator>Biondi, Alessandro</creator><creator>Buttazzo, Giorgio</creator><creator>Kastner, Ryan</creator><general>Elsevier Inc</general><scope>AAYXX</scope><scope>CITATION</scope><orcidid>https://orcid.org/0000-0001-6955-1888</orcidid><orcidid>https://orcid.org/0000-0002-9000-0543</orcidid><orcidid>https://orcid.org/0000-0002-7041-9777</orcidid><orcidid>https://orcid.org/0000-0003-4959-4017</orcidid></search><sort><creationdate>202204</creationdate><title>ARTe: Providing real-time multitasking to Arduino</title><author>Restuccia, Francesco ; Pagani, Marco ; Mascitti, Agostino ; Barrow, Michael ; Marinoni, Mauro ; Biondi, Alessandro ; Buttazzo, Giorgio ; Kastner, Ryan</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c297t-c66f22038c4ffaffae348b73b7f2c41d4fa12f8e42faa0e8d195290552fb85f53</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2022</creationdate><topic>Arduino</topic><topic>Educational</topic><topic>Multi-tasking</topic><topic>Real-time</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Restuccia, Francesco</creatorcontrib><creatorcontrib>Pagani, Marco</creatorcontrib><creatorcontrib>Mascitti, Agostino</creatorcontrib><creatorcontrib>Barrow, Michael</creatorcontrib><creatorcontrib>Marinoni, Mauro</creatorcontrib><creatorcontrib>Biondi, Alessandro</creatorcontrib><creatorcontrib>Buttazzo, Giorgio</creatorcontrib><creatorcontrib>Kastner, Ryan</creatorcontrib><collection>CrossRef</collection><jtitle>The Journal of systems and software</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Restuccia, Francesco</au><au>Pagani, Marco</au><au>Mascitti, Agostino</au><au>Barrow, Michael</au><au>Marinoni, Mauro</au><au>Biondi, Alessandro</au><au>Buttazzo, Giorgio</au><au>Kastner, Ryan</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>ARTe: Providing real-time multitasking to Arduino</atitle><jtitle>The Journal of systems and software</jtitle><date>2022-04</date><risdate>2022</risdate><volume>186</volume><spage>111185</spage><pages>111185-</pages><artnum>111185</artnum><issn>0164-1212</issn><eissn>1873-1228</eissn><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. •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.</abstract><pub>Elsevier Inc</pub><doi>10.1016/j.jss.2021.111185</doi><orcidid>https://orcid.org/0000-0001-6955-1888</orcidid><orcidid>https://orcid.org/0000-0002-9000-0543</orcidid><orcidid>https://orcid.org/0000-0002-7041-9777</orcidid><orcidid>https://orcid.org/0000-0003-4959-4017</orcidid></addata></record>
fulltext fulltext
identifier ISSN: 0164-1212
ispartof The Journal of systems and software, 2022-04, Vol.186, p.111185, Article 111185
issn 0164-1212
1873-1228
language eng
recordid cdi_crossref_primary_10_1016_j_jss_2021_111185
source ScienceDirect Journals
subjects Arduino
Educational
Multi-tasking
Real-time
title ARTe: Providing real-time multitasking to Arduino
url http://sfxeu10.hosted.exlibrisgroup.com/loughborough?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-22T19%3A17%3A23IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-elsevier_cross&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=ARTe:%20Providing%20real-time%20multitasking%20to%20Arduino&rft.jtitle=The%20Journal%20of%20systems%20and%20software&rft.au=Restuccia,%20Francesco&rft.date=2022-04&rft.volume=186&rft.spage=111185&rft.pages=111185-&rft.artnum=111185&rft.issn=0164-1212&rft.eissn=1873-1228&rft_id=info:doi/10.1016/j.jss.2021.111185&rft_dat=%3Celsevier_cross%3ES016412122100265X%3C/elsevier_cross%3E%3Cgrp_id%3Ecdi_FETCH-LOGICAL-c297t-c66f22038c4ffaffae348b73b7f2c41d4fa12f8e42faa0e8d195290552fb85f53%3C/grp_id%3E%3Coa%3E%3C/oa%3E%3Curl%3E%3C/url%3E&rft_id=info:oai/&rft_id=info:pmid/&rfr_iscdi=true