Skip to content

EM has finally arrived – now what ???

While the effort spent to design and develop EM has literally spanned decades, the real journey has only just begun:   promoting, sustaining, and evolving  an open-source implementation of the language and its runtime for use by the broader embedded systems community.

Slowly opening the doors

You have no idea how much "stuff" has accumulated in the EM software { basement | attic | garage } since the language's initial debut back in 2010:

distros for almost two dozen MCUs, ranging from the 8-bit AVR ATmega168 used in early Arduino boards [2010] to several open-source RISC-V RV32ICM designs targeting FPGA hardware [2023]

a highly-configurable multi-tasking kernel implementing a wide range of scheduling policies – priortized preemption, blocking semaphores, run-to-completion, and so forth

mini device-drivers for every imaginable sort of I2C-based sensor ( temperature, vibration, motion, light, etc ), plus a FLASH file-system optimized for real-time data-logging

wireless communication stacks targeting 2.4 GHz and 868 MHz / 915 MHz radios using customized as well as standardized (BLE, Wifi) protocols, with support for over-the-air firmware update

and that's just the tip of the iceberg !!!

If not already obvious, we don't want to simply leave this "stuff" by the street with a sign advertising free software.  Rather, we wish to open the door to EM rather gently – allowing the community to digest this (novel) language and runtime at a more measured pace.

To that end, we'll continually apply the "less is more"  principle within the current EM-SDK release train.(1)  Supporting just one MCU (for now !!)(2), we've also elected to limit the content bundled with these initial releases to only the most rudimentary EM runtime elements.

  1. 24.0.x [ beta ]  available now
    24.1.0 [ stable ] available Jan-24

  2. TI CC2340R5

These constraints, in fact, have enabled to us to better focus on EM itself – introducing the language and its runtime with a 10,000' technical overview followed by live, on-the-ground tours of curated programming examples.

Though rudimentary in design, these examples already hint at EM's uncanny ability to reduce program size when benchmarked against C/C++ .  The SDK also contains state and energy traces for these examples – captured in real-time using popular logic and power analyzers.

And while we've (obviously) grown fond of EM and would surely attest to its positive impact on software productivity, EM's promise of higher-level programming and  higher-levels of per­formance ultimately comes down to simple software metrics – size, speed, and  energy.

Stay engaged at blog.openen.org :   Upcoming posts will have more to say about the EM language in general, while soliciting your input on "now what" for the EM-SDK .

What can you do to help

read a little more about EM, including its origin story found here

create a personal account at GitHub, if you don't already have one

ask a question, voice a concern, or share a thought in our discussion forum

Happy coding !!!   🌝   πŸ’»