Woodland X11 porta le applicazioni Linux su uno schermo ESP32-S3 via Wi-Fi

Woodland X11 porta le applicazioni Linux su uno schermo ESP32-S3 via Wi-Fi

Un ESP32-S3 con PSRAM può visualizzare le finestre di xclock, xcalc e xeyes senza eseguire Linux sulla scheda stessa. Il progetto sperimentale Woodland X11, sviluppato da Sergey Zorin, implementa un server X Window System sul microcontrollore e riceve via Wi-Fi le connessioni delle applicazioni che vengono eseguite su un computer Linux. Il touchscreen funge anche da dispositivo di puntamento.

La dimostrazione è stata testata su un Elecrow CrowPanel Advance da 4,3 pollici, con risoluzione di 800 × 480. Nel video, i programmi vengono visualizzati con il window manager Motif Window Manager (mwm) e le finestre reagiscono al tocco sul pannello. Non si tratta di uno schermo che si limita a copiare un'immagine remota: la scheda implementa il protocollo X11 necessario affinché i client Linux possano connettersi a essa come server grafico.

Un server X11 implementato per il microcontrollore

Zorin non ha portato Xorg sull'ESP32-S3 né ha realizzato un visualizzatore in stile VNC. Secondo la descrizione del progetto, ha scritto l'implementazione del protocollo X11 di base partendo dalle sue specifiche e senza estensioni. Il firmware si basa su ESP-IDF e usa LovyanGFX per controllare lo schermo; questa combinazione gli consente di gestire direttamente la memoria e il rendering.

La differenza è importante per capire cosa fa la scheda. I programmi non vengono compilati né eseguiti sul microcontrollore: continuano a funzionare su un sistema Linux host. È questo computer ad avviare i client X11; la scheda riceve la comunicazione e visualizza le finestre. L'ESP32-S3 fornisce il server grafico e la superficie tattile, non un ambiente Linux completo.

Il collegamento può essere wireless, tramite Wi-Fi, oppure avvenire via SPI da un computer Raspberry Pi. In entrambi i casi, lo schermo funge da destinazione per le applicazioni X11. L'interazione tattile completa il circuito: il pannello non si limita a mostrare i contenuti, ma invia anche i relativi eventi di input affinché le applicazioni possano reagire.

Applicazioni reali sul touchscreen

La dimostrazione con xclock, xcalc e xeyes permette di verificare che Woodland X11 è già in grado di funzionare con programmi grafici reali e con mwm. Le finestre vengono disegnate sul pannello e reagiscono al tocco. Non si tratta quindi di un'interfaccia dimostrativa disegnata esclusivamente dal firmware, anche se il supporto del protocollo non è ancora completo.

Questa precisazione definisce lo stato attuale del lavoro: il sistema ha già superato una prova puramente visiva, ma è ancora sperimentale. La compatibilità dipende dalle operazioni X11 implementate e lo stesso sviluppatore ha dovuto testare applicazioni e window manager per individuare le operazioni mancanti. Il materiale pubblicato non fornisce un elenco completo di queste lacune né presenta il progetto come un'implementazione ultimata.

La configurazione testata combina l'ESP32-S3 con uno schermo da 4,3 pollici, risoluzione di 800 × 480 e PSRAM. La scheda specifica è la Elecrow CrowPanel Advance. La descrizione non indica il costo del sistema, il consumo, la frequenza di aggiornamento né le condizioni di prestazione; la dimostrazione si concentra sul collegamento tra il server embedded, i client Linux e l'interazione tattile.

Memoria, disegno, temporizzazione ed eventi tattili

Secondo Zorin, le difficoltà maggiori sono state gestire i client X11, le risorse e le operazioni di disegno nella memoria disponibile su un microcontrollore. A questo si aggiunge la necessità di far funzionare applicazioni reali e mwm, individuando al contempo le parti mancanti del protocollo. In un sistema con risorse limitate, il server deve coordinare tutto questo lavoro senza fare affidamento sull'infrastruttura di un server grafico desktop.

Lo schermo pone un'altra difficoltà: mantenere stabile la temporizzazione LCD ed evitare ridisegni superflui. Il firmware non deve solo ricevere i messaggi dei client, ma anche convertire le loro operazioni di disegno in aggiornamenti del pannello. Nel frattempo, deve tradurre i tocchi in eventi di input X11 e mantenere una risposta sufficientemente rapida da rendere l'interfaccia utilizzabile.

Il collegamento SPI con Raspberry Pi ha portato anche a rivedere il modo in cui viene rilevata l'attività. La strategia iniziale ricorreva a interrogazioni costanti; sostituendo questo polling con un'interruzione GPIO, l'utilizzo della CPU a riposo sul Raspberry Pi è diminuito notevolmente. La descrizione non quantifica la riduzione, ma indica il cambiamento del meccanismo e l'effetto osservato sull'host.

Un esperimento con codice Apache-2.0

Woodland X11 è ancora in fase sperimentale e la sua compatibilità con il protocollo è incompleta. Ciononostante, esegue già applicazioni X11 reali da Linux e le visualizza su uno schermo collegato a un ESP32-S3. Il codice è pubblicato con licenza Apache-2.0 e lo sviluppatore sta preparando una prima versione. Il progetto ha un proprio sito, woodlandx11.dev.

La proposta apre una strada diversa rispetto all'integrazione di un computer Linux completo in un piccolo schermo o al suo utilizzo come ricevitore di immagini remote. Anziché trasferire l'esecuzione delle applicazioni sul microcontrollore, Woodland X11 lascia questo compito al computer host e porta sull'ESP32-S3 il server che visualizza le finestre. Tra gli usi pratici suggeriti c'è uno schermo wireless di stato o di controllo per un computer Linux, anche se il progetto è ancora in fase di test.

Per ora, i test descritti si basano sul CrowPanel Advance e su client come xclock, xcalc e xeyes con mwm. La prima versione pubblica è in preparazione; non è indicata una data di pubblicazione. Resta inoltre da vedere quali operazioni X11 verranno aggiunte per ampliare la compatibilità oltre le applicazioni mostrate.

Fonte: CircuitDigest