FlintESPJVM brings the power of Java to ESP32 devices by implementing FlintJVM on the ESP-IDF framework. This allows you to run and debug Java programs directly on the ESP32 hardware.
- Supports most Java bytecode instructions.
- Supports debugging with FlintJVM Debug VS Code extension via serial port.
FlintESPJVM is compatible with a variety of ESP32 boards, including:
- Generic ESP32 Boards.
- ESP32-C3FH4.
- ESP32-C6FH4.
- ESP32-C6FH8.
- ESP32-S2FN4R2.
- ESP32-S3FH4R2.
- ESP32-S3N4RX.
- ESP32-S3N8RX.
- ESP32-S3N16RX.
To get FlintESPJVM up and running on your board:
- Quick Flash: Use the ESP Web Tool for an easy, browser-based flashing experience.
- Manual Build: Prefer building it yourself? Utilize the ESP-IDF framework to compile and flash the project manually.
To develop Java applications for FlintESPJVM:
- Project Setup: Use the FlintJDK module to access core Java libraries compatible with FlintJVM.
- Debugging: Install the FlintJVM Debug extension in VS Code.
Refer to the FlintExample project, which provides a simple and clear template to help you get started with building Java apps for FlintJVM.
- This project requires ESP-IDF v5.5.0 or later to build.
- Run the following command to clone this repository and include all dependent submodules:
> git clone --recurse-submodules https://github.com/FlintVN/FlintESPJVM.gitBelow are the performance benchmarks of several different programming languages on the ESP32, focusing on.
-
Execution time of 10 million iterations using
forandwhileloops. -
Maximum toggling frequency of GPIO when driven by the CPU.
Platform forloop (10M)whileloop (10M)GPIO toggle frequency C/IDF v5.5.0 375 ms 375 ms 2.2 MHz Java/FlintESPJVM v0.0.11 9254 ms 9254 ms 295 KHz MicroPython v1.26.0 43677 ms 79582 ms 107 KHz C#/NanoFramework v1.12.4 77656 ms 77660 ms 2.4 KHz
The source code of this test can be viewed at ESP32-Perfomance.
Elevate your ESP32 projects by harnessing the robustness of Java with FlintESPJVM.
