Java API Embedded Software Development

Librairies

MicroEJ Library

Check out our available APIs from a large number of software libraries and discover how to add APIs specific to your projects.

  • Core Libraries:
B-ON B-ON introduces new concepts tailored to these constrained environments, while still adhering to the boundaries of Java semantics, hence the term “Beyond.” Documentation and Javadoc
EDC (Embedded Device Configuration) The Embedded Device Configuration specification defines the minimal standard runtime environment for embedded devices. Documentation and Javadoc
KF (Kernel and Features) The Kernel & Features semantic (KF) extends the runtime for managing Multi-Sandboxed Applications. Documentation and Javadoc
SNI (Simple Native Interface) SNI provides a simple mechanism for implementing native Java methods in the C language. Documentation and Javadoc
Service Loader Contains service management base interfaces and classes. Documentation and Javadoc

 

  • Featured VEE:
VEE Wear Documentation and Javadoc
LPFE (Low Power Facer Engine) VEE Wear supports the Facer Engine, expanding Facer’s extensive watch face catalog of 500,000 faces across all smartwatches, including low-power RTOS watches, enriching the user experience for all users. Documentation
Power Library available to control an MCU’s power modes. Documentation
VEE Script VEE Script is a scripting language supported on MICROEJ VEE. Its syntax is a subset of JavaScript. Documentation

 

VEE Energy Documentation
DLMS A library supporting the metering metrology standard DLMS. On demand
Energy Metrology The Energy Metrology Library is responsible for accessing meter metrology data and parameters. Javadoc

 

  • UI/UX Libraries:
MicroUI MicroUI Foundation Library provides access to a pixel-based display and inputs. Documentation and Javadoc
Drawings (Raster Graphics Engine) The raster graphics engine allows the use of shapes rendering and image with transformation rendering algorithms. Javadoc
MicroVG MicroVG Foundation Library provides vector drawing capabilities. Documentation and Javadoc
Motion Motion is a library that provides some of the most commonly used easing functions and allows users to define new ones. Documentation and Javadoc
MWT MWT is a toolkit that simplifies the creation and use of graphical user interface widgets on a pixel-based display. Documentation and Javadoc
Widgets The Widget library provides very common widgets with basic implementations. Documentation and Javadoc
NLS Native Language Support (NLS) allows the application to facilitate internationalization. It provides support to manipulate messages and translate them in different languages. Documentation and Javadoc

 

  • Connectivity Libraries:
Android Connectivity Network connection state and notifications. Documentation and Javadoc
Bluetooth The Bluetooth API Library provides APIs to use BLE (Bluetooth Low Energy) in an Application. Documentation and Javadoc
Ecom A lightweight connection framework. Javadoc
Ecom-comm A serial connector library. Javadoc
Ecom-network Network interfaces management and IP configurations. Documentation and Javadoc
Ecom-wifi (Wi-Fi Configuration Agent) Wi-Fi connectivity manager. Documentation and Javadoc
Network Client and Server TCP/IP sockets. Documentation and Javadoc

 

  • Communication Libraries:
AWS IoT Core Client AWS IoT Core client, providing publish/subscribe functionalities. Documentation and Javadoc
HTTP Client OpenJDK HTTP client. Documentation and Javadoc
Hoka (HTTP Server) HOKA is a tiny extensible Java web server for embedded applications. Documentation and Javadoc
MQTT Client (MicroPaho) Tiny footprint MQTT 3.1.1 client based on Eclipse Paho Java APIs. Documentation and Javadoc
NTP Client Simple Network Time Protocol (SNTP) client, used to retrieve the current time from an NTP server. Documentation and Javadoc
REST Client (Resty) REpresentational State Tranfer (REST) client. Documentation and Javadoc
Websocket WebSocket client. Documentation and Javadoc

 

  • Security Libraries:
SSL/TLS Client and Server secure sockets layer using Transport Layer Security (TLS) protocols. Documentation and Javadoc
Security Cryptographic operations library. Javadoc

 

  • Device Management Libraries:
Device The Device Foundation Library provides access to the device information. This includes the architecture name and a unique identifier of the device for this architecture. Documentation and Javadoc
Event The Event Queue Foundation Library provides an asynchronous communication interface between the native world and the Managed world based on events. Documentation and Javadoc
HAL (Hardware Abstraction Layer) The Hardware Abstraction Layer (HAL) Foundation Library features API that target IO devices, such as GPIOs, analog to/from digital converters (ADC / DAC), etc. The API are very basic in order to be as similar as possible to the BSP drivers. Documentation and Javadoc
SP (Shielded Plug) The Shielded Plug (SP) library provides data segregation with a clear publish-subscribe API. The data-sharing between modules uses the concept of shared memory blocks, with introspection. Documentation and Javadoc
Trace A trace library used for code introspection. Javadoc
Time The library introduces different classes for date, time, date-time, and variations for offset and time zone. Documentation, Date Javadoc, Calendar Javadoc, and Timezone Javadoc.
Watchdog The WatchdogTimer Foundation Library provides a way to handle hardware watchdog timer. A watchdog is particularly useful if you want to monitor different items of your software system during the runtime. Documentation and Javadoc

 

  • Persistent Data Libraries:
File System The FS Foundation Library defines a low-level File System framework for embedded devices. It allows you to manage abstract files and directories without worrying about the native underlying File System kind. Documentation and Javadoc
Storage The storage library uses an identifier to store, retrieve or remove an entry. Javadoc

 

  • Multimedia Libraries:
