App containers have long been used in the IT world. Now MicroEJ extends the concept to embedded and IoT apps running on small MCUs starting at a $1 price point.

Since the invention of the transistor back in 1947, the proliferation of electronic devices has been remarkable. Our lives intersect daily with systems containing an average of 200 to 400 integrated circuits. Our smartphones are an obvious example. It is less apparent when we take the elevator or wash a load of laundry that they run embedded software. Powerful processors and small microcontrollers alike are ubiquitous and punctuate the lives of today’s increasingly demanding consumers. 

While the Fortune 100 names in consumer electronics immediately spring to mind, many more companies of all sizes rely on electronic systems to differentiate their products and increase their performance and overall usability. These companies are exposed to cut-throat competition, which pushes them to accelerate the rhythm of innovation and new product introduction. 

The typical product development process is extremely inefficient 

Embedded software is typically a monolithic, single image, executable specific to a single set of electronics, RTOS/OS, drivers, etc. Even with modular design in mind, most of the time, updating even a tiny bit of code requires updating, recompiling, and retesting the entire application. The worst part is that the code you took so much time to write and test is hardly reusable for another product. 

Here is a thing to keep in mind: unlike in the PC or Mobile phone industries, where the processor/OS combinations are a handful, embedded developers have the humongous task of supporting many variants. For example, there are about 10,000 different microprocessors and microcontrollers to choose from. There are around 50 different RTOS options, about 100 software stacks (connectivity, communication, human-machine interfaces (HMIs), etc.), along with a wide variety of compilers. On top of this, there are hundreds of device use cases and form factors. All of which translates into a staggering 500 million different possible permutations in this “Matrix of pain.” 

App containers open the gate to fast innovations 

As the pace of innovation is greatly accelerating, injecting agility into the development process becomes vital to release products on the shelves faster than the competition. It is now established that modern development methods, such as virtualization and—ultimately—containers, allow for high levels of agility through best practices such as development on simulated devices, continuous development and delivery, and automated testing. 

“With containers, it doesn’t matter what you are running on. The software layer can be seen as one big brick portable from one hardware to another in a matter of weeks (instead of months with the traditional monolithic approach). Moreover, this huge brick is made of several tiny bricks of software (a.k.a. applications) that can each serve different functions such as connectivity, UI, etc. These apps can be built in different languages by different teams and can be maintained separately. This is exactly how Android works, and so does MicroEJ, except on a much smaller footprint in order to fit in very small MCUs starting at a $1 price point,” says Dr. Fred Rivard, MicroEJ’s CEO. 

In the embedded industry, “Footprint is money” 

App containers have long been used in the IT world. However, diminishing their footprint to fit in small electronics has been very complex, if not impossible, until now, despite multiple attempts from industry leaders such as Android and Oracle, who obviously saw the tremendous value of creating a standard virtualization solution for smart things.  

“In the case of MicroEJ, we have created a 32-bit virtual processor unit called MEJ32 with its own unique instruction set architecture (ISA). It has an extremely low footprint (MICROEJ VEE typically requires only 50 KB of memory) and is versatile, since it has been tailored and optimized to run on most embedded systems processors and OS/RTOS commonly used in embedded systems. We have long been working hand in hand with partners such as NXP, STMicroelectronics, Renesas, Sony, etc., to help Fortune 100 clients release their products up to 3X faster by allowing hardware and software parallel development,” explains Dr. Rivard. 

The choice of streamlining 

Embedded software development has always been complex, but now companies have a choice. They can continue with boutique or homegrown traditional methods, where one risks spending countless cycles trying to reinvent the wheel, or they can move to a streamlined, automated development environment with hardware virtualization facilitating the early validation and rapid prototyping phases. 

“Needless to say, in the current context of global chip shortages in every industry, being able to quickly shift from one given set of electronics to another is a ‘live or die’ situation. We have seen clients compelled to put a stop on entire lines of production due to their reliance on a single chip reference, even for volumes above 1 million units a year,” adds Dr. Rivard. “App containers are not only a huge deal in time and cost savings, but they are also a great way to mitigate risks in an unstable international environment.”