At the top of the list of requirements are devices that offer a high level of performance and reliability in a constrained footprint. Not only that, IoT devices will need to connect with the cloud in some format, so developers need to include wireless communications.
At one end of the IoT scale are relatively passive devices, such as sensors, which log a particular parameter and communicate that information on a regular basis. At the other end of the scale are more complex wearables, which take advantage of smartphone like apps to personalise their operation. All such devices need an operating system and a number of companies have responded to this need, including French company MicroEJ.
Leveraging traditional techniques
Vincent Perrier, MicroEJ’s chief marketing officer, said the company has been in existence since 2004, when it was set up as Industrial Smart Software Technology (IS2T). “From the beginning,” he said, “we have been looking to take technology and techniques from the traditional software sector – such as PCs – and deploy them on deeply embedded systems.
“At that time, we were looking at a Java development environment for small microcontrollers, but moved quickly to 32bit devices.”
Although IS2T has its heritage in serving customers in what Perrier called ‘traditional’ embedded sectors, such as military and aerospace, that is no longer the company’s focus.
“We’re now looking at the IoT,” he asserted. “Although we still have an interest in traditional embedded systems and in industrial automation, we have shifted into the IoT and wearables sectors. Our main focus is now consumer electronics, which could also include areas such as home automation, smart buildings and healthcare.”
And one of the factors driving that shift is volume; the company’s business model is based on royalties. “So we’re looking for volume applications,” Perrier admitted.
One of the solutions which the company is offering is the MicroEJ operating system. “Our target is to help engineers to reduce product development time and cost,” Perrier continued. “There is no reason why we shouldn’t provide IoT developers with the capabilities previously offered to the embedded market.”
The latest version of the OS – MicroEJ OS 4 – is said to add capabilities suited to the development of IoT devices. The features on offer are said to help with scalability, portability, connectivity and security.
MicroEJ says the growth in the popularity of smartphones and tablets means users now have higher expectations when it comes to how their devices perform and the services they provide. The company points out that MicroEJ OS 4 enables delivery of similar app driven experiences and services to devices that can’t afford to run on mobile platforms. ‘While a mobile OS typically requires Gbytes of memory and storage and GHz multicore microprocessors’, it says, ‘MicroEJ OS can run on low power, low cost MHz MCUs with kbytes of memory and storage’.
In this way, MicroEJ says it can reduce a bill of materials by up to 60%, while boosting battery life by up to 80%, when compared to those using a mobile OS.
MicroEJ OS 4 can have a footprint as small as 30kbyte and the OS can be scaled from that starting point with the addition of a range of optional hardware functions, optimising the software footprint and minimising system requirements for RAM and flash.
Portability across product ranges
Portability allows applications written for MicroEJ to be used across a range of products. The OS also includes a virtualisation layer that isolates application software from hardware.
Most popular wired and wireless communications protocols are supported, while communications and stored data are secured through the use of cryptography, including SSL/TLS and DTLS. The company notes its secure socket layer (SSL) library is provided by wolfSSL.
The company says apps and devices are identified securely using unique IDs and signed certificates. Alongside this level of security, MicroEJ says IP is also protected as reverse engineering becomes a complex process.
“The OS can run ‘bare metal’ on an MCU,” said Perrier, “so the minimal toolset is a compiler and a C run time library. Developers can then build on that foundation with drivers and a board support package.”
It can also run on top of a real time kernel and take advantage of their associated libraries to provide features such as multithreading. Amongst the RTOSs that are supported are Micrium, embOS, ThreadX and FreeRTOS, but vendor specific packages, such as STM32Cube, Kinetis SDK and Renesas Synergy, are also compatible.
“There is a parallel to be made,” Perrier believed. “People understand Android, what it does and how it provides a Java programming framework on top of Linux. We do the same, but at a smaller scale. All that is needed is a small real time kernel and a Java framework.”
Targeted at a range of MCUs
He noted that MicroEJ has strong expertise with languages, architectures and compilers. “We have an internal language and tool chain which sits behind MicroEJ. Java isn’t the main technology language, it’s a front end. Inside is an optimised language which not only enables support for multiple architectures, but also compact software.”
MicroEJ is targeted at a range of MCUs, as well as some microprocessors. “We’re looking to minimise power consumption on a range of platforms,” Perrier said, “and the ARM Cortex-M family is the dominant platform. But we are also working with those developing systems based on MIPS and Renesas devices, for example.”
MicroEJ OS is also said to ensure that downloaded apps will execute safely and independently from each other by providing an isolation layer and by controlling their access to system resources and APIs. Because apps are verified at build time when published to the MicroEJ Application Store, their execution on the target device is guaranteed. Apps are loaded in binary format and executed in place in RAM or flash, which means performance and memory are optimised.
“It’s just like Android,” Perrier noted. “It’s an online app store where developers can store and download apps. MicroEJ will connect to the app store and download apps to the device. This will also allow OEMs to create an ecosystem of developers for their devices.”
The MicroEJ OS has been in the market for a couple of years, but devices based on the technology are beginning to appear.
Included in those now available is Bong’s X2 smartwatch. This not only shows users the time, but also their heartrate and step information. With no buttons or touchscreen, the smartwatch operates through wrist gestures. With a 128×128 8bit square colour LCD, the device is powered by a Cortex-M4 MCU.
Because Bong adopted a components based architecture, the MicroEJ OS virtualisation layer allowed functions to be delivered independently of hardware or firmware. This means all of the X2’s application code can be reused.
“It takes time for technology to be adopted,” Perrier concluded, “and for design wins to get to production. But there are 1million devices now deployed, with 20m in production, including kitchen appliance and home automation products.”