Audio The Audio API Library provides APIs to record and play audio in an Application. Documentation and Javadoc

 

  • AI Libraries:
MicroAI The MicroAI Library provides APIs to interact with trained Machine Learning models, especially to run inferences. Documentation and Javadoc

 

  • Location Libraries:
GNSS/GPS GNNS stream data retriever. Javadoc

 

  • Serialization and Data Format Libraries:
CBOR CBOR Encoder and Decoder Library. Documentation and Javadoc
JSON (cacheless) JSON Writer and Reader Library. Javadoc
org.json.me (with cache) An org.json.me port. Manipulates JSON objects in Java. Documentation and Javadoc
Protobuf Protobuf Library. Javadoc
XML org.kxml2 port. Documentation and Javadoc

 
All libraries are available through MicroEJ Module Repositories and integrated to application projects.

MicroEJ Consolidated Javadoc

C and Legacy API for your Embedded Software Development

ABSTRACTION LAYERS

VEE Abstraction Layer

An Abstraction Layer is the code (C, asm, etc.) that implements a Foundation Library’s low-level APIs over a board support package (BSP) or a C library. Discover how to abstract your hardware and BSP code for your projects to flourish.

 

  • Bluetooth Abstraction Layer:
esp-idf MicroEJ Bluetooth Low Level API implementation over esp-idf APIs. Github
Zephyr API MicroEJ Bluetooth Low Level API implementation over ZephyrOS APIs. On demand

 

  • Core (and essentials) Abstraction Layer:
FreeRTOS MicroEJ Core Engine Abstraction Layer implementation for FreeRTOS. Github
Linux This project contains a complete Abstraction Layer implementation to run the VEE on a Linux system. Github
mbedOS MicroEJ Core Engine Abstraction Layer implementation for mbedOS. On demand
NuttX MicroEJ Core Engine Abstraction Layer implementation for NuttX. Github
ThreadX Low Level MicroEJ Core Engine API implementation over ThreadX. GitHub
uC-OS3 MicroEJ Core Engine Abstraction Layer implementation for uC-OS3. GitHub
Zephyr MicroEJ Core Engine Abstraction Layer implementation for Zephyr OS. GitHub
EventQueue over ThreadX Low Level MicroEJ Event Queue API implementation over ThreadX. Github
Time over FreeRTOS MicroEJ Time Abstraction Layer implementation for FreeRTOS. Github

 

  • FS Abstraction Layer:
FatFS MicroEJ FS Low Level API implementation over FatFS. Github
FileX MicroEJ FS Low Level API implementation over FileX. (The implementation is inside an S7G2DK VEE port package.) Download
Linux FS This project contains a complete Abstraction Layer implementation to run the VEE on a Linux system. Github
littlefs MicroEJ FS Low Level API implementation over FatFS. On demand
Zephyr API MicroEJ FS Low Level API implementation over Zephyr APIs. On demand

 

  • Kernel Abstraction Layer:
Flash MicroEJ Kernel Low Level API implementation to install features in an External Flash. Github
Linux RAM This project contains a complete Abstraction Layer implementation to run the VEE on a Linux system. Github
RAM LLKERNEL implementation with allocation in RAM. Github

 

  • NET Abstraction Layer:
Linux BSD API This project contains a complete Abstraction Layer implementation to run the VEE on a Linux system. Github
lwIP MicroEJ NET Low Level API implementation over lwIP. Github
NetX MicroEJ NET Low Level API implementation over NetX. (The implementation is inside an S7G2DK VEE port package.) Download

 

  • Security Abstraction Layer:
MbedTLS Low Level MicroEJ Security API implementation for MbedTLS. Github
Linux OpenSSL This project contains a complete Abstraction Layer implementation to run the VEE on a Linux system. Github
WolfCrypt/WolfSSL This component implements the Low Level API LLSEC needed by the MicroEJ Security foundation library to connect to a Board Support Package using the Woftcrypt/WolfSSL stack. Github

 

  • UI Abstraction Layer:
Raster Graphics GPU-Dave2D Low Level MicroEJ UI API implementation for the Dave/2D API. On demand
Raster Graphics GPU-DMA2D Low Level MicroEJ UI API implementation for the DMA-2D API. Github
Raster Graphics GPU-RGA Low Level MicroEJ UI API implementation for the RGA library. On demand
Raster and Vector Graphics GPU-VGLITE Low Level MicroEJ UI API implementation for the VGLite API. Github
Raster Graphics on Linux (FB or libDRM) Low Level MicroEJ UI API implementation for Linux either using the framebuffer directly or through libDRM. Github
Raster Graphics GPU-NEMAGFX Low Level MicroEJ UI API implementation for the NEMAGFX API. On demand
Vector Graphics GPU-NEMAVG Low Level MicroEJ UI API implementation for the NEMAVG API. On demand

 

  • Wi-Fi Abstraction Layer:
esp-idf Low Level MicroEJ Wi-Fi API implementation for esp-idf APIs. Github
Realtek AMEBA-D Kit Low Level MicroEJ Wi-Fi API implementation for Realtek Ameba-D APIs. Github

Get Started with MicroEJ software solutions

GET STARTED WITH MICROEJ

Get access to our featured starter kits (available with or without hardware) to let you try and evaluate our technology.

Happy coding!

Get Started