A JavaScript OS for ESP32

An open-source GUI operating system and application platform that brings a graphical interface, JavaScript apps, and hardware APIs to ESP32.

Duktape

Native JS Engine

2.8" Touch

ILI9341 Double Buffer

Split SPI

VSPI & HSPI Collision-Free

1 Account

Unified Cloud Ecosystem

Hardware Compatibility

Supported Hardware & Microcontrollers

KryonOS is built directly on bare-metal ESP-IDF & FreeRTOS with modular display and touch HALs. Choose from verified off-the-shelf development boards or customize pin maps.

Explore All Boards (5)
ESP32 + ILI9341 2.8" (Touch)
Verified & Tested
ESP32 WROOM-32 / WROVER / Marauder

ESP32 + ILI9341 2.8" (Touch)

Display & TouchILI9341 2.8" SPI (240x320 Touch)
SpecsTensilica Dual-Core 240MHz, 520KB SRAM, Split VSPI/HSPI. Out-of-the-box ESP32 Marauder v4/v6/v6.1 compatible.
M5Stack Cardputer
Experimental
ESP32-S3 (Dual-Core LX7 240MHz)

M5Stack Cardputer

Display & TouchST7789 1.14" SPI Color LCD
SpecsBuilt-in 56-key keyboard, SPM1423 mic, NS4168 speaker, SD card slot, and 1400mAh LiPo battery.
Experimental

CYD (Cheap Yellow Display)

ESP32-2432S028R Dual-Core

Display & TouchILI9341 2.8" SPI + XPT2046 Touch
SpecsAll-in-one ESP32 + 2.8" TFT + Touch + MicroSD + RGB LED & LDR ambient sensor.
Experimental

LilyGO T-HMI

ESP32-S3 (Dual-Core LX7 + 8MB PSRAM)

Display & TouchST7789V 2.8" Touch Display
Specs16MB Flash, 8MB Octal PSRAM, Rotary encoder / Trackball interface, and onboard SD slot.

Want to port KryonOS to a custom ESP32 board?

Read our open-source BSP porting documentation or view the full hardware compatibility matrix.

Embedded JavaScript Runtime

Native ESP32 JavaScript Engine

Write and execute standalone JavaScript apps natively on ESP32 silicon. Powered by an optimized Duktape engine, the C++ kernel exposes direct bindings for touch, DMA sprites, GPIO, and FAT32 filesystems.

Duktape JS Engine

ES5/ES5.1 stack runtime compiled directly into firmware. Runs dynamic scripts from SD card with ~90KB free RAM heap.

App Store Ecosystem

Browse, download, and install standalone JavaScript apps and community games directly from the official App Store repository.

Unified FS Engine

Dynamic routing for MicroSD (/sd/) and internal flash (/local/) with hardware MD5 verification.

DMA Sprite Engine

Double-buffered graphics pipeline for 60 FPS tear-free rendering on ILI9341 2.8" TFT displays over 40MHz VSPI bus.

System API

Touch Controller & Event Loop

Poll the XPT2046 touch controller, read coordinate positions, and trigger C++ kernel garbage collection sweeps with System.delay().

app.js
KryonOS Native C++ Bindings
// Main Application Event Loop with Touch & Kernel GC
while (true) {
  var touch = System.getTouch();
  
  if (touch.touched) {
    System.print("Touch detected at X: " + touch.x + ", Y: " + touch.y);
    
    // Draw touch feedback dot on 240x320 screen
    System.fillCircle(touch.x, touch.y, 6, 0x07E0); // RGB565 Green
  }
  
  // Mandatory: triggers background GC and yields to OS scheduler
  System.delay(16); // ~60 FPS polling
}
Engine & Cloud Capabilities

Engineered for High-Performance Microcontrollers

From the Duktape JavaScript engine to cloud device management, KryonOS bridges embedded hardware and web development.

Duktape JavaScript Runtime

Execute interactive JavaScript scripts, games, and apps on the ESP32 without reflashing firmware. Edit on SD card or deploy dynamically.

Split SPI Bus Architecture

VSPI dedicated to ILI9341 2.8" Display and Touch controller, while HSPI handles high-speed SD Card operations, eliminating SPI bus collisions.

3D Wireframe & GUI Engine

