Home > Research > Publications & Outputs > Jacdac: Service-Based Prototyping of Embedded S...

Links

Text available via DOI:

View graph of relations

Jacdac: Service-Based Prototyping of Embedded Systems

Research output: Contribution to Journal/MagazineJournal articlepeer-review

Published

Standard

Jacdac: Service-Based Prototyping of Embedded Systems. / Ball, Thomas; de Halleux, Peli; Devine, James et al.
In: Proceedings of the ACM on Programming Languages, Vol. 8, No. PLDI, 20.06.2024, p. 692-715.

Research output: Contribution to Journal/MagazineJournal articlepeer-review

Harvard

Ball, T, de Halleux, P, Devine, J, Hodges, S & Moskal, M 2024, 'Jacdac: Service-Based Prototyping of Embedded Systems', Proceedings of the ACM on Programming Languages, vol. 8, no. PLDI, pp. 692-715. https://doi.org/10.1145/3656405

APA

Ball, T., de Halleux, P., Devine, J., Hodges, S., & Moskal, M. (2024). Jacdac: Service-Based Prototyping of Embedded Systems. Proceedings of the ACM on Programming Languages, 8(PLDI), 692-715. https://doi.org/10.1145/3656405

Vancouver

Ball T, de Halleux P, Devine J, Hodges S, Moskal M. Jacdac: Service-Based Prototyping of Embedded Systems. Proceedings of the ACM on Programming Languages. 2024 Jun 20;8(PLDI):692-715. doi: 10.1145/3656405

Author

Ball, Thomas ; de Halleux, Peli ; Devine, James et al. / Jacdac: Service-Based Prototyping of Embedded Systems. In: Proceedings of the ACM on Programming Languages. 2024 ; Vol. 8, No. PLDI. pp. 692-715.

Bibtex

@article{7f31355c25324d01aa01abe76eb6c40b,
title = "Jacdac: Service-Based Prototyping of Embedded Systems",
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.",
author = "Thomas Ball and {de Halleux}, Peli and James Devine and Steve Hodges and Micha{\l} Moskal",
year = "2024",
month = jun,
day = "20",
doi = "10.1145/3656405",
language = "English",
volume = "8",
pages = "692--715",
journal = "Proceedings of the ACM on Programming Languages",
issn = "2475-1421",
publisher = "ACM",
number = "PLDI",

}

RIS

TY - JOUR

T1 - Jacdac: Service-Based Prototyping of Embedded Systems

AU - Ball, Thomas

AU - de Halleux, Peli

AU - Devine, James

AU - Hodges, Steve

AU - Moskal, Michał

PY - 2024/6/20

Y1 - 2024/6/20

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

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

U2 - 10.1145/3656405

DO - 10.1145/3656405

M3 - Journal article

VL - 8

SP - 692

EP - 715

JO - Proceedings of the ACM on Programming Languages

JF - Proceedings of the ACM on Programming Languages

SN - 2475-1421

IS - PLDI

ER -