Authors: Thomas Ball, Peli de Halleux, James Devine, Steve Hodges, and Michał Moskal
Proceedings of the ACM on Programming Languages, Volume 8, Issue PLDI
Article No.: 175, Pages 692 - 715
Published: 20 June 2024 Publication History
Related Artifact: Jacdac: Service-based Prototyping of Embedded Systems (PLDI 2024 Artifact Evaluation) June 2024datahttps://doi.org/10.5281/zenodo.10892762
- 0citation
- 5
- Downloads
Metrics
Total Citations0Total Downloads5Last 12 Months5
Last 6 weeks5
New Citation Alert added!
This alert has been successfully added and will be sent to:
You will be notified whenever a record that you have chosen has been cited.
To manage your alert preferences, click on the button below.
Manage my Alerts
New Citation Alert!
Please log in to your account
PDFeReader
- View Options
- References
- Media
- Tables
- Share
Abstract
The traditional approach to programming embedded systems is monolithic: firmware on a microcontroller contains both application code and the drivers needed to communicate with sensors and actuators, using low-level protocols such as I2C, SPI, and RS232. In comparison, software development for the cloud has moved to a service-based development and operation paradigm: a service provides a discrete unit of functionality that can be accessed remotely by an application, or other service, but is independently managed and updated. We propose, design, implement, and evaluate a service-based approach to prototyping embedded systems called Jacdac. Jacdac defines a service specification language, designed especially for embedded systems, along with a host of specifications for a variety of sensors and actuators. With Jacdac, each sensor/actuator in a system is paired with a low-cost microcontroller that advertises the services that represent the functionality of the underlying hardware over an efficient and low-cost single-wire bus protocol. A separate microcontroller executes the user's application program, which is a client of the Jacdac services on the bus. Our evaluation shows that Jacdac supports a service-based abstraction for sensors/actuators at low cost and reasonable performance, with many benefits for prototyping: ease of use via the automated discovery of devices and their capabilities, substitution of same-service devices for each other, as well as high-level programming, monitoring, and debugging. We also report on the experience of bringing Jacdac to commercial availability via third-party manufacturers.
References
[1]
Analog Devices Resource Library. 2000. Guide to Selecting and Using RS-232, RS-422, and RS-485 Serial Data Standards.
[2]
Arm. 2017. The Arm Mbed IoT Device Platform. https://www.mbed.com/
[3]
Jonny Austin, Howard Baker, Thomas Ball, James Devine, Joe Finney, Peli De Halleux, Steve Hodges, Michał Moskal, and Gareth Stockdale. 2020. The BBC micro:bit—from the UK to the world. Commun. ACM, 63, 3 (2020), 62–69. https://doi.org/10.1145/3368856
Digital Library
[4]
Dan Awtrey. 1997. Transmitting data and power over a one-wire bus. Sensors-The Journal of Applied Sensing Technology, 14, 2 (1997), 48–51.
[5]
Thomas Ball, Abhijith Chatra, Peli de Halleux, Steve Hodges, Michał Moskal, and Jacqueline Russell. 2019. Microsoft MakeCode: embedded programming for education, in blocks and TypeScript. In Proceedings of the 2019 ACM SIGPLAN symposium on SPLASH-E. ACM, 7–12. https://doi.org/10.1145/3358711.3361630
Digital Library
[6]
Thomas Ball, Peli de Halleux, and Michał Moskal. 2019. Static TypeScript: an implementation of a static compiler for the TypeScript language. In Proceedings of the 16th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes, MPLR 2019, Athens, Greece, October 21-22, 2019, Antony L. Hosking and Irene Finocchi (Eds.). ACM, 105–116. https://doi.org/10.1145/3357390.3361032
Digital Library
[7]
Christopher L. Conway and Stephen A. Edwards. 2004. NDL: a domain-specific language for device drivers. In Proceedings of the 2004 ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES’04), Washington, DC, USA, June 11-13, 2004, David B. Whalley and Ron Cytron (Eds.). ACM, 30–36. https://doi.org/10.1145/997163.997169
Digital Library
[8]
Nathan Cooprider, Will Archer, Eric Eide, David Gay, and John Regehr. 2007. Efficient Memory Safety for TinyOS. In Proceedings of the 5th International Conference on Embedded Networked Sensor Systems (SenSys ’07). ACM, 205–218. isbn:9781595937636 https://doi.org/10.1145/1322263.1322283
Digital Library
[9]
Peter Corcoran. 2013. Two wires and 30 years: A tribute and introductory tutorial to the I2C two-wire bus. IEEE Consumer Electronics Magazine, 2, 3 (2013), 30–36.
[10]
James Devine, Thomas Ball, Peli de Halleux, Michał Moskal, and Steve Hodges. 2024. Jacdac: Service-based Prototyping of Embedded Systems (PLDI 2024 Artifact Evaluation). https://doi.org/10.5281/zenodo.10892762
[11]
James Devine, Joe Finney, Peli de Halleux, Michał Moskal, Thomas Ball, and Steve Hodges. 2018. MakeCode and CODAL: Intuitive and Efficient Embedded Systems Programming for Education. In Proceedings of the 19th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES 2018). ACM, 19–30. isbn:9781450358033 https://doi.org/10.1145/3211332.3211335
Digital Library
[12]
James Devine, Michal Michał, Peli de Halleux, Thomas Ball, Steve Hodges, Gabriele D’Amone, David Gakure, Joe Finney, Lorraine Underwood, Kobi Hartley, Paul Kos, and Matt Oppenheim. 2022. Plug-and-play Physical Computing with Jacdac. Proc. ACM Interact. Mob. Wearable Ubiquitous Technol., 6, 3 (2022), 110:1–110:30. https://doi.org/10.1145/3550317
Digital Library
[13]
Nicola Dragoni, Saverio Giallorenzo, Alberto Lluch Lafuente, Manuel Mazzara, Fabrizio Montesi, Ruslan Mustafin, and Larisa Safina. 2017. Microservices: Yesterday, Today, and Tomorrow. Springer International Publishing, Cham. 195–216. isbn:978-3-319-67425-4 https://doi.org/10.1007/978-3-319-67425-4_12
[14]
Chris Exton, Damien Watkins, and Dean Thompson. 1997. Comparisons between CORBA IDL & COM/DCOM MIDL: Interfaces for Distributed Computing. In TOOLS 1997: 25th International Conference on Technology of Object-Oriented Languages and Systems, 24-28 November 1997, Melbourne, Australia. IEEE Computer Society, 15–32. https://doi.org/10.1109/TOOLS.1997.681859
[15]
David Gay, Phil Levis, and David Culler. 2005. Software Design Patterns for TinyOS. In Proceedings of the 2005 ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES ’05). ACM, 40–49. isbn:1595930183 https://doi.org/10.1145/1065910.1065917
Digital Library
[16]
David Gay, Philip Alexander Levis, J. Robert von Behren, Matt Welsh, Eric A. Brewer, and David E. Culler. 2003. The nesC language: A holistic approach to networked embedded systems. In Proceedings of the ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation 2003, San Diego, California, USA, June 9-11, 2003, Ron Cytron and Rajiv Gupta (Eds.). ACM, 1–11. https://doi.org/10.1145/781131.781133
Digital Library
[17]
Steve Hodges, Sue Sentance, Joe Finney, and Thomas Ball. 2020. Physical computing: A key element of modern computer science education. Computer, 53, 4 (2020), 20–30. https://doi.org/10.1109/MC.2019.2935058
[18]
Frédéric Leens. 2009. An introduction to I2C and SPI protocols. IEEE Instrumentation & Measurement Magazine, 12, 1 (2009), 8–13.
[19]
David I Lehn, Craig W Neely, Kevin Schoonover, Thomas L Martin, and Mark T Jones. 2004. e-TAGs: e-textile attached gadgets. http://hdl.handle.net/10919/80538
[20]
Philip Alexander Levis. 2012. Experiences from a Decade of TinyOS Development. In 10th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2012, Hollywood, CA, USA, October 8-10, 2012, Chandu Thekkath and Amin Vahdat (Eds.). USENIX Association, 207–220. https://www.usenix.org/conference/osdi12/technical-sessions/presentation/levis
[21]
Philip Alexander Levis, Samuel Madden, Joseph Polastre, Robert Szewczyk, Kamin Whitehouse, Alec Woo, David Gay, Jason L. Hill, Matt Welsh, Eric A. Brewer, and David E. Culler. 2005. TinyOS: An Operating System for Sensor Networks. In Ambient Intelligence, Werner Weber, Jan M. Rabaey, and Emile H. L. Aarts (Eds.). Springer, 115–148. https://doi.org/10.1007/3-540-27139-2_7
[22]
Fabrice Mérillon and Gilles Muller. 2001. Dealing with Hardware in Embedded Software: A General Framework Based on the Devil Language. In Proceedings of The Workshop on Languages, Compilers, and Tools for Embedded Systems (LCTES 2001), June 22-23, 2001 / The Workshop on Optimization of Middleware and Distributed Systems (OM 2001), June 18, 2001, Snowbird, Utah, USA, Seongsoo Hong and Santosh Pande (Eds.). ACM, 121–127. https://doi.org/10.1145/384197.384214
Digital Library
[23]
Fabrice Mérillon, Laurent Réveillère, Charles Consel, Renaud Marlet, and Gilles Muller. 2000. Devil: An IDL for Hardware Programming. In Proceedings of the 4th Conference on Symposium on Operating System Design & Implementation - Volume 4 (OSDI’00). USENIX Association, USA. Article 2, http://dl.acm.org/citation.cfm?id=1251231
Google Scholar
[24]
Grace Ngai, Stephen CF Chan, Vincent TY Ng, Joey CY Cheung, Sam SS Choy, Winnie WY Lau, and Jason TP Tse. 2010. i* CATch: a scalable plug-n-play wearable computing framework for novices and children. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. 443–452. https://doi.org/10.1145/1753326.1753393
Digital Library
[25]
Jon Postel. 1980. User datagram protocol. Internet Standard RFC 768
[26]
Jon Postel. 1981. Transmission control protocol. Internet Standard RFC 793
[27]
Leonid Ryzhyk, Peter Chubb, Ihor Kuz, Etienne Le Sueur, and Gernot Heiser. 2009. Automatic device driver synthesis with termite. In Proceedings of the 22nd ACM Symposium on Operating Systems Principles 2009, SOSP 2009, Big Sky, Montana, USA, October 11-14, 2009, Jeanna Neefe Matthews and Thomas E. Anderson (Eds.). ACM, 73–86. https://doi.org/10.1145/1629575.1629583
Digital Library
[28]
Rajesh Sankaran, Brygg Ullmer, Jagannathan Ramanujam, Karun Kallakuri, Srikanth Jandhyala, Cornelius Toole, and Christopher Laan. 2009. Decoupling interaction hardware design using libraries of reusable electronics. In Proceedings of the 3rd International Conference on Tangible and Embedded Interaction. 331–337. https://doi.org/10.1145/1517664.1517732
Digital Library
[29]
Dallas Semiconductor. 1998. Fundamentals of RS-232 serial communications.
[30]
Philips Semiconductors. 2000. The I2C-bus specification. Philips Semiconductors, 9397, 750 (2000), 00954.
[31]
Charles R. Severance. 2014. Massimo Banzi: Building Arduino. IEEE Computer, 47, 1 (2014), 11–12. https://doi.org/10.1109/MC.2014.19
Digital Library
[32]
Manny Soltero, Jing Zhang, and Chris co*ckrill. 2002. 422 and 485 standards overview and system configurations. Texas Instruments Application Report, 1–33.
[33]
Universal Serial Bus Specification. 2000. Revision 2.0.
[34]
Jun Sun, Wanghong Yuan, Mahesh Kallahalla, and Nayeem Islam. 2005. HAIL: a language for easy and correct device access. In EMSOFT 2005, September 18-22, 2005, Jersey City, NJ, USA, 5th ACM International Conference On Embedded Software, Proceedings, Wayne H. Wolf (Ed.). ACM, 1–9. https://doi.org/10.1145/1086228.1086230
Digital Library
[35]
Jan Thar, Sophy Stönner, Florian Heller, and Jan Borchers. 2018. YAWN: yet another wearable toolkit. In Proceedings of the 2018 ACM International Symposium on Wearable Computers. 232–233.
Digital Library
[36]
Nicolas Villar, James Scott, Steve Hodges, Kerry Hammil, and Colin Miller. 2012. .NET Gadgeteer: A platform for custom devices. In International Conference on Pervasive Computing. 216–233. https://doi.org/10.1007/978-3-642-31205-2_14
Digital Library
[37]
World Wide Web Consortium (W3C). 2007. Web Services Description Language (WSDL) Version 2.0. https://www.w3.org/TR/wsdl/ W3C Recommendation 26 June 2007
Index Terms
Jacdac: Service-Based Prototyping of Embedded Systems
Computer systems organization
Embedded and cyber-physical systems
Embedded systems
Embedded software
Firmware
Software and its engineering
Software organization and properties
Software system structures
Abstraction, modeling and modularity
Embedded software
Recommendations
- A framework for flexible and dependable service-oriented embedded systems
Architecting dependable systems VII
The continued development and deployment of distributed, real-time embedded systems technologies in recent years has resulted in a multitude of ecosystems in which service-oriented embedded systems can now be realised. Such ecosystems are often exposed ...
Read More
- Interface decomposition for service compositions
ICSE '11: Proceedings of the 33rd International Conference on Software Engineering
Service-based applications can be realized by composing existing services into new, added-value composite services. The external services with which a service composition interacts are usually known by means of their syntactical interface. However, an ...
Read More
- Towards Mobile Data Streaming in Service Oriented Architecture
SRDS '10: Proceedings of the 2010 29th IEEE Symposium on Reliable Distributed Systems
Service Oriented Architecture (SOA) is an architectural pattern providing agility to align technical solutions to modular business services that are decoupled from service consumers. Service capabilities such as interface options, quality of service (...
Read More
Comments
Information & Contributors
Information
Published In
Proceedings of the ACM on Programming Languages Volume 8, Issue PLDI
June 2024
2198 pages
EISSN:2475-1421
DOI:10.1145/3554317
- Editor:
- Michael Hicks
Amazon, USA
Issue’s Table of Contents
Copyright © 2024 Owner/Author.
This work is licensed under a Creative Commons Attribution International 4.0 License.
Publisher
Association for Computing Machinery
New York, NY, United States
Publication History
Published: 20 June 2024
Published inPACMPLVolume 8, Issue PLDI
Permissions
Request permissions for this article.
Check for updates
Badges
Author Tags
- embedded systems
- microcontrollers
- plug-and-play
- services
Qualifiers
- Research-article
Contributors
Other Metrics
View Article Metrics
Bibliometrics & Citations
Bibliometrics
Article Metrics
Total Citations
5
Total Downloads
- Downloads (Last 12 months)5
- Downloads (Last 6 weeks)5
Other Metrics
View Author Metrics
Citations
View Options
View options
View or Download as a PDF file.
PDFeReader
View online with eReader.
eReaderGet Access
Login options
Check if you have access through your login credentials or your institution to get full access on this article.
Sign in
Full Access
Get this Article
Media
Figures
Other
Tables