This is a status of the Eclipse Edje project presented at EclipseCon Europe on October 2016.
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).
2. Laurent Lagosanto
Senior Architect at MicroEJ®
18 years of “Java in the Small” activities
laurent.lagosanto@microej.com
ABOUT THE PRESENTER
The information contained herein is not warranted to be error-free.
MicroEJ® and all relative logos are trademarks or registered trademarks of IS2T S.A. in France and other Countries.
Java™ is Sun Microsystems’ trademark for a technology for developing application software and deploying it in cross-platform, networked
environments. When it is used in this site without adding the “™” symbol, it includes implementations of the technology by companies other
than Sun. Java™, all Java-based marks and all related logos are trademarks or registered trademarks of Sun Microsystems Inc, in the United
States and other Countries.
Other trademarks are proprietary of their respective owners.
5. IOT: DEVICES & GATEWAYS, DIFFERENT HARDWARES
8/16/32-bit MCU Mono-Core
Frequency: < 200 MHz
Flash: < 1 MB
RAM: < 512 KB
32/64-bit MPU Multi-Core
Frequency: in GHz
Flash: in GB
RAM: in GB
MCU MPU
IOT DEVICES GATEWAY
6. List of minimum Java API
The minimum execution environment provided by an Edje-compatible device
Intersection between Java SE, Java SE Embedded, MicroEJ and Android
EDJE DEVICE CONFIGURATION (EDC)
Edje Device Configuration
Edje API
Edje Application
Library
Execution
Environment
Application
Framework
Other
APIs
Other
APIs
Other
APIs
Java Runtime
Micro Controller
7. Edje focuses on the following aspects
EDJE API FOCUS
Controller
Communication
Interfaces
Serial Port
CAN
Digital and
Analog I/O
GPIO
Peripheral
Management
LCD
USB Devices
Analog Input
8. • Not much to say
• We silently droppped a first release end of July, mostly for legal
evaluation
• Communication activity re-started end of September, with a Virtual
Meetup
• Expect more soon… as we finally got the legal approval last Friday
PROJECT STATS
9. • Second code drop to happen this week
• Significant set of changes
• Includes a MicroEJ-specific implementation
• Runs on a STM32F746G-DISCO board (Cortex M7)
• Defines the base framework
• Next releases should happen soon
• Device API definitions (e.g. SPI, I2C, CAN)
• Topology-related improvements
• More ports (MicroEJ targets, and other runtimes)
• More samples
• Next MicroEJ OS releases will be based on Edje
PROJECT PLAN
10. • Keep it small
• We target micro-controllers, footprint matters
• Keep it focused
• There are a lot of Peripherals, Buses, Protocols, …
KEY CHALLENGES
11. • For new Peripheral API definitions
• Get input from field experts
• For new ports
• Raspberry Pi / JavaSE / jdk.dio, anyone ?
• Demos
• If you have a gateway or cloud project and need devices, think Edje !
• We can have Edje on any MicroEJ target
• Come see us on the Playground, and you’ll see:
• Edje
• LWM2M (Leshan)
• Californium
• Eclipse IDE
COLLABORATION OPPORTUNITIES
12. THANK YOU
FOR YOUR ATTENTION!
https://projects.eclipse.org/projects/iot.edje
Notas del editor
This figure illustrates where Edje is used. It is embedded in the devices that collect data from sensors and drive actuators. These devices can communicate with the cloud directly or through a gateway.
Edje is really at the edge of the IoT.
First of all, before defining the Edje API we need to specify a Java execution environment that is available on all the Edje compatible devices.
Edje must rely only on this execution environment. This means the Edje API must compile on a platform that provides only the classes defined in this configuration.
This execution environment is called “Edje Device Configuration”. It is the intersection between Java SE Embedded, MicroEJ and Android.