Skip to content

Choosing the next EM • MCU target hardware

EM offers up a "write once, run anywhere..." value proposition which enables embedded developers to (easily) migrate code from one MCU to the next.  But embedded software portability ultimately depends upon porting the EM software – hence we need MCU #2, MCU #3, ....

General MCU requirements

In theory, the EM language and runtime can target any  MCU supported by a C/C++ com­piler.  In practice, however, we'll generally consider other factors when choosing MCU hardware:

availability of relatively inexpensive MCU development board(s) in the marketplace

the more "modest" the MCU, the better – simple CPU, limited memory, basic peripherals

recent MCU with an active developer community – like Arduino Diecimilla,  but not retired

MCU target #1 – TI CC2340

With many of today's MCUs meeting these requirements (and with several EM distros for them already in the BAG(1)), why did we chose the TI CC2340 for our public debut of EM ???

  1. { Basement | Attic | Garage }

When first announced by Texas Instruments back in 2022 , the CC2340 wireless MCU immediately caught our attention – because the device did not  represent the next node in a silicon roadmap featuring a higher-performance CPU core with significantly more memory.

Rather than pushing the technology "up and to the right" (as silicon vendors tend to do), TI has positioned the CC2340 as a low-cost, entry-level wireless MCU – and has conse­quently downsized its CPU, trimmed its Flash / SRAM, and streamlined its 2.4 GHz radio.

Compared with its predecessors and competitors alike, we applaud this "less is more" approach to MCU architecture – which also resonates with the overall objectives of EM.

FULL DISCLOSURE – My prior relationship with TI

I co-founded a company (Spectron) in 1987, which Texas Instruments would eventually acquire in 1998.  Elected TI Fellow in 2000 after broad adoption of our DSP/BIOS product, I then co-created the real-time software components  [RTSC]  technology – open-sourced in 2007 through the Eclipse Foundation.

After retiring from TI in 2009, I morphed the RTSC technology into the initial version of EM – first used by students at UC Santa Barbara in 2010, and then used to implement Bluetooth Low Energy [BLE] applications within another company (Emmoco) which I also co-founded.

An early player in the BLE market, Emmoco primarily relied on wireless MCUs from TI – starting with the CC25xx family (8-bit 8051 CPU) and later moving to the CC26x0 (32-bit Cortex-M3 CPU).  Acquired at the end of 2015 by Shelfbucks , wireless MCU support broadened to include the CC13x0 family and its sub-GHz radio.

From a software perspective, we've actively maintained EM distros for a number of TI CC13xx / CC26xx devices. Besides writing a highly-optimized sub-GHz communication stack completely in EM, we also discovered EM's value in optimizing TI's own BLE stack – triming memory to 30 KB and reducing power up to 40%.

Despite a long history working with(in) Texas Instruments, I received no "insider info" about the CC2340 ahead of its general release in mid-2023; and other than a few technical questions posted on the TI Forum, I received no "back door" support while coding its EM distro earlier this year.  But I do  like this device – and so does EM !!!

Factors for MCU #2, #3, ...

Returning to the matter at hand – identifying the next MCU(s) which EM will target.  Looking to complement our choice of the TI CC2340 as MCU #1, further considerations we'd like to address with MCU #2, MCU #3, and beyond include the following:

 sourced from a silicon vendor other than TI reinforces a key value proposition of EM
 features a CPU comparable to Cortex-M0+ probably a 32-bit Arm or RISC-V core
 promoted as an "ultra-low-power" device increases the value of EM's energy benchmarks
 supports a popular RTOS such as Zephyr further opportunities to highlight EM's performance
 optionally includes a radio transceiver as we do  plan to release EM-based comm stacks

Porting EM  (scheduled for completion in 1Q24) will take a deep-dive into the TI CC2340 distro – using our MCU #1 as an examplar to start the train moving on to stations MCU #2, MCU #3, and all points beyond.(1)  Track our progress in future posts at blog.openen.org.

  1. Engineers wishing to "hop on board" and port to an MCU of their choice should find us on GitHub.

What can you do to help

review the Tiny code → Tiny chips material found here  within the EM platform documentation

read up on the TI CC2340R5 device, to appreciate why this particular MCU caught our attention

voice your opinion about which MCU(s) we should tackle next in the EM SDK discussion forum

Happy coding !!!   🌝   💻