NucleoOS-P4
Un sistema operativo per un touchscreen da sette pollici con ESP32-P4: due desktop, uno Store con oltre 400 app, un assistente che lavora offline.
- Tipo
- Sistema
- Stato
- In sviluppo
- SoC
- ESP32-P4 + C6
- Schermo
- 7" 1024×600
- Stack
- C++23 · LVGL 9
- App
- Native · WASM · Lua
- Store
- Oltre 400 app firmate
Stessa famiglia di NucleoOS, hardware di un’altra categoria: un pannello Guition da sette pollici, 1024×600 con touch capacitivo, mosso da un ESP32-P4 affiancato da un ESP32-C6 che fa da co-processore per Wi-Fi 6 e BLE. Il P4 ha due core RISC-V a 360 MHz e 32 MB di RAM esterna.
Niente Linux e niente Android. Sotto ci sono ESP-IDF e LVGL, tutto il resto è scritto per questa scheda. L’obiettivo era un piccolo computer da usare, non una demo che si accende una volta per il video.
Due desktop
Il primo è un lanciatore da tablet: griglia adattiva a pagine, cartelle, dock, ricerca, sfondi, in orizzontale e in verticale, multitouch a cinque dita. I gesti di sistema stanno solo sui bordi dello schermo, così il centro resta alle app.
Il secondo è un desktop classico: icone, barra delle applicazioni, menu Start con ricerca, finestre con la barra del titolo, menu col tasto destro. Si accende da solo quando si collegano mouse e tastiera, USB o Bluetooth. Il fuoco si sposta con Tab, Esc torna indietro, Alt+Tab e Alt+F4 funzionano. Cambia solo la shell: le app sono le stesse.
ANIMA, l’assistente
ANIMA risponde sul dispositivo quando può e chiama un modello linguistico solo quando serve. Senza rete fa i conti (anche con il seguito: «6 per 6», poi «più 5»), dice ora e data, converte unità, imposta timer e promemoria, prende note, apre app, e traduce con dizionari offline. Le risposte le può leggere la voce offline.
Quando serve un modello, trova da sé Ollama, LM Studio o llama.cpp sul PC di casa, oppure usa un’API cloud. Se un modello non risponde passa al successivo, e se non risponde nessuno resta la risposta del dispositivo. Le chiavi API sono sigillate nel chip e non escono.
Con un modello collegato vede le foto, scrive ed esegue codice Lua e Python sulla scheda, e legge lo schermo come un elenco di controlli: tocca, scrive, controlla il risultato dopo ogni passo. Si raggiunge anche da Telegram e, attraverso un server MCP, da Claude Code o Cursor. Quando non sa, dice «non lo so».
Lo Store
Oltre 400 app e giochi, installati via Wi-Fi in pochi secondi. Ogni pacchetto è firmato: la scheda controlla ogni file contro la chiave dello Store e rifiuta quello che non torna. Prima dell’installazione mostra i permessi (Internet, file, fotocamera, microfono, dispositivi di casa), e un aggiornamento che ne chiede di più li evidenzia.
Le app native sono compilate dentro il firmware. Quelle dello Store no: sono WebAssembly ed entrano in un runtime WAMR con un’ABI dichiarata. La differenza non è accademica. Aggiungere un gioco a un firmware monolitico vuol dire ricompilare e riflashare, e tenere due copie di tutto durante l’aggiornamento, e su questi chip è proprio la memoria che manca. Con WASM l’app si installa e basta. In più il codice viene compilato in anticipo in istruzioni RISC-V native, quindi un gioco non paga un interprete.
Anche il catalogo è statico, su GitHub Pages: si sfoglia dal browser.
Leggere e lavorare
Books è un lettore di ebook: EPUB, FB2, fumetti CBZ, testo e Markdown. Sillaba in undici lingue, ha sei temi (fra cui una simulazione e-ink con il suo lampo di aggiornamento) e un catalogo di libri di pubblico dominio da Project Gutenberg, Standard Ebooks, Wikisource e Wikibooks, da scaricare con un tocco. Tenendo la scheda in verticale la pagina gira con lei.
Biblioteca legge Wikipedia offline e qualunque file ZIM di Kiwix, immagini e formule comprese.
Sheets è un foglio di calcolo nativo che apre e salva file Excel (xlsx), e apre xls, ods e csv. I nomi delle funzioni sono nella lingua dell’interfaccia, e ANIMA può proporre modifiche che si applicano con un tocco. Per scrivere c’è WordGrinder, che salva in odt, Markdown e HTML. Con tastiera e desktop classico la scheda diventa una piccola macchina da scrivere e da conti.
Giochi
Vertice è un motore 3D dentro il firmware: divide lo schermo in tasselli e li disegna sui due core, con luci, nebbia, particelle e un pavimento in stile Mode-7. Ci girano Vertice GP, una corsa di kart, Vertice Bass e Tank Rally.
Nello Store ci sono Chocolate Doom con Freedoom e la musica OPL, ScummVM 2.9.1 con otto avventure freeware, un emulatore Game Boy con giochi homebrew gratuiti, 83 giochi Arduboy, 83 giochi CHIP-8, i 149 giochi della console fantasy WASM-4, 33 titoli di narrativa interattiva (Zork compreso) e giochi LÖVE su Lua. Si gioca col gamepad a schermo, con la tastiera o con un gamepad.
Media e collegamenti
La galleria usa il decodificatore JPEG hardware e lo scaling passa dal PPA, il motore 2D del chip, quindi scorre invece di arrancare. Il lettore video fa MJPEG e MPEG-1. La musica copre MP3, FLAC, AAC e WAV, suona in sottofondo e può uscire su USB-audio a caldo. La fotocamera ha esposizione e bilanciamento del bianco automatici, scatta foto e registra video MJPEG.
La scheda fa da secondo schermo per Windows, Mac, Linux e Android, da display a matrice di punti per un cabinato di flipper virtuale (provato su un cabinato vero) e da pannello per Home Assistant, a cui annuncia anche i propri sensori.
C’è anche un companion web: la scheda serve via Wi-Fi un desktop da browser con una quarantina di applicazioni in finestra (file, foglio di calcolo, client SSH, posta, radio internet, un mixer da DJ) che lavorano sui file e sull’hardware della scheda. Per i programmi a riga di comando c’è il Terminale, con una shell, Lua, MicroPython, JavaScript e SQLite.
Lingue e aggiornamenti
L’interfaccia è in cinque lingue (italiano, inglese, spagnolo, francese, tedesco) con cambio a caldo. La sintesi vocale offline parla italiano e inglese.
Gli aggiornamenti arrivano via Wi-Fi e sono firmati. Se uno va storto c’è un’app di ripristino, una modalità provvisoria e una copia dell’ultima versione buona nella flash. A ogni commit la CI controlla i budget di memoria, e dei fuzzer provano ogni parser che legge dati dall’esterno.
Si installa dal browser, Chrome o Edge, senza toolchain.
Libero per uso non commerciale; l’uso commerciale richiede una licenza.
Scritti su questo progetto
-
4 min di lettura
Quattrocento app, una alla volta
NucleoOS-P4 ha uno Store con oltre 400 app e un assistente, su un microcontrollore. Le funzioni le ho scelte io. La forma l'ha decisa la memoria.
-
3 min di lettura
Un computer venduto come componente
Il chip più potente della famiglia ESP32 il wifi non ce l'ha: accanto gli mettono un secondo chip. La famiglia nata come modulo radio ha tolto la radio.