Back to the list


ECMAScript modules for embedded systems


TC53 is standardizing APIs for embedded systems – including consumer electronics, wearables, industrial IoT, and other sensor-based devices – by applying the ECMAScript programming language. The success of ECMAScript (commonly known as JavaScript) on the web, cloud servers, and mobile is unquestioned. The language continues to evolve, carrying forward with it an ever-growing ecosystem of skilled developers and calling for standardization of an open ECMAScript-based platform for embedded systems.

TC53 develops ECMA-419 “ECMAScript® embedded systems API specification” which defines APIs for ECMAScript modules that support programs executing on embedded systems. The 1st edition of ECMA-419, published in June 2021, establishes fundamental patterns for extensible, secure APIs to efficiently support the wide-variety of hardware in embedded systems. A portable IO layer provides a foundation for higher-level drivers include IO expanders, sensors, and displays. The 2nd edition extends IO with asynchronous capabilities applied to I²C and the system management bus. It introduces new sensor classes, classes to manage and monitor network interfaces, client support for common network protocols, server support for the HTTP and WebSocket protocols, and a real-time clock peripheral class.

TC53 also developed TR/109, a repository of embedded hardware component class definitions for sensors, I/O expanders, displays, and real-time clocks; and TR/110 that provides recommendations and best practices data provenance for scripts on connected sensing devices, with a special focus on accurately time-stamping sensor data.

Security and privacy are important considerations, particularly with personal devices like wearables. Because of its history on the web, the security of ECMAScript has been carefully studied and continuously improved. Consequently, developing embedded systems in ECMAScript reduces security risks substantially. In addition, ECMA-419 APIs are designed to work with Hardened JavaScript, a secure subset of ECMAScript that enables highly efficient, fine-grain security policies.

Areas under consideration for a 3rd edition include expanding the breadth of sensors supported, audio input and output, storage APIs, additional APIs for network protocols, and energy management.

Learning about TC53:

  • presentation on the IO Class Pattern by Donovan Buck, Ecma TC53 member
  • presentation on Resuscitating IoT with ECMAScript/JavaScript by Peter Hoddie (TC53 Chair) & Lizzie Prader at OpenJS World (23 June 2020). This talk introduces work underway to bring JavaScript to IoT at scale and TC53 proposals for standard IoT APIs in JavaScript.
  • presentations from the TC53 seminar on a modern approach to embedded software (Tokyo, 11 December 2019)
  • introduction to TC53 “Smart wearable systems and sensor-based devices” by Peter Hoddie, Chair of TC53
  • link to our publicly-viewable work activities on GitHub.