EDJE PROJECT
Transcript of EDJE PROJECT
![Page 1: EDJE PROJECT](https://reader031.fdocuments.net/reader031/viewer/2022030322/58944bd81a28ab18718b615f/html5/thumbnails/1.jpg)
Eclipse IoT Day Grenoble 2016 © IS2T S.A. 2016. All rights reserved.
EDJE PROJECT
The Software Foundation for IoT Devices
https://projects.eclipse.org/projects/iot.edje
![Page 2: EDJE PROJECT](https://reader031.fdocuments.net/reader031/viewer/2022030322/58944bd81a28ab18718b615f/html5/thumbnails/2.jpg)
Eclipse IoT Day Grenoble 2016
PRESENTER
Jérôme Leroux
Development and Innovation Manager at MicroEJ®
Edje Project Leader
10 years expertise in Java Embedded Systems
The information contained herein is not warranted to be error-free.
IS2T® and 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.
![Page 3: EDJE PROJECT](https://reader031.fdocuments.net/reader031/viewer/2022030322/58944bd81a28ab18718b615f/html5/thumbnails/3.jpg)
Eclipse IoT Day Grenoble 2016
EDJE AND IOT INTRODUCTION
![Page 4: EDJE PROJECT](https://reader031.fdocuments.net/reader031/viewer/2022030322/58944bd81a28ab18718b615f/html5/thumbnails/4.jpg)
Eclipse IoT Day Grenoble 2016
EDJE PROJECT
The Hardware Abstraction Java API for the IoT embedded systems
• Peripheral management
• Controller Communication Interfaces (Serial connection, CAN, SPI, I²C)
• Digital and Analog I/O (GPIO, ADC, DAC)
Scope
• Target resource-constrained micro-controller
• Provide ready-to-use software packages for target hardware
• Define a modular and easy to port framework
Project Status
• Eclipse IoT project
• Incubation
![Page 5: EDJE PROJECT](https://reader031.fdocuments.net/reader031/viewer/2022030322/58944bd81a28ab18718b615f/html5/thumbnails/5.jpg)
Eclipse IoT Day Grenoble 2016
IOT TOPOLOGY
IOT DEVICES GATEWAY SERVER
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
![Page 6: EDJE PROJECT](https://reader031.fdocuments.net/reader031/viewer/2022030322/58944bd81a28ab18718b615f/html5/thumbnails/6.jpg)
Eclipse IoT Day Grenoble 2016
IOT HARDWARE
STM32F4 Discovery Raspberry PI 2
• Processor: 32-bits quad-core Cortex-A7 (BCM2836)
• Frequency: 900 MHz
• RAM: 1 GB
• Flash: SD Card
• Processor: 32-bits Cortex-M4 (STM32F407VGT6)
• Frequency: 168 MHz
• RAM: 192 KB
• Flash: 1 MB
![Page 7: EDJE PROJECT](https://reader031.fdocuments.net/reader031/viewer/2022030322/58944bd81a28ab18718b615f/html5/thumbnails/7.jpg)
Eclipse IoT Day Grenoble 2016
EDJE APPLICATION FIELD
Sensors/Actuators
Local Network
Internet
A library at the edge of the IoT for sensor hubs and devices
![Page 8: EDJE PROJECT](https://reader031.fdocuments.net/reader031/viewer/2022030322/58944bd81a28ab18718b615f/html5/thumbnails/8.jpg)
Eclipse IoT Day Grenoble 2016
EDJE REQUIREMENTS
![Page 9: EDJE PROJECT](https://reader031.fdocuments.net/reader031/viewer/2022030322/58944bd81a28ab18718b615f/html5/thumbnails/9.jpg)
Eclipse IoT Day Grenoble 2016
List of Java API
• The minimum execution environment provided by an Edje compatible device
• Intersection between Java SE, Java SE Embedded, MicroEJ and Android
• Includes java.lang, java.util, java.io, …
EDJE DEVICE CONFIGURATION
J2SE
J2SE Embedded
MicroEJ Android
Edje
![Page 10: EDJE PROJECT](https://reader031.fdocuments.net/reader031/viewer/2022030322/58944bd81a28ab18718b615f/html5/thumbnails/10.jpg)
Eclipse IoT Day Grenoble 2016
List of Java API
• The minimum execution environment provided by an Edje compatible device
• Intersection between Java SE, Java SE Embedded, MicroEJ and Android
• Includes java.lang, java.util, java.io, …
EDJE DEVICE CONFIGURATION
Edje Device Configuration
Edje API
Edje Application
Library
Execution Environment
![Page 11: EDJE PROJECT](https://reader031.fdocuments.net/reader031/viewer/2022030322/58944bd81a28ab18718b615f/html5/thumbnails/11.jpg)
Eclipse IoT Day Grenoble 2016
HARDWARE REQUIREMENTS
Minimal targeted Hardware
• Processor: 32-bits (e.g. Cortex-M0)
• Frequency: 16 MHz
• RAM: 32 KB
• Flash: 128 KB
![Page 12: EDJE PROJECT](https://reader031.fdocuments.net/reader031/viewer/2022030322/58944bd81a28ab18718b615f/html5/thumbnails/12.jpg)
Eclipse IoT Day Grenoble 2016
EDJE API
![Page 13: EDJE PROJECT](https://reader031.fdocuments.net/reader031/viewer/2022030322/58944bd81a28ab18718b615f/html5/thumbnails/13.jpg)
Eclipse IoT Day Grenoble 2016
EDJE API
Edje comes with the following services
Controller Communication
Interfaces
Serial Port
CAN
Digital and Analog I/O
GPIO
Peripheral Management
LCD
USB Devices
Analog Input
![Page 14: EDJE PROJECT](https://reader031.fdocuments.net/reader031/viewer/2022030322/58944bd81a28ab18718b615f/html5/thumbnails/14.jpg)
Eclipse IoT Day Grenoble 2016
EDJE API Peripheral Management
• List the peripherals of a platform
o MCU peripherals (UART, timer, USB controller, …)
o Board peripherals (screen, button, LED, sensors, …)
o External peripherals (USB devices, bluetooth devices, …)
• Peripheral plug/unplug notification system
![Page 15: EDJE PROJECT](https://reader031.fdocuments.net/reader031/viewer/2022030322/58944bd81a28ab18718b615f/html5/thumbnails/15.jpg)
Eclipse IoT Day Grenoble 2016
EDJE API
Controller Communication Interfaces
• Some peripherals can establish a connection to external devices
o Serial Connection (UART)
o Serial Peripheral Interface (SPI)
o Inter-Integrated Circuit (I²C)
o Controller Area Network (CAN)
• The peripheral implements Connectable interface
• Connection is described by a String
• Example with serial ports:
List<SerialPort> serialPorts = PeripheralManager.list(SerialPort.class);
for(SerialPort serialPort : serialPorts){
Connection connection = serialPort.openConnection("baudrate=115200;bitsperchar=8");
…
connection.close();
}
![Page 16: EDJE PROJECT](https://reader031.fdocuments.net/reader031/viewer/2022030322/58944bd81a28ab18718b615f/html5/thumbnails/16.jpg)
Eclipse IoT Day Grenoble 2016
EDJE API
Digital and Analog I/O
• Manage controller pins
• API inspired from Arduino C API
• General Purpose Input/Output (GPIO)
o LED, Buzzer, Button
• Analog to Digital Converter (ADC)
o Potentiometer, Temperature Sensor, Light Sensor
• Digital to Analog Converter (DAC)
o Speaker, Light Dimmer
• Pulse Width Modulation (PWM)
o Motor
![Page 17: EDJE PROJECT](https://reader031.fdocuments.net/reader031/viewer/2022030322/58944bd81a28ab18718b615f/html5/thumbnails/17.jpg)
Eclipse IoT Day Grenoble 2016
EDJE API
Digital and Analog I/O
• A pin is identified by the port and an ID
• Port name can be
o MCU specific
PortA PortB
![Page 18: EDJE PROJECT](https://reader031.fdocuments.net/reader031/viewer/2022030322/58944bd81a28ab18718b615f/html5/thumbnails/18.jpg)
Eclipse IoT Day Grenoble 2016
EDJE API
Digital and Analog I/O
• A pin is identified by the port and an ID
• Port name can be
o Board specific
J1
J2
J3 J4
![Page 19: EDJE PROJECT](https://reader031.fdocuments.net/reader031/viewer/2022030322/58944bd81a28ab18718b615f/html5/thumbnails/19.jpg)
Eclipse IoT Day Grenoble 2016
EDJE API
Digital and Analog I/O
• A pin is identified by the port and an ID
• Port name can be
o Standard
Digital Arduino
Analog Arduino
![Page 20: EDJE PROJECT](https://reader031.fdocuments.net/reader031/viewer/2022030322/58944bd81a28ab18718b615f/html5/thumbnails/20.jpg)
Eclipse IoT Day Grenoble 2016
REFERENCE IMPLEMENTATIONS
![Page 21: EDJE PROJECT](https://reader031.fdocuments.net/reader031/viewer/2022030322/58944bd81a28ab18718b615f/html5/thumbnails/21.jpg)
Eclipse IoT Day Grenoble 2016
REFERENCE IMPLEMENTATIONS
Features
• Peripheral Management
• UART, USB CDC, GPIO, DAC, ADC
Hardware
• Raspberry-Pi 2
• Quad-Cortex-A7 @ 900 MHz
• RAM: 1 GB RAM
Platform
• Kura
• OpenJDK
• Linux
![Page 22: EDJE PROJECT](https://reader031.fdocuments.net/reader031/viewer/2022030322/58944bd81a28ab18718b615f/html5/thumbnails/22.jpg)
Eclipse IoT Day Grenoble 2016
REFERENCE IMPLEMENTATIONS
Features
• Peripheral Management
• UART, USB CDC, GPIO, DAC, ADC
Hardware
• STM32F746G-DISCO
• Cortex-M7 @ 200 MHz
• RAM: 8 MB
• Flash: 16 MB
Platform
• MicroEJ OS
• FreeRTOS
• STM32Cube
![Page 23: EDJE PROJECT](https://reader031.fdocuments.net/reader031/viewer/2022030322/58944bd81a28ab18718b615f/html5/thumbnails/23.jpg)
Eclipse IoT Day Grenoble 2016
REFERENCE IMPLEMENTATIONS
Features
• Peripheral Management
• UART, USB CDC, GPIO, DAC, ADC
PC Simulation
• Java® SE
• Hardware In the Loop Simulation (HIL)
Execution Flow
Ethernet or Serial
![Page 24: EDJE PROJECT](https://reader031.fdocuments.net/reader031/viewer/2022030322/58944bd81a28ab18718b615f/html5/thumbnails/24.jpg)
Eclipse IoT Day Grenoble 2016
EDJE ROADMAP
![Page 25: EDJE PROJECT](https://reader031.fdocuments.net/reader031/viewer/2022030322/58944bd81a28ab18718b615f/html5/thumbnails/25.jpg)
Eclipse IoT Day Grenoble 2016
POTENTIAL ROADMAP
Features
• I²C, SPI
• Controller Area Network (CAN)
• Power Management
• Sensor
Reference Implementations
• MicroEJ Renesas Synergy Cortex-M4
• MicroEJ NXP Kinetis Cortex-M0+
![Page 26: EDJE PROJECT](https://reader031.fdocuments.net/reader031/viewer/2022030322/58944bd81a28ab18718b615f/html5/thumbnails/26.jpg)
Eclipse IoT Day Grenoble 2016
CALL TO ACTION
![Page 27: EDJE PROJECT](https://reader031.fdocuments.net/reader031/viewer/2022030322/58944bd81a28ab18718b615f/html5/thumbnails/27.jpg)
Eclipse IoT Day Grenoble 2016
DEMO
=
+ + over MicroEJ STM32F746G-DISCO Arduino Multi-function
Shield