Java, compiled straight to the board
Juno is an ahead-of-time compiler for a checked subset of Java
`javac` stays the frontend. Juno closed-world-links your `main` method on the development machine and emits GNU ARM Cortex-M4 assembly plus a small C++ runtime shim directly — no JVM, no interpreter, no dynamic class loading on the Arduino UNO R4 WiFi or UNO Q.
No JVM on the board
`javac` → `.class` → Juno's closed-world linker → Cortex-M4 (Thumb-2) assembly plus an `extern "C"` runtime shim, assembled and linked by the board's own Arduino toolchain.
See the feature inventoryReal hardware intrinsics
GPIO, timing, Serial, the LED matrix, Wi-Fi/HTTP/JSON, SD card storage, email, USB mouse, and LCD/TFT shields — plain Java `native` methods lowered to shim calls at link time.
Browse the hardware API16 playable games
Pac-Man, Chess, Battleship, Blackjack, Texas Hold'em and more, running on an ELEGOO 2.8″ TFT touch shield — compiled ahead of time, not interpreted.
See the gamesTwo boards, one backend
The same Cortex-M4/Thumb-2 codegen targets the UNO R4 WiFi's Renesas RA4M1 and the UNO Q's Zephyr-hosted STM32U585.
Compare the boardsHow it works
Java source -> javac -> .class -> Juno linker/AOT -> .S + Shim.cpp + .ino -> Arduino toolchain -> RA4M1 (UNO R4 WiFi)
-> STM32U585 (UNO Q)
Juno is deliberately closed-world and minimal: no interpreter, no dynamic class loading, no general objects or arrays yet. See the feature inventory for exactly what's supported today, or jump into Getting Started to flash Blink in a few commands.