The Eclipse Edje Project
MicroEJ was very proud to attend EclipseCon France as a premium sponsor to present the Eclipse Edje project. Each year MicroEJ, attend EclipseCon to meet the Eclipse community members and get useful feedback on our solutions and demos. This is also a great opportunitiy to encourage new contributors to join various Eclipse projects through the Eclipse Foundation.
As an Eclipse IDE user, we have been strongly involved in the Eclipse Community for a long time. We joined the Eclipse IoT Working Group a while ago and took the lead on the Eclipse Edje open source project. We officially presented the project to the Eclipse Community in the US first, at EclipseCon North America in Reston, Virginia, and more recently at EclipseCon France in Toulouse.
Eclipse Edje: the software foundations for IoT devices
Eclipse Edje aims at defining the software foundations for IoT devices. The project is ambitious yet the idea is simple.
The Internet of Things landscape is made of devices connected to the cloud. Microcontrollers (or MCUs) are particularly adapted to IoT devices because they are small, low-cost, low-power. They are also especially designed for running software in resource-constrained environments: low memory (typically KB), flash (typically MB) and frequency (typically MHz).
In the other hand, IoT devices require building blocks, standards and frameworks. Developers often implement these technologies with the Java language because it is largely used in the cloud, server, PC, and mobile sides.
Thus, to make these technologies suitable for IoT, developers needed a scalable and tiny software platform supporting microcontrollers, and enabling them to code with the Java language. This was the beginning of the Eclipse Edje project.
Indeed, Edje will provide developers with:
- A set of high-level Java APIs enabling to deliver services for IoT devices based on memory-constrained microcontrollers,
- Ready-to-use software packages for quick and easy development of device software and applications.
Microcontrollers: the foundations of IoT
The Edje Hardware Abstraction Layer
The set of APIs that the Eclipse Edje project defines is a Hardware Abstraction Layer (HAL). With the HAL, developers will be able to easily access hardware features like:
- Controller communication interfaces (CAN, UART, SPI, I²C)
- Digital and analog I/O (GPIO, DAC, ADC, PWM, MEMES)
- Peripheral management (USB devices, Bluetooth devices, LCD)
Eclipse Edje provides a foundation for deploying IoT frameworks and standards on cost-effective, resource-constrained hardware. Hosting the Edje project at Eclipse ensures that the full stack is available from the same source and is properly integrated. Being part of Eclipse, the Edje project can expect quicker and broader adoption in the industry, through open source, and by leveraging the Eclipse community and ecosystem.
Leveraging widely-deployed technologies, Eclipse Edje will also include the minimal set of APIs required for delivering IoT services. The project will then perfectly fit with the performance requirements and memory constraints of small devices.
Thus, Eclipse Edje will dramatically accelerate the development of IoT technologies. Developers will be able to code software applications that will run on hardware systems suitable for large-scale deployment of IoT devices.
We plan to release some reference implementations for STM32F746G-DISCO (ARM Cortex-M7@200 MHz, 8 MB RAM, 16MB Flash) and Raspberry-Pi 2 (Quad-Cortex-A7@900 MHz, 1 GB RAM) very soon.
If you need more details about the Eclipse Edje project, a full description is available at https://projects.eclipse.org/projects/iot.edje.
MicroEJ welcomes and encourages new contributors to join the project through the Eclipse Foundation!