Skip to content

FlintESPJVM brings the power of Java to ESP32. Allows you to run and debug Java programs directly on the ESP32 hardware

License

Notifications You must be signed in to change notification settings

FlintVN/FlintESPJVM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

262 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FlintESPJVM

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.

demo

Key Features

  • Supports most Java bytecode instructions.
  • Supports debugging with FlintJVM Debug VS Code extension via serial port.

How to use

1. Supported Boards

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.

2. Flashing the Firmware

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.

3. Building Java Projects for FlintESPJVM

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.

4. Dependencies and Cloning

  • 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.git

Benchmark

Below are the performance benchmarks of several different programming languages on the ESP32, focusing on.

  • Execution time of 10 million iterations using for and while loops.

  • Maximum toggling frequency of GPIO when driven by the CPU.

    Platform for loop (10M) while loop (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.

About

FlintESPJVM brings the power of Java to ESP32. Allows you to run and debug Java programs directly on the ESP32 hardware

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published