×

Status message

This proposal has been approved and the Eclipse Edje project has been created.

Edje

Basics
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project: 
Scope: 

The Eclipse Edje project provides a standard hardware abstraction Java API required for delivering IoT services that meet performance and memory constraints of microcontroller-based devices. Edje also provides ready-to-use software packages for target hardware that developers can get from third-parties to develop quickly and easily IoT device software and applications.

Description: 

The Eclipse Edje project provides a standard hardware abstraction Java API required for delivering IoT services that meet performance and memory constraints of microcontroller-based devices. Edje also provides ready-to-use software packages for target hardware that developers can get from third-parties to develop quickly and easily IoT device software and applications.

The edge devices connected to the Cloud that constitute the Internet of Things (IoT) require support for building blocks, standards and frameworks like those provided by the Eclipse Foundation projects: Californium, Paho, Leshan, Kura, Mihini, etc. Because of the large deployment of Java technology in the Cloud, on the PC, mobile and server sides, most projects above are implemented in Java technology.

Deploying these technologies on embedded devices requires a scalable IoT software platform that can support the hardware foundations of the IoT: microcontrollers (MCU). MCU delivered by companies like STMicroelectronics, NXP+Freescale, Renesas, Atmel, Microchip, etc. are small low-cost low-power 32-bit processors designed for running software in resource-constraint environments: low memory (typically KB), flash (typically MB) and frequency (typically MHz).

The goal of the Edje project is to define a standard high-level Java API called Hardware Abstraction Layer (HAL) for accessing hardware features delivered by microcontrollers such as GPIO, DAC, ADC, PWM, MEMS, UART, CAN, Network, LCD, etc. that can directly connect to native libraries, drivers and board support packages provided by silicon vendors with their evaluation kits.

To achieve this goal, the Edje project also defines the minimal set of API required for delivering IoT services, leveraging largely-deployed technologies, and meeting performance and memory constraints of IoT embedded devices. Edje defines the Edje Device Configuration (EDC). Care has been taken to make the EDC a proper subset of the different Java runtime environments found in Android, J2SE, J2ME, OSGi Minimum and others. This project presents the packages and API that constitute the core of EDC, defines the minimal foundation that iot.eclipse.org projects can rely on, and still compatible with economical constraints of the IoT: footprint. EDC covers the standard packages part of the Java core language (java.lang, java.io, …).

Why Here?: 

The Edje project provides a foundation for deploying IoT frameworks and standards delivered by Eclipse on low-cost resource constrained hardware. Hosting the Edje project at Eclipse ensures that the full stack is available from the same source and properly integrated.
Being part of Eclipse, the Edje project expects quicker and broader adoption in the industry, through open source and by leveraging the Eclipse community and ecosystem.
The goal of the Edje project is to accelerate the development and deployment of IoT. The Edje project ensures that applications developed for Edje will run across hardware suitable for IoT deployment.

People
Source Code
Initial Contribution: 

The initial contribution of the Edje project consists in the ECOM framework specified by the ESR consortium.
This framework defines the classes to manage the connections and hardware components of a device.

IS2T holds the copyright of the ECOM implementation provided in this contribution. This implementation runs on MicroEJ OS.

Source Repository Type: 
David Woodard's picture

Hello Jerome,

This project looks very interesting. Please add Eurotech to the list of interested parties.

Thanks,

--Dave