Bosch Connected Devices and Solutions
IoT development

A new programming language for the embedded IoT

Introducing Eclipse Mita

Effortless prototyping and easy to program

Developer looks into a computer and wears headphones

Developing new solutions for the Internet of Things can be quite challenging sometimes. Eclipse Mita is a new programming language for the embedded Internet of Things that aims to make embedded IoT development easier. It is not only easy to program, but it also allows effortless prototyping and enables the possibility of switching platforms during development.

two developers sitting infront of a computer

When programming embedded connected sensor devices, the language of choice is mostly C due to hardware limitations. High-level languages like Python or JavaScript are simply not feasible to run on embedded hardware. Further, more advanced low-level languages like Rust are even harder to learn than C and are not yet elaborated enough for embedded devices.

At the same time, in an early stage of development, you probably do not know which hardware specifications – sensors, connectivity or battery size – you will need. Since the written C code will not run on another platform, new code or adapting the existing code according to the new platform requirements is necessary. This costs a lot of time and raises development costs.

Considering the capabilities of embedded devices

Eclipse Mita was intially developed for the Bosch Cross Domain Development Kit (XDK) where it is called XDK LIVE. The new language is inspired by modern reactive programming languages such as TypeScript, but is as fast and efficient as manually written C code. At the same time, Mita offers modern language features like strings or dynamically sized arrays, compiling them to idiomatic embedded C. This means that produced data structures are safe to use and memory allocation is static or on the stack. Moreover, generated code is as close as possible to C code you would write yourself.

Mita also enables easy use of other essentials you find a lot of in the embedded world: You can easily send messages over MQTT, read out acceleration sensors or react to a change in illumination. Setting up the device is declarative, thus you do not need to specify how to bring up WLAN in an initialization method, instead you write a declarative data structure. This allows the compiler to detect more errors before compilation, which leads to a less stressful programming experience.

Modern language features and declarative data structure

Connected shock detector: Programming the XDK with Eclipse Mita where it is called XDK LIVE.

Separating platform and programming logic

Besides the fact that Eclipse Mita is easier to program and learn than C, the written code is also independent from any platform requirements. This means that changes in the hardware or Software Development Kits do not affect your code. Let’s look a little more closely at how we achieve this independency.

With Eclipse Mita, platform and programming logic are separate, which facilitates bringing high-level language features to embedded programming while platform experts can develop and maintain platform specific code independently. This disjunction of concerns enables a strong, modern language as well as a hardware specific, efficient code thus fully taking advantage of the capabilities of different hardware.

Switching platforms made easy

 A man and a woman using Eclipse Mita and the Cross Domain Development Kit (XDK)

As a result, changing platforms is as easy as changing one single line of code. This means that it is much easier to write stable programming logic since developers only have to write it once in the development cycle. Moreover, the programming effort when deploying a prototype to the real world is reduced to a minimum, so that scalability is also no problem when using Eclipse Mita as the programming language for your Internet of Things project. Currently, the reference platform for Eclipse Mita is the Cross Domain Development Kit (XDK) from Bosch, but support for more platforms such as Arduino and Freedom Board will come in the near future.

Ready for your IoT project?

You can already start your Internet of Things project today with a prototype using the Cross Domain Development Kit (XDK) together with Eclipse Mita as the programming language and integrate multiple platforms or different hardware soon after, cost-efficiently and effortless. How can we help you to realize your project?

Share this on:


Contact us

Bosch Connected Devices and Solutions GmbH