Boards

Juno compiles the same Java program for six boards through three backends: AVR for the 8-bit UNO R3 and UNO WiFi Rev2, Thumb-2 for the Arm Cortex-M UNO R4 WiFi and UNO Q, and Xtensa for the ESP32-S3 Nano ESP32 and M5Stack Cardputer. Pick the target with the entry point's @Board annotation or with -Djuno.board=<id>.

Hardware at a glance

Boards are ordered from the most capable to the smallest: by CPU (word size, then clock speed), then by memory.

Nano ESP32 M5Stack Cardputer UNO Q UNO R4 WiFi UNO WiFi Rev2 UNO R3
Microcontroller ESP32-S3 (NORA-W106) ESP32-S3 STM32U585 Renesas RA4M1 ATmega4809 ATmega328P
CPU Dual-core 32-bit Xtensa LX7 Dual-core 32-bit Xtensa LX7 32-bit Cortex-M33F 32-bit Cortex-M4F 8-bit megaAVR 8-bit AVR
Clock 240 MHz 240 MHz 160 MHz 48 MHz 16 MHz 16 MHz
Flash 16 MB 8 MB 2 MB 256 kB 48 kB 32 kB
SRAM 512 kB + 8 MB PSRAM 512 kB 786 kB 32 kB 6 kB 2 kB
Logic level 3.3 V 3.3 V 3.3 V 5 V 5 V 5 V
Radio Wi-Fi/BLE Wi-Fi/BLE Wi-Fi/BLE on the Linux side ESP32-S3 Wi-Fi/BLE NINA-W102 Wi-Fi/BLE None (WiFi Shield)
Extras Display, keyboard, speaker, battery 13×8 LED matrix, Linux MPU 12×8 LED matrix Secure element, IMU
Arduino core arduino:esp32 m5stack:esp32 arduino:zephyr arduino:renesas_uno arduino:megaavr arduino:avr
Juno board id arduino-nano-esp32 m5stack-cardputer arduino-uno-q arduino-uno-r4-wifi arduino-uno-r3-wifi-rev2 arduino-uno-r3

API support

✓ supported · — not available on this board

Juno API or feature Nano ESP32 M5Stack Cardputer UNO Q UNO R4 WiFi UNO WiFi Rev2 UNO R3
GPIO, delays, clock, Serial ✓ ✓ ✓ ✓ ✓ ✓
BigInteger, BigDecimal ✓ ✓ ✓ ✓ ✓ ✓
Double-precision Math functions ✓ ✓ ✓ ✓ — —
Threads, StructuredTaskScope, ScopedValue, locks ✓ ✓ ✓ ✓ ✓ —
Wi-Fi ✓ ✓ ✓ ✓ ✓ WiFi Shield
Wi-Fi access point ✓ ✓ ✓ ✓ ✓ —
HTTP client ✓ ✓ — ✓ ✓ WiFi Shield
HTTPS client ✓ ✓ ✓ ✓ ✓ —
HTTP server ✓ ✓ ✓ ✓ ✓ —
HTTPS server ✓ ✓ ✓ — — —
Email over TLS (Smtp.sendTls, Pop3Client) ✓ ✓ ✓ ✓ ✓ —
Email over STARTTLS (Smtp.send) ✓ — — ✓ — —
Bluetooth LE (LEGO Powered Up) ✓ ✓ ✓ ✓ — —
USB HID mouse ✓ ✓ — ✓ — —
Onboard LED matrix — — ✓ ✓ — —
@Watchdog ✓ ✓ — ✓ ✓ ✓
Cryptographic UUID.randomUUID() ✓ ✓ ✓ ✓ ✓ —
Display, keyboard, speaker, battery — ✓ — — — —

The compiler checks this table for you: a program that uses an API its target board does not support fails with a CompileException naming the board and the missing capability. Some cells are compiled support that has not yet been run on every physical board; each board's page notes what is confirmed on hardware.