Skip to content
Nicola Sabaini

Projects

NucleoOS-P4

The same idea on serious hardware: ESP32-P4, a seven-inch touchscreen, an LVGL launcher, native and WASM apps, offline speech synthesis in five languages.

Kind
System
Status
In development
SoC
ESP32-P4 + C6
Display
7" 1024×600
Stack
C++23 · LVGL 9
Apps
Native · WASM
The LVGL launcher of NucleoOS-P4 on the seven-inch panel: app grid, dock and system bar

Same family as NucleoOS, hardware from another bracket: a seven-inch Guition panel, 1024×600 with capacitive touch, driven by an ESP32-P4 alongside an ESP32-C6 acting as co-processor for Wi-Fi 6 and BLE.

With more memory and more screen the face of the system changes. In place of the browser shell there is an LVGL launcher drawing straight to the panel: adaptive grid, folders, dock, search, wallpaper.

Native apps and loaded apps

Native apps are compiled into the firmware. WASM apps are not: they come off the SD card into a WAMR runtime with a declared graphics ABI.

The difference is not academic. Adding a game to a monolithic firmware means recompiling and reflashing, and holding two copies of everything in memory during the update, and memory is exactly what these chips lack. With WASM you copy the app to the SD card and you are done.

What is inside

JPEG decoding is hardware and scaling goes through the PPA, so the gallery scrolls instead of struggling. The video player does MJPEG and MPEG-1 with the same acceleration. Music covers WAV, MP3, AAC and FLAC, plays in the background and can hot-plug out to USB audio. There are a camera, a voice recorder, a file manager, a system monitor, notes, a calculator.

Speech synthesis is offline, Italian and English, on the device. The interface is translated into five languages with live switching.

And as on the other one there is a web companion: over Wi-Fi the board serves a desktop-like PWA with around thirty windowed applications talking to the device through a small REST API. Updates arrive over the air, no cable.

Free for noncommercial use; commercial use requires a licence.