A modern, RAM-frugal, AI-native operating system for the Guition JC1060P420C_I (ESP32-P4 + ESP32-C6, 7" 1024×600 MIPI-DSI touchscreen) — LVGL UI, native + WASM apps, Wi-Fi OTA.
Part of the NucleoOS family; this is the P4 edition (the Cardputer build lives in its own repo).
Free for noncommercial use · commercial use requires a paid license → niki070585@gmail.com
| Launcher | System Monitor | App Store |
|---|---|---|
![]() |
![]() |
![]() |
Live captures from the device (1024×600).
-
🌍 5 languages — Italian, English, Spanish, French, German (full UI localization, live switch)
-
🔊 Offline voice synthesis — on-device TTS in Italian & English, no cloud
-
🌐 Web OS companion — a full desktop-like PWA served over Wi-Fi from the board
-
🎬 Video player — MJPEG (.avi) and MPEG-1 (.mpg), HW-accelerated (JPEG decode + PPA)
-
🖼️ Photo gallery — hardware JPEG decode + PPA scaling, SD-cached thumbnails
-
🎮 WASM app store — sandboxed games & tools loaded from SD (ABI v2 gfx surface)
-
📷 Camera — photo + MJPEG video capture (.avi)
-
🎵 Music player — WAV/MP3/AAC/FLAC, background playback, USB-audio output
-
🎙️ Voice recorder · 🗂️ Files · 🧮 Calculator · 📝 Notes · 🖥️ System Monitor
-
📡 Wi-Fi OTA — the board self-updates over the air
-
Full design / roadmap:
PLAN.md -
Game platform:
GAMEDEV.md -
Stack: ESP-IDF v5.5.2 · C++23 · LVGL 9 · FreeRTOS · WAMR (WASM)
-
AI persona: Anima (on-device assistant)
The board also serves a full desktop-like PWA over Wi-Fi — open its IP in any browser and you get a windowed OS with ~35 apps (files, spreadsheet, calculator, media, terminal, system monitor, and more), all talking to the device over a small REST API.
| Desktop (in a browser) | Windowed apps |
|---|---|
![]() |
![]() |
- SoC: ESP32-P4 (+ ESP32-C6 co-processor for Wi-Fi 6 / BLE via
esp_hosted) - Display: JD9165 7" 1024×600, GT911 capacitive touch
- Audio: ES8311 codec (I²S) + on-board mic; hot-plug USB-audio (UAC) output
- Storage: microSD (FATFS)
- LVGL launcher — adaptive grid, folders, wallpaper, smart dock, search
- Native apps — Settings, Files, Camera (MJPEG), Gallery (HW-JPEG), Music, Video (MJPEG/MPEG-1), Voice Recorder, System Monitor, Anima assistant, web companion
- WASM runtime (WAMR) — sandboxed games/tools via the ABI v2 gfx surface; C SDK in
sdk/ - OS services — Wi-Fi, clock (RTC + SNTP), NVS config/backup, offline TTS voice, gestures, notifications, i18n (it/en/es/fr/de)
- Wi-Fi OTA — dual-OTA partitions, manifest-driven auto-update
Requires ESP-IDF v5.5.2.
# one-time per shell (adjust to your ESP-IDF install)
$env:IDF_TOOLS_PATH='D:\esp\tools'; . 'D:\esp\esp-idf-v5.5.2\export.ps1'
idf.py set-target esp32p4
idf.py build
idf.py -p COM5 flash monitor # flash + serial (device on COM5)sdkconfig is generated from sdkconfig.defaults* (kept in-tree); component-manager
dependencies are pinned by dependencies.lock.
| Path | What |
|---|---|
main/ |
boot entry (app_main.cpp) |
components/nv_* |
OS subsystems — hal, ui, kernel, apps, wasm, media, tts, anima, web, … |
apps/ |
WASM app sources (compiled to app.wasm) |
sdk/ |
WASM app C SDK (nucleo_sdk.h) |
sd/web |
web OS companion (PWA served over Wi-Fi) |
system/icons |
UI icon sources (build consumes the generated components/nv_ui/generated/nv_icons.c) |
tools/ |
asset/voice/icon generators, OTA + sync scripts |
system/icons/mdiandsystem/icons/flat-colorare third-party icon repos (own git history), not tracked here — re-clone them only if you need to regeneratenv_icons.c.
Never flash / OTA / sd-sync without an explicit request.
PRs welcome — see CONTRIBUTING.md (includes a short contributor agreement so
the project can stay dual-licensed). Third-party components and their licenses are listed in
THIRD_PARTY.md.
PolyForm Noncommercial License 1.0.0 — free for any noncommercial use (personal, study, research, hobby, non-profit, education, government).
Commercial or production use requires a paid commercial license — see
COMMERCIAL.md. Want to ship NucleoOS P4 in a product? Get in touch:
niki070585@gmail.com.
© 2026 indecenti. All rights reserved.






