Jacdac: Service-Based Prototyping of Embedded Systems (2024)

research-article

Open access

Jacdac: Service-Based Prototyping of Embedded Systems (1)Jacdac: Service-Based Prototyping of Embedded Systems (2)

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 Downloads5

Last 12 Months5

Last 6 weeks5

  • Get Citation Alerts

    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

    1. Jacdac: Service-Based Prototyping of Embedded Systems

      1. Computer systems organization

        1. Embedded and cyber-physical systems

          1. Embedded systems

            1. Embedded software

              1. Firmware

          2. Software and its engineering

            1. Software organization and properties

              1. Software system structures

                1. Abstraction, modeling and modularity

                  1. 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

            Jacdac: Service-Based Prototyping of Embedded Systems (3)

            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

            1. embedded systems
            2. microcontrollers
            3. plug-and-play
            4. services

            Qualifiers

            • Research-article

            Contributors

            Jacdac: Service-Based Prototyping of Embedded Systems (6)

            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

            PDF

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader

            Get 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

            Jacdac: Service-Based Prototyping of Embedded Systems (2024)
            Top Articles
            Latest Posts
            Article information

            Author: Cheryll Lueilwitz

            Last Updated:

            Views: 6413

            Rating: 4.3 / 5 (74 voted)

            Reviews: 81% of readers found this page helpful

            Author information

            Name: Cheryll Lueilwitz

            Birthday: 1997-12-23

            Address: 4653 O'Kon Hill, Lake Juanstad, AR 65469

            Phone: +494124489301

            Job: Marketing Representative

            Hobby: Reading, Ice skating, Foraging, BASE jumping, Hiking, Skateboarding, Kayaking

            Introduction: My name is Cheryll Lueilwitz, I am a sparkling, clean, super, lucky, joyous, outstanding, lucky person who loves writing and wants to share my knowledge and understanding with you.