Woodland X11 lleva aplicaciones Linux a una pantalla ESP32-S3 por Wi-Fi

Woodland X11 lleva aplicaciones Linux a una pantalla ESP32-S3 por Wi-Fi

Un ESP32-S3 con PSRAM puede mostrar ventanas de xclock, xcalc y xeyes sin ejecutar Linux en la propia placa. El proyecto experimental Woodland X11, desarrollado por Sergey Zorin, implementa un servidor X Window System en el microcontrolador y recibe por Wi-Fi las conexiones de aplicaciones que sí se ejecutan en un ordenador Linux. La pantalla táctil también actúa como dispositivo de puntero.

La demostración se ha probado en una Elecrow CrowPanel Advance de 4,3 pulgadas, con resolución de 800 × 480. En el vídeo, los programas aparecen bajo el gestor de ventanas Motif Window Manager (mwm), y sus ventanas responden al tacto sobre el panel. No se trata de una pantalla que simplemente copie una imagen remota: la placa implementa el protocolo X11 necesario para que los clientes Linux se conecten a ella como servidor gráfico.

Un servidor X11 implementado para el microcontrolador

Zorin no ha portado Xorg al ESP32-S3 ni ha construido un visor al estilo VNC. Según la descripción del proyecto, escribió la implementación del protocolo central de X11 a partir de su especificación y sin extensiones. El firmware se basa en ESP-IDF y usa LovyanGFX para controlar la pantalla; esa combinación le permite gestionar directamente la memoria y el renderizado.

La diferencia importa para entender qué hace la placa. Los programas no se compilan ni se ejecutan en el microcontrolador: continúan funcionando en un sistema Linux anfitrión. Es ese equipo el que inicia los clientes X11; la placa recibe la comunicación y presenta las ventanas. El ESP32-S3 aporta el servidor gráfico y la superficie táctil, no un entorno Linux completo.

El enlace puede ser inalámbrico, mediante Wi-Fi, o realizarse por SPI desde un equipo Raspberry Pi. En ambos casos, la pantalla funciona como destino de las aplicaciones X11. La interacción táctil completa el circuito: el panel no solo muestra el contenido, sino que también envía los eventos de entrada correspondientes para que las aplicaciones reaccionen.

Aplicaciones reales en la pantalla táctil

La demostración con xclock, xcalc y xeyes sirve para comprobar que Woodland X11 ya puede trabajar con programas gráficos reales y con mwm. Sus ventanas se dibujan en el panel y responden a la entrada táctil. No es, por tanto, una interfaz de muestra dibujada únicamente por el firmware, aunque el soporte del protocolo todavía no esté completo.

Ese matiz define el estado actual del trabajo: el sistema ya supera una prueba puramente visual, pero sigue siendo experimental. La compatibilidad depende de las operaciones X11 implementadas, y el propio desarrollador tuvo que probar aplicaciones y el gestor de ventanas para identificar qué operaciones faltaban. El material publicado no detalla una lista completa de esas carencias ni presenta el proyecto como una implementación terminada.

El montaje probado combina el ESP32-S3 con una pantalla de 4,3 pulgadas, resolución de 800 × 480 y PSRAM. La placa concreta es la Elecrow CrowPanel Advance. No se especifican en la descripción el coste del conjunto, el consumo, la frecuencia de actualización ni las condiciones de rendimiento; la demostración se centra en la conexión entre el servidor embebido, los clientes Linux y la interacción táctil.

Memoria, dibujo, temporización y eventos táctiles

Los problemas más exigentes, según Zorin, han sido administrar clientes X11, recursos y operaciones de dibujo dentro de la memoria disponible en un microcontrolador. A eso se suma conseguir que aplicaciones reales y mwm funcionen, al tiempo que se averigua qué partes del protocolo faltan. En un sistema con recursos limitados, el servidor debe coordinar todo ese trabajo sin apoyarse en la infraestructura de un servidor gráfico de escritorio.

La pantalla plantea otra dificultad: mantener una temporización LCD estable y evitar redibujados innecesarios. El firmware no solo debe recibir mensajes de los clientes, sino convertir sus operaciones de dibujo en actualizaciones del panel. En paralelo, debe traducir los toques en eventos de entrada X11 y conservar una respuesta suficientemente ágil para que la interfaz resulte utilizable.

La conexión SPI con Raspberry Pi también llevó a revisar cómo se detecta la actividad. La primera estrategia recurría a consultas constantes; sustituir ese sondeo por una interrupción GPIO redujo sustancialmente el uso de CPU en reposo en la Raspberry Pi. La descripción no cuantifica la reducción, pero sí identifica el cambio de mecanismo y el efecto observado en el anfitrión.

Un experimento con código Apache-2.0

Woodland X11 continúa en fase experimental y su compatibilidad con el protocolo es incompleta. Aun así, ya ejecuta aplicaciones X11 reales desde Linux y las muestra en una pantalla conectada a un ESP32-S3. El código se publica bajo licencia Apache-2.0 y el desarrollador prepara una primera versión. El proyecto tiene su propio sitio, woodlandx11.dev.

La propuesta abre una vía distinta a integrar un ordenador Linux completo en una pantalla pequeña o utilizarla como un receptor remoto de imagen. En lugar de trasladar al microcontrolador la ejecución de las aplicaciones, Woodland X11 deja esa tarea en el equipo anfitrión y lleva al ESP32-S3 el servidor que presenta sus ventanas. La utilidad práctica sugerida es una pantalla inalámbrica de estado o control para un equipo Linux, aunque el proyecto todavía está en pruebas.

Por ahora, las pruebas descritas se apoyan en la CrowPanel Advance y en clientes como xclock, xcalc y xeyes bajo mwm. La primera versión pública está en preparación; no se indica una fecha de publicación. También queda por ver qué operaciones X11 se incorporarán para ampliar la compatibilidad más allá de las aplicaciones mostradas.

Fuente: CircuitDigest