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.
di Nicola Sabaini 3 min di lettura Progetto: NucleoOS-P4
Sulla scheda che uso per NucleoOS-P4 ci sono due chip. Uno è l’ESP32-P4, il più potente della famiglia. L’altro è un ESP32-C6, e sta lì perché il P4 il wifi non ce l’ha.
La famiglia che tutti conoscono come «quel modulo wifi da pochi euro», arrivata al pezzo grosso, la radio l’ha tirata fuori e messa di fianco.
Tolta quella, resta un processore a due core, un blocco che decodifica immagini e video senza far fatica al processore, un controller per uno schermo grande, e memoria a sufficienza per tenere in piedi un’interfaccia grafica.
Resta un computer.
Cosa ci gira sopra davvero
Quella che uso è un pannello Guition da sette pollici, 1024 per 600, con il touch capacitivo. NucleoOS-P4 ci disegna sopra un lanciatore: griglia di applicazioni che si adatta, cartelle, dock, ricerca, sfondo.
Le foto scorrono invece di arrancare perché a ridimensionarle non è il processore: c’è un blocco dedicato che fa quel lavoro e basta. Il lettore video usa la stessa strada. La musica copre i formati che uno si aspetta, suona in sottofondo, e può uscire su una scheda audio USB collegata a caldo. Poi fotocamera, registratore vocale, gestore dei file, monitor di sistema, note, calcolatrice. La sintesi vocale è sul dispositivo, in italiano e inglese, senza rete. L’interfaccia è tradotta in cinque lingue e si cambia senza riavviare.
E la scheda serve via wifi una scrivania completa che si apre nel browser di qualunque computer della rete, con una trentina di applicazioni in finestra che parlano al dispositivo attraverso una piccola API. Gli aggiornamenti arrivano senza cavo.
Le applicazioni che non ricompilano niente
C’è una cosa che secondo me segna il confine fra un componente e un computer: su un computer i programmi si installano.
Le applicazioni native di NucleoOS-P4 stanno dentro il firmware, compilate insieme a lui. Quelle in WebAssembly no: arrivano dalla scheda di memoria ed entrano in un piccolo motore che le esegue, con un’interfaccia grafica dichiarata a cui possono appoggiarsi.
Non è una raffinatezza. Aggiungere un gioco a un firmware monolitico vuol dire ricompilare tutto, riflashare, e durante l’aggiornamento tenere in memoria due copie di ogni cosa. È proprio la memoria quello che manca.
Con l’altra strada l’app si copia sulla scheda di memoria. Poi si apre.
L’altro estremo della stessa famiglia
Dall’altra parte della famiglia c’è il Cardputer, che sta in una mano e monta un ESP32-S3: 512 KB di memoria, nessuna espansione, uno schermo da 240 per 135. Dopo l’avvio restano circa 18 KB liberi.
Sopra ci gira lo stesso genere di sistema: registro delle applicazioni con permessi dichiarati, bus di eventi, aggiornamento con ritorno alla versione precedente se qualcosa va storto, notifiche, gestione dell’alimentazione. E un multiplayer che funziona senza router, perché i chip si parlano direttamente fra loro.
Fra quella scheda e il pannello da sette pollici c’è un abisso, e si chiamano tutte e due ESP32. Nel listino stanno nella stessa riga.
Il cassetto sbagliato
Quasi tutto il firmware scritto per questi chip legge un sensore e manda il numero a un server. Non c’è niente di male: è un lavoro che qualcuno deve fare, e questi chip lo fanno bene e costano poco.
Quello che colpisce è che lo faccia quasi tutta la categoria, ferma all’idea che ci eravamo fatti di questi cosi la prima volta che li abbiamo presi in mano.
Il primo computer su cui ho scritto qualcosa occupava un tavolo e aveva 64 kilobyte di memoria. Questi stanno in una mano, e nel catalogo sono componenti.