Edje project: the software foundation for IoT devices
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 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 Eclipse 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 talk aims at presenting the packages and API that constitute the core of EDC, defining the minimal foundation that iot.eclipse.org projects can rely on, and still compatible with economical constraints of the IoT: footprint.
The Edje project also defines a standard high-level Java API called Hardware Abstraction Layer (HAL) for accessing hardware features delivered by microcontrollers such as GPIO, DAC, ADC, PWM, etc. that can directly connect to native libraries, drivers and board support packages provided by silicon vendors with their evaluation kits.
Eventually, Edje also aims at providing ready-to-use hardware and software packages that developers can get and use to develop quickly and easily IoT device software and applications, possibly from application stores.