Hardware-accelerated double-buffering with smooth 2D windows, touch events, widgets, and 3D wireframe math routines.

Seamless Device Pairing

Link your ESP32 in seconds using the pairing code displayed on your screen. Once paired, cloud services synchronize automatically.

Cloud AI Assistant

Ask questions, generate JavaScript routines, and process sensor data directly from your microcontroller.

KryonDrive Cloud Sync

Upload scripts and assets from the web dashboard. Devices fetch manifests and automatically keep local apps synchronized.

KryonMail Preview

Account email integration designed for notifications, alerts, and message preview on your LCD screen.

Unified KryonOS Account

One single account for managing all your paired devices, cloud storage files, and AI services.

Hardware & Architecture Blueprint

Engineered for ESP32 Dual-Core Silicon

A split dual-bus hardware architecture ensures zero display flicker, dedicated SD card throughput, and hardware-accelerated SHA-256 cloud handshakes.

Core 0: Duktape JS Engine

Event-loop runtime, dynamic script compilation, and graphics buffer

JS Memory Heap
64 KB PSRAM / SRAM
Rendering Pipeline
TFT_eSPI DMA
Touch Polling
50 Hz Interrupt

Core 1: Cloud & Cryptography

FreeRTOS daemon, TLS sockets, and hardware random number nonces

TRNG Hardware Nonce
esp_fill_random()
Crypto Acceleration
mbedTLS HW SHA-256
Auth Storage
Encrypted NVS Flash

Dual SPI Bus Isolation

Dedicated high-speed display bus & independent storage bus

VSPI (Display + Touch)
40 MHz Clock
HSPI (SD Card Drive)
20 MHz FAT32
Bus Contention
Zero Lockups

Standard Hardware Pinout Reference

Default GPIO assignments for standard 2.8" or 3.2" ILI9341 + XPT2046 shield

ESP32-WROOM-32 / WROVER
Peripheral ModuleMOSI / DINMISO / DOUTSCK / CLKChip Select (CS)DC / RSReset (RST)
ILI9341 Display (VSPI)GPIO 23GPIO 19GPIO 18GPIO 5GPIO 2GPIO 4
XPT2046 Touch ControllerGPIO 23GPIO 19GPIO 18GPIO 21N/AN/A
MicroSD Card Slot (HSPI)GPIO 13GPIO 12GPIO 14GPIO 15N/AN/A
ESP32 Marauder Hardware Compatibility: Out-of-the-box, the default display and touch pinouts in KryonOS perfectly match the ESP32 Marauder (v4, v6, and v6.1) hardware pin map!

Quick Flash via Command Line (esptool)

Flash the pre-compiled binary images directly to your ESP32 in seconds.

$ esptool.py --chip esp32 --port COM3 --baud 921600 write_flash -z 0x1000 bootloader.bin 0x8000 partitions.bin 0x10000 KryonOS-v3.0.0-esp32.bin
Baud rate 921600 for ultra-fast 12s flashing
Auto-initializes NVS partition & WiFi config
Full source available on GitHub repo
Stay In The Loop

Subscribe to KryonOS Updates

Get direct alerts for new firmware releases, verified hardware pinouts, and JavaScript API additions.

Firmware releases & OTA updatesJavaScript API additionsNo disposable emails • Zero spam
Community & Hardware Fund

Support KryonOS

Help the KryonOS team purchase new development boards and hardware for testing, development, and expanding support for more devices.

Hardware Acquisition

Purchasing new ESP32-S3, ESP32-C6, M5Stack, LilyGO, CYD, and e-ink/OLED evaluation boards for direct physical testing.

Driver & HAL Development

Writing, optimizing, and porting low-level C++ display drivers (ST7789, GC9A01, ILI9342) and capacitive touch controllers.

100% Free & Open Source

Keeping the entire firmware, JavaScript engine, and documentation freely available for the community under GPLv3.

Got Questions?

Frequently Asked Questions

Everything you need to know about the KryonOS native JavaScript engine, hardware pinouts, and cloud ecosystem.

KryonOS executes native JavaScript directly on the ESP32. It includes an embedded 3D/2D graphical touch window manager and instant outbound cloud pairing.

Still have questions? Check out our Comprehensive Documentation or join the discussion on GitHub Discussions.