KryonOS v2.0.0 marks a monumental milestone in the evolution of our open-source microcontroller operating system. This major release introduces multi-board hardware abstraction with official ESP32-S3 flagship support, full wireless Over-The-Air (OTA) updates, native KryonCloud integration with mesh messaging and cloud backups, a 3D hardware-accelerated graphics pipeline, an embedded Express-like web server, and an extensive suite of new JavaScript hardware APIs.
What's New in v2.0.0
1. Multi-Board Hardware Abstraction Layer (HAL)
Expanded device compatibility beyond the initial prototype with modular hardware profiles, independent display bus drivers, and dedicated pin mappings located under src/Hal/Boards/.
-
ESP32-S3 DevKitC-1 N16R8 (
esp32-s3-devkitc-1-n16r8) [Tested & Verified]:- Official tier-one flagship reference target.
- Configured for 16MB Flash with dual-slot OTA partitions.
- 8MB Octal PSRAM (
qio_opi) enabled for high-resolution graphics and expanded JavaScript heap headroom. - Native USB-CDC serial console and hardware JTAG debugging support (
ARDUINO_USB_CDC_ON_BOOT=1).
-
M5Stack Cardputer v1.1 (
m5stack-cardputer) [EXPERIMENTAL]:- 56-Key physical matrix keyboard driver scanning via 74HC138 demultiplexer with complete Shift and Fn modifier layer decoding.
- ST7789V2 SPI 240x135 landscape display driver integration.
- ADC-based battery voltage and charge percentage telemetry.
- Custom 8MB dual-OTA partition scheme (
partitions_cardputer.csv).
-
LilyGO T-HMI (
lilygo-t-hmi) [EXPERIMENTAL]:- High-speed 8-bit parallel ST7789 display bus driver with hardware BGR color correction.
- Integrated XPT2046 resistive touch controller with calibration routines.
- 1-bit high-speed SD_MMC storage mount.
- Onboard battery voltage telemetry.
-
ESP32-CYD-28 / Cheap Yellow Display (
esp32-cyd-28) [EXPERIMENTAL]:- ILI9341 SPI display driver with dedicated touch SPI bus.
- Built-in RGB notification LED and onboard LDR light sensor support.
-
Modular Build Architecture: Board environments are decoupled into dedicated
.inifiles undersrc/Hal/Boards/board_configs/(cardputer.ini,cyd.ini,t_hmi.ini) and imported automatically intoplatformio.iniusingextra_configs.
Note on Experimental Boards: Target boards marked as [EXPERIMENTAL] are implemented at the driver and HAL level but currently lack hands-on verification due to unavailable test hardware. The ESP32-S3 DevKitC-1 N16R8 remains the sole fully verified, physical bench-tested device. If you find any issue in the experimental boards once you have flashed them, please submit an issue on our GitHub repository. Community members with these experimental boards are strongly encouraged to test builds and submit calibration feedback.
2. Smart Wireless Over-The-Air (OTA) Updates
Devices with large flash memory (8MB+) can now update KryonOS completely over Wi-Fi without needing a USB cable.
- Full Wireless OTA Support: Enabled for ESP32-S3 DevKitC-1 (16MB) and M5Stack Cardputer (8MB).
- Model-Aware Resolution: Devices automatically fetch the exact update binary compiled specifically for their board target.
-
Anti-Brick Safety: Enabled bootloader anti-rollback (
CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE=1) that automatically restores the previous working version if a newly flashed build fails to boot. - Notice for 4MB Flash Boards: Smaller boards (such as the CYD and standard DOIT DevKit V1) safely fall back to guided USB flashing to accommodate partition constraints.
3. KryonCloud Platform & Account Integration
A full native C++ system application located under the launcher item [ SYSTEM ] apps.
- Fresh Server Synchronization: Automatically pings the cloud server for live account quotas and the KryonBeam inbox every time the app opens.
-
Standardized 5-Tab Navigation Layout:
-
Overview: Account profile, hardware handle (
@handle), active Wi-Fi status, quick summary telemetry cards, and unpair button. -
KryonAI Studio: Interactive on-device AI workspace with on-screen touch keyboard (
MyKeyboard), real-time Server-Sent Events (SSE) streaming, and strictly bounded word-wrapping to prevent screen edge overflow. -
KryonBeam: Hardware-to-hardware mesh messaging featuring inbox threads, detail view modal, on-screen keyboard composer, recipient handle/broadcast selector (
*), message composer, queue purge acknowledgment, and public group support. -
Cloud Storage & Backup: Dual-scope file browser for
/cloud/sharedand/cloud/devicewith SHA-256 verified downloading and background chunked uploading. Includes a full device backup and restore feature, accessible both from the device and via the Kryon Account web dashboard. - Usage & Quotas Dashboard: Dedicated telemetry screen with daily AI request progress bars, cloud storage allocation bars, a 00:00 UTC quota reset countdown, and verified node health badges.
-
Overview: Account profile, hardware handle (
4. New JavaScript Runtime Engines & APIs
-
Cloud AI Engine (
Kryon.ai/System.ai/AI):-
Kryon.ai.stream(options): Real-time SSE token-by-token streaming directly into UI components without RAM exhaustion. -
Kryon.ai.ask(prompt, options, callback): One-shot LLM reasoning query with usage statistics and error handling. -
Kryon.ai.extract(options, callback): Schema-constrained structured JSON extraction from messy logs and sensor feeds. -
Kryon.ai.vision(options, callback): Computer vision analysis of screen buffer snapshots or camera images. -
Kryon.ai.status(): Real-time connectivity and daily credit quota monitoring.
-
-
FastMath Hardware Acceleration Engine (
FastMath/System.math):- Direct hardware single-precision Floating Point Unit (FPU) math:
FastMath.sin(),cos(),tan(),asin(),acos(),atan2(),sqrt(),hypot(). - 360° Trigonometric LUT: Pre-computed
FastMath.fastSin()andfastCos()for 60FPS animation loops. - Hardware True Random Number Generator (TRNG):
FastMath.random()andrandomRange()powered by silicon RF noise (esp_random()). - 3D Graphics & Matrix Batch Processing (300%–800% FPS boost): Native C++ 4x4 matrix multiplications (
mat4Multiply), Euler rotations (mat4Rotate), perspective projection (mat4Perspective), and bulk vertex projection (transformVertices). - Vector & Array DSP Utilities:
vec2Distance,vec3Distance,dot2,dot3,cross3,normalize2,normalize3,arraySum,arrayMinMax, andarrayDot. - Constants:
PI,HALF_PI,TWO_PI,DEG_TO_RAD,RAD_TO_DEG.
- Direct hardware single-precision Floating Point Unit (FPU) math:
-
Kryon3D Hardware-Accelerated 3D Engine (
Kryon3D/System.graphics3d):- Flicker-free double-buffering: Off-screen frame buffer management in PSRAM/SRAM with single-burst DMA SPI flush (
begin,clear,render/flush,end). - Unified 2D + 3D Composite Rendering: All standard 2D graphics methods (
fillRect,drawString,drawLine,drawRoundRect,fillCircle,drawPixel) layer directly onto the active 3D double buffer for game HUDs, weapons, and minimaps. - 3D Camera, Viewport, Projection & Lighting: Configurable viewport sub-rects (
setViewport), camera eye/target, FOV, and directional light shading (setCamera,setLight,setFog). - Hardware 3D Primitives:
drawLine,drawTriangle,fillTriangle(with automatic backface culling and flat directional shading),drawCube, anddrawBillboard. - Batch 3D Mesh Rendering: Native
drawMeshcapable of transforming, culling, shading, and rasterizing entire polygon models in a single C++ call.
- Flicker-free double-buffering: Off-screen frame buffer management in PSRAM/SRAM with single-burst DMA SPI flush (
-
Networking & REST API Engine (
Network):- Full REST API methods:
Network.get(),post(),put(),delete(), and unifiedrequest(). - Configurable timeouts and FreeRTOS watchdog-safe non-blocking event pumping.
- Streaming file downloads with live progress callbacks (
Network.downloadFile()) directly to storage in 1024-byte chunks. - Network telemetry:
isConnected(),hasInternet(),getIP(),getSSID(),getRSSI(), andshowWiFiPrompt(). - Safe offline error handling without thread freezing.
- Full REST API methods:
-
WebSocket Client Engine (
WebSocket):- W3C-standard WebSocket client:
onopen,onmessage,onerror,onclose,send(),close(). - Native FreeRTOS 20-second ping/pong keep-alive heartbeat to prevent home router NAT dropouts.
- W3C-standard WebSocket client:
-
Smart Multi-Network Wi-Fi Manager:
- Multi-credential JSON database (
known_networks.json) with automated migration from legacywifi.txt. - Two-phase sequential evaluation: sorts in-range APs by signal strength (RSSI) and performs post-association HTTP 204 WAN checks.
- Background auto-reconnect on connection dropout and on-boot smart association.
- Upgraded Settings Wi-Fi UI with live connection cards, animated network scanner, and Saved Networks management screen.
- Multi-credential JSON database (
-
Embedded Web Server Engine (
HttpServer):- Express.js-style embedded HTTP server:
listen(),stop(),isRunning(),getPort(),getURL(),getStats(),poll(),reset(). - Routing & middleware:
on(),get(),post(),put(),delete(),patch(),options(),use(),notFound(), and dynamic parameters (/user/:id,/files/*). - Express-like request and response objects (
req.query,req.params,req.body,res.status(),res.json(),res.html(),res.sendFile(),res.cors()). - Chunked static file streaming (
serveStatic) from LittleFS/SD with MIME detection and TWDT watchdog protection. - Embedded security: 16 KB body payload limit (HTTP 413), path traversal protection, and 500 ms header timeout protection against Slowloris freezes.
- Express.js-style embedded HTTP server:
-
Hardware-Accelerated PWM Engine (
PWM/System.pwm):- Bound directly to the ESP32/S3 LEDC hardware peripheral (8 channels on S3, 16 on standard ESP32).
- APIs:
setup(),write(),setDuty(),setFrequency(),setTone(),stopTone(),setServo(),detach(),getChannel(),reset(). - Non-blocking tone synthesis with automatic timed expiration.
- 50 Hz 14-bit microsecond pulse width precision for RC servo positioning.
-
Hardware TwoWire I2C Master Engine (
I2C/System.i2c):- Complete hardware master peripheral control:
begin(),end(),scan(),ping(),readReg(),writeReg(),readReg16(),writeReg16(),readRegBytes(),write(),read(),reset(). - Automatic 50ms bus timeout protection preventing FreeRTOS watchdog freezes if slaves disconnect.
- Repeated-Start (
Wire.endTransmission(false)) for atomic register access on sensors (MPU6050, BMP280, ADS1115). - 9-clock cycle bus recovery sequence on
I2C.reset()to release unacknowledged lockups from wedged slave devices. - Automatic 32-byte chunking for large buffer transmissions (OLED displays, DACs).
- Complete hardware master peripheral control:
-
Hardware Cryptographic Acceleration Engine (
Crypto/System.crypto):- Direct silicon hardware-accelerated SHA-256 (
Crypto.sha256()) and SHA-512 (Crypto.sha512()) computation. - Hardware-assisted HMAC-SHA256 (
Crypto.hmacSha256()) for API tokens, AWS signature v4, and JWT verification. - Hardware AES-128 / AES-256 symmetric cipher blocks (
Crypto.aesEncrypt(),Crypto.aesDecrypt()) with PKCS#7 block alignment and padding validation. - Cryptographically secure random bytes generator (
Crypto.randomBytes()) sampled directly from silicon RF noise.
- Direct silicon hardware-accelerated SHA-256 (
-
Floating System Notifications (
System.notify/Notification):- Non-blocking, fixed-size ring buffer queue in RAM (4 items max) preventing memory fragmentation.
- Smooth cubic easing animation state machine (
SLIDE_IN→DISPLAYING→SLIDE_OUTover Y: −45 → +10). - Compositor overlay hook rendering glass card pill banners with typed status badges (info, warning, error, success) and optional PWM audio chimes.
- Management APIs:
System.notify(),System.notify.dismiss(),System.notify.clearAll().
-
Inter-App Communication & Intent Dispatcher (
System.ipc/IPC):- Contextual application launching with JSON startup argument passing (
System.ipc.launch(),System.ipc.getLaunchArgs()). - File extension association mapping (e.g.,
fileAssociations: [".bmp", ".txt"]) with automatic handler resolution (System.ipc.openFile()). - Companion launch access controls and runtime mailbox system for inter-process messaging (
System.ipc.send(),System.ipc.onMessage()).
- Contextual application launching with JSON startup argument passing (
For detailed architectural tutorials, memory management recommendations, and complete code samples, consult Documentation/Kryon3D_Engine_Guide.md and Documentation/JS_API_Guide.md.
5. Async Web Manager & Storage Dashboard Redesign
-
Zero-Storage Web File Manager: Embedded high-performance web manager served directly from flash
PROGMEM, requiring 0 bytes on LittleFS/SD. - Modern UI: 100% inline embedded Lucide/Tabler SVG vector icons for drives, files, folders, and operations.
-
Live System Telemetry: Real-time
/api/storageendpoint reporting LittleFS total/used/free, SD mount status, dynamic SoC chip model, free RAM, and conditional PSRAM stats. - In-Browser Code Editor: VS Code-style editor with synchronized line numbering gutter, Tab indentation, Ctrl+S save shortcut, cursor telemetry (Ln X, Col Y), and language syntax identification.
- Themes & GitHub Integration: Multi-theme selector (VS Code Dark, Cyber Blue, Clean Light) with localStorage persistence, alongside direct browser-to-GitHub live telemetry for stargazers and forks.
-
Settings "About Device" Card: Live GitHub stargazers counter with an offline 5-tier rounding cache (
/local/system/stars_cache.json) for instantaneous loading without network latency.
Changes & Improvements
-
FileSystem Path Resolution: Refactored
FileSystem::getTargetFSto use non-static string references and uniform trailing slash normalization across all file, directory, and storage calls. -
Documentation Suite: Updated
Documentation/JS_API_Guide.mdwith comprehensive API specifications for FastMath (Section 6) and Kryon3D (Section 7), and introduced a dedicated game development guide inDocumentation/Kryon3D_Engine_Guide.md.
Flashing Instructions
Connect your ESP32 / ESP32-S3 board to your computer via USB and flash using esptool.py or the official Espressif Flash Download Tool.
Flashing ESP32-S3 Targets (ESP32-S3 DevKitC-1, Cardputer, T-HMI)
Note: On ESP32-S3, the bootloader starts at offset 0x0000. Adjust --port COM3 to match your system's serial port:
esptool.py --chip esp32s3 --port COM3 --baud 921600 write_flash -z \ 0x0000 bootloader-s3.bin \ 0x8000 partitions-s3-16mb.bin \ 0x10000 KryonOS-v2.0.0-esp32-s3-devkitc-1-n16r8.bin
Flashing Standard ESP32 Targets (DevKit V1, ESP32-CYD-28)
Note: On classic ESP32, the bootloader starts at offset 0x1000:
esptool.py --chip esp32 --port COM3 --baud 921600 write_flash -z \ 0x1000 bootloader.bin \ 0x8000 partitions.bin \ 0x10000 KryonOS-v2.0.0-esp32doit-devkit-v1.bin
Hardware Requirements
Primary Setup (Recommended)
- ESP32-S3 DevKitC-1 (N16R8 variant: 16MB Flash, 8MB Octal PSRAM)
- ILI9341 2.8 Inch TFT Touch Display Module
- MicroSD Card Module SPI or SD_MMC (Optional)
Wiring Guide: For complete ESP32-S3 DevKitC-1 (N16R8) Display & MicroSD module pinout connections, refer to the Hardware Connection & Pinout Documentation.
Supported All-in-One Targets
- M5Stack Cardputer v1.1 (Integrated ESP32-S3, ST7789 display, matrix keyboard, battery)
- LilyGO T-HMI (Integrated ESP32-S3, 8-bit parallel ST7789, resistive touch, battery)
- ESP32-2432S028R / Cheap Yellow Display (Integrated ESP32, ILI9341 display, XPT2046 touch, RGB LED, LDR)
Star the Project
If you enjoy using KryonOS or find this release exciting, please consider giving our repository a Star on GitHub! Every star helps boost visibility, attract contributors, and grow the embedded JavaScript ecosystem.
Support Hardware Acquisition & Testing
Expanding native device support requires physical testing on real hardware. Due to budget constraints, experimental board ports (Cardputer, T-HMI, CYD) cannot yet be bench-tested in person.
If you would like to help us acquire these development boards, display modules, and test fixtures so they can become fully verified reference targets, please consider supporting the project:
Top comments (0)