WebAssembly Runtime for Microcontrollers
Every app is a sandboxed .wasm module. Deploy over-the-air. No firmware flash required.
Quick Start · Architecture · AkiraSDK · Hardware · Docs
What is AkiraOS?
AkiraOS is a Zephyr-based embedded OS that runs sandboxed WebAssembly applications on microcontrollers.
The core idea: separate the OS from the application. The firmware stays stable. Apps are .wasm binaries — isolated, portable, and deployable over-the-air without touching the OS.
Your App (C/C++/Python) → compile → app.wasm → SecureDeploy → runs on device
OS unchanged
Why this matters:
- Update apps in the field without a firmware flash cycle
- One binary runs on ESP32-S3, nRF5x, or STM32 — no recompile
- Bad app crashes? Runtime catches it at the boundary. Device stays up.
- Every app gets only the hardware access it explicitly requested
Architecture
┌─────────────────────────────────────────────────────┐
│ USER SPACE — WASM Apps │
│ [app1.wasm] [app2.wasm] [your_app.wasm] │
│ 50KB–200KB per app · max 8 installed · 2 running │
└──────────────────────┬──────────────────────────────┘
│ capability-checked calls
┌──────────────────────▼──────────────────────────────┐
│ AKIRAZ RUNTIME │
│ App Manager · Capability Guard · Native Bridge │
│ UI Framework (32 widgets) · Shell · 18 API modules │
│ WAMR: interpreter (1x) or AOT (10–50x perf) │
└──────────┬──────────────────────┬───────────────────┘
│ │
┌──────────▼──────────┐ ┌───────▼───────────────────┐
│ CONNECTIVITY │ │ ZEPHYR RTOS │
│ HTTP · OTA │ │ Scheduler · Network Stack │
│ BLE · AkiraMesh │ │ Drivers · LittleFS │
└─────────────────────┘ └────────────────────────────┘
Capability Guard — every native API call goes through an inline permission check (~60ns overhead). Apps declare required capabilities in a manifest. No capability = no access. Period.
{
"name": "my_sensor_app",
"capabilities": ["gpio.read", "display.write", "sensor.read"]
}Full architecture docs → docs.akiraos.dev/architecture
Quick Start
No hardware? No problem. AkiraOS runs on
native_sim— test everything on your Linux host first.
Prerequisites
- Linux or WSL2 (Ubuntu 20.04+)
- Python 3.8+
west—pip install west
1 — Clone
mkdir akira-workspace && cd akira-workspace git clone --recurse-submodules https://github.com/ArturR0k3r/AkiraOS.git cd AkiraOS west init -l . && cd .. && west update
2 — Install Zephyr SDK
cd ~ wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.17.4/zephyr-sdk-0.17.4_linux-x86_64.tar.xz tar xvf zephyr-sdk-0.17.4_linux-x86_64.tar.xz cd zephyr-sdk-0.17.4 && ./setup.sh
3 — Build and run
cd akira-workspace/AkiraOS # Run on your host — no hardware needed ./build.sh # Build and flash to ESP32-S3 cd .. && west blobs fetch hal_espressif && cd AkiraOS ./build.sh -b esp32s3_devkitm_esp32s3_procpu -r a west espmonitor
Full setup guide → QUICKSTART.md
WASM App Development
Install the AkiraSDK toolchain (clang/wasi-sdk used as a cross-compiler only — AkiraOS apps target the AkiraZ native API, not a WASI runtime), then:
# Build your first app cd AkiraSDK/wasm_apps/hello_world ../../build_wasm_app.sh -o hello_world.wasm main.c # Deploy to a running device over WiFi — no reflash needed curl -X POST -F "file=@hello_world.wasm" http://<device-ip>/upload
Example apps in AkiraSDK/wasm_apps/:
| App | Description |
|---|---|
hello_world |
Minimal starter |
sensor_demo |
Read hardware sensors |
display_graphics |
Graphics rendering |
gui_demo |
Full UI with 32 widget types |
hid_keyboard_demo |
USB HID input |
blink_led |
GPIO control |
logic_analyzer |
Data capture |
Native API Modules (18 total): BLE · Display · GPIO · HID · I2C · IPC · Lifecycle · Memory · Net · Power · PWM · RF · Sensor · Storage · Timer · UART · and more.
Full API reference → docs.akiraos.dev/api-reference
Supported Hardware
| Platform | Status | Architecture | Tier | Notes |
|---|---|---|---|---|
| AkiraConsole | ✅ Supported | Xtensa LX7 | Tier 1 | ESP32-S3 · Custom HW |
| ESP32 | ✅ Supported | Xtensa LX7 / RISC-V | Tier 1 | -S3 (LX7) · -H2 · -C6 (RISC-V) |
| native_sim | ✅ Supported | Host (x86_64) | Tier 1 | Fast iteration, no hardware needed |
| nRF54L15 | ✅ Supported | ARM Cortex-M33 | Tier 2 | BLE 5.4 · Nordic |
| STM32 | ✅ Supported | ARM Cortex-M | Tier 2 | B-U585I-IOT02A · STEVAL-STWINBX1 · H753 · H723 |
Recommended: ESP32-S3 DevKitM — or AkiraConsole V3 (coming to CrowdSupply).
AkiraConsole
The reference hardware platform for AkiraOS.
V3 - OSHWA Certified — UID: MD000003
Rev A.2: CrowdSupply campaign coming soon.
→ ESP32-S3 dual-core 240MHz · 8MB PSRAM → TFT display · ~33 FPS in AkiraOS → 8 tactile buttons · Dial → CC1121 sub-GHz radio · LR2021 LoRa → MicroSD · USB-C · Expansion headers
What's in v1.5.x
125 commits · 350 files · ~40,600 lines of changes
- WAMR Runtime replaces legacy OCRE engine
- Capability Guard security model — per-app permission enforcement
- Full WASM Peripheral API — GPIO, Display, BLE, HID, Sensors, Storage
- AkiraSDK as independent git submodule
- AkiraConsole board bringup complete
Build System
./build.sh -b esp32s3_devkitm_esp32s3_procpu # ESP32-S3 ./build.sh -b esp32_devkitc_procpu # ESP32 ./build.sh -b esp32c3_devkitm # ESP32-C3 ./build.sh -b native_sim # Simulation ./build.sh -b esp32s3_devkitm_esp32s3_procpu -r all # Clean rebuild
Key config files: prj.conf · boards/*.conf · boards/*.overlay · west.yml
Security Model
- WASM Sandboxing — no direct memory access to kernel space, stack/heap isolated per app
- Capability Guard — inline checks on every native API call, manifest-declared permissions
- Secure Boot — MCUboot validates firmware signature, WAMR validates module checksum
- OTA Security — SHA-256 integrity, atomic updates, rollback on failure
Contributing
git checkout -b feature/your-feature ./build.sh # test on native_sim first ./build.sh -b esp32s3_devkitm_esp32s3_procpu -r a # then on hardware
See CONTRIBUTING.md · Code style: Zephyr C · Commits: conventional format
Links
| 📖 Docs | docs.akiraos.dev |
| 🖥️ Hardware | akiraos.dev/akiraconsole |
| 🏷️ OSHWA | certification.oshwa.org/md000003.html |
| 💬 Discussions | GitHub Discussions |
| 📢 Telegram | @theguywithpen |
| 🛒 CrowdSupply | Coming soon — akiraos.dev/akiraconsole |
Acknowledgments
Zephyr Project · Bytecode Alliance / WAMR · Espressif Systems · Nordic Semiconductor · MCUboot
