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++ compiler. 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 ???
- { 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 consequently 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.
- 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 !!!