Ir al contenido

Control táctil FluidNC CNC con ESP32 y LVGL: guía práctica

Una interfaz táctil puede simplificar el movimiento, la selección de archivos y la supervisión de una CNC con FluidNC. Esta guía explica cómo estructurar un panel ESP32 con LVGL sin comprometer la seguridad ni la estabilidad del control.
2 de septiembre de 2026 por
Control táctil FluidNC CNC con ESP32 y LVGL: guía práctica
importasia sas, Luis fernando pira

Píldora técnica — escucha este artículo en 2 minutos, con las voces de Samuel y Marcela.

Compartir: WhatsAppTelegramCorreo

Crear un control táctil FluidNC CNC parece sencillo hasta que aparecen los primeros problemas reales: la pantalla funciona, pero el táctil no responde; la interfaz se conecta a la red, pero no recibe el estado de la máquina; el joystick genera movimientos entrecortados; o un botón queda habilitado cuando la CNC está en alarma. La dificultad no está solamente en dibujar botones con LVGL, sino en coordinar pantalla, controlador táctil, comunicaciones, estados de FluidNC y seguridad de movimiento.

Los proyectos desarrollados por la comunidad demuestran que un panel HMI de aproximadamente 7 pulgadas, basado en ESP32 y equipado con LVGL, puede convertirse en un control inalámbrico completo. Es posible incluir pantalla de inicio, selección de máquina, exploración y progreso de archivos, controles manuales, joystick, sondeo, ajustes de velocidad y visualización de alarmas. Sin embargo, para obtener un sistema confiable hay que separar correctamente la interfaz gráfica del control CNC y tratar toda comunicación como un proceso asíncrono que puede fallar.

¿Qué función cumple el panel táctil en una CNC con FluidNC?

FluidNC es un firmware de control CNC orientado a microcontroladores ESP32. Se encarga de interpretar comandos, generar movimiento y gestionar entradas y salidas de la máquina. El panel táctil no debe reemplazar esas funciones críticas: actúa como un cliente o control colgante digital que envía órdenes y presenta la información recibida.

En una arquitectura típica hay dos dispositivos independientes:

  • Controlador CNC: ejecuta FluidNC, recibe el programa de mecanizado y gobierna motores, límites, sonda y periféricos.
  • Panel HMI: utiliza otro ESP32, una pantalla táctil y LVGL para mostrar la interfaz y transmitir órdenes mediante una conexión compatible.

Esta separación es importante. La actualización de una animación, la carga de un icono o una pérdida temporal de Wi-Fi no debe afectar la generación de pulsos ni la trayectoria de la CNC. El controlador conserva la autoridad sobre el movimiento, mientras el panel representa su estado y solicita acciones.

Control táctil FluidNC CNC con ESP32 y LVGL: guía práctica - ilustracion 1

Componentes y conocimientos necesarios

Antes de programar conviene verificar que el hardware y el entorno de desarrollo sean adecuados. No todos los paneles ESP32 utilizan los mismos controladores de pantalla, memoria o tacto, aunque tengan dimensiones similares.

  • Panel HMI con ESP32, pantalla y controlador táctil documentados.
  • Memoria suficiente para LVGL, recursos gráficos y buffers de pantalla.
  • Conectividad Wi-Fi estable o un medio cableado compatible con el proyecto.
  • Entorno de compilación compatible con las bibliotecas del panel.
  • LVGL en una versión soportada por el código y los controladores de pantalla.
  • Una CNC previamente configurada y probada con FluidNC.
  • Acceso a la documentación del protocolo y de la versión instalada de FluidNC.

También es recomendable conocer conceptos básicos de G-code, estados de máquina, movimiento incremental, coordenadas de trabajo, homing y sondeo. Una interfaz visual puede ocultar la sintaxis de los comandos, pero no elimina sus consecuencias mecánicas.

Control táctil FluidNC CNC con ESP32 y LVGL: guía práctica - ilustracion 2

Arquitectura recomendada para la interfaz

Una interfaz robusta se beneficia de una estructura modular. Mezclar el código del táctil, la red y los comandos CNC dentro de cada botón suele producir bloqueos y comportamientos difíciles de diagnosticar.

1. Capa de hardware

Inicializa la pantalla, el bus de comunicación, el controlador táctil, la retroiluminación y, si existe, la memoria externa. Los pines y parámetros deben obtenerse de la documentación técnica del panel. Copiar la configuración de otra tarjeta puede generar una pantalla blanca, colores incorrectos o coordenadas táctiles invertidas.

2. Capa gráfica con LVGL

Esta capa contiene pantallas, botones, etiquetas, barras de progreso, indicadores y eventos visuales. Debe trabajar con un modelo de estado interno, en lugar de consultar directamente la red cada vez que necesita actualizar un elemento.

3. Capa de comunicación

Administra la conexión con FluidNC, el envío de comandos, la recepción de estados, los tiempos de espera y la reconexión. Según la versión y el método elegido, puede utilizar los servicios de red expuestos por el controlador. La implementación debe seguir la documentación vigente y no asumir que todos los mensajes llegan completos en un único paquete.

4. Modelo de estado CNC

Conviene centralizar variables como conexión, estado operativo, posición, archivo activo, progreso, alarmas, velocidad y ajustes temporales. La interfaz consulta este modelo y habilita o deshabilita controles de acuerdo con él.

Configuración paso a paso del control táctil FluidNC CNC

  1. Prueba primero la máquina sin el panel. Verifica que FluidNC arranque sin errores, que los ejes se muevan en la dirección correcta y que límites, homing y paro de emergencia funcionen. El panel no debe utilizarse para compensar una configuración CNC defectuosa.
  2. Valida pantalla y táctil con un programa mínimo. Muestra colores básicos, dibuja objetos simples y registra las coordenadas de cada toque. Antes de integrar Wi-Fi o comandos CNC, confirma orientación, resolución, rotación y calibración.
  3. Instala una versión compatible de LVGL. Las API, estructuras y controladores pueden cambiar entre versiones principales. Si el proyecto de referencia declara una versión determinada, no la actualices automáticamente sin revisar los cambios requeridos.
  4. Configura los buffers gráficos. El tamaño depende de la resolución, la profundidad de color y la memoria disponible. Un buffer de pantalla completa no siempre es necesario; LVGL puede trabajar con áreas parciales. Si aparecen reinicios por falta de memoria, reduce recursos, revisa la asignación de buffers y evita imágenes innecesariamente pesadas.
  5. Conecta el panel a la red. Presenta claramente los estados desconectado, conectando, conectado y error. No mantengas habilitados los botones de movimiento antes de confirmar la comunicación con FluidNC.
  6. Implementa la recepción de estados. FluidNC utiliza conceptos y respuestas compatibles con el ecosistema Grbl, pero la aplicación debe seguir el protocolo documentado para su versión. Procesa los mensajes mediante una máquina de estados o un analizador tolerante a fragmentación, campos opcionales y datos incompletos.
  7. Crea una cola de comandos. Los eventos de LVGL deberían solicitar una acción a la capa de comunicación. La cola evita que varios toques rápidos saturen el enlace y permite controlar confirmaciones, prioridades y tiempos de espera.
  8. Diseña permisos según el estado. Una orden válida en reposo puede ser peligrosa o rechazada durante la ejecución de un archivo. Deshabilita movimiento manual, sondeo o selección de archivos cuando el estado reportado no permita esas operaciones.
  9. Prueba inicialmente sin herramienta activa. Realiza los ensayos con motores o actuadores en condiciones seguras, velocidades moderadas y espacio suficiente. Después valida cada función por separado antes de ejecutar un trabajo real.

Pantallas esenciales y función de cada una

La experiencia comunitaria muestra que distribuir las funciones en varias pantallas es más seguro que concentrarlas en un único tablero lleno de botones. Una organización práctica puede incluir los siguientes módulos:

PantallaInformación principalPrecaución de diseño
InicioEstado de carga, versión de la interfaz y diagnóstico inicialNo ocultar errores de pantalla, memoria o red
Selección de máquinaControladores disponibles y estado de conexiónConfirmar identidad antes de habilitar movimiento
Panel principalEstado CNC, coordenadas, conexión y alarmasUsar indicadores visuales inequívocos
Archivos y progresoArchivo seleccionado, ejecución y avance reportadoNo confundir transferencia con ejecución real
Movimiento manualEjes, distancia incremental y velocidad de avanceMostrar siempre eje, sentido e incremento activos
SondeoRutina seleccionada, eje y resultadoExigir confirmación y condiciones previas
Ajustes temporalesOverrides disponibles y valor actualIndicar claramente el valor nominal y el modificado
AlarmasMensaje recibido, conexión y opciones permitidasNo ofrecer recuperación automática sin contexto

Cómo implementar un joystick táctil seguro

El joystick suele ser el componente más delicado. Una pantalla táctil no tiene retorno mecánico real y puede dejar de reportar eventos por pérdida de comunicación, bloqueo del programa o deslizamiento del dedo. Por eso no conviene tratarlo como un botón que inicia un movimiento indefinido.

  • Utiliza órdenes de jogging documentadas por FluidNC, no movimientos improvisados mediante líneas de programa.
  • Define una zona muerta alrededor del centro para evitar movimientos involuntarios.
  • Limita la frecuencia de envío; transmitir una orden por cada variación mínima del tacto puede saturar la conexión.
  • Envía la cancelación de jogging al soltar el control y también ante pérdida de foco, cambio de pantalla o desconexión.
  • Muestra el eje, el sentido y la velocidad solicitada antes y durante el movimiento.
  • No permitas joystick cuando la máquina esté ejecutando un archivo, en alarma o sin una referencia válida si el proceso exige homing.

Para ajustes precisos, los botones de movimiento incremental suelen ser más predecibles que un joystick proporcional. Es conveniente ofrecer incrementos configurables y una velocidad claramente visible, evitando que la última selección quede oculta.

Selección de archivos, progreso y acciones de control

El panel puede presentar archivos disponibles en el almacenamiento gestionado por el controlador, pero debe diferenciar tres operaciones: seleccionar, iniciar y supervisar. Tocar un nombre no debería ejecutar inmediatamente el trabajo. Una pantalla de confirmación puede mostrar el archivo elegido, el estado de la máquina y las acciones disponibles.

El progreso debe calcularse únicamente con información confiable recibida del controlador. Si la implementación no dispone de una medida exacta, es preferible mostrar el estado de ejecución, el nombre del archivo y el tiempo transcurrido, en vez de presentar un porcentaje aparentemente preciso. Tampoco se debe interpretar la recepción exitosa de un comando como prueba de que la máquina ya completó la acción.

Las acciones de pausa, reanudación, detención y reinicio tienen efectos distintos. Usa nombres claros y confirmación para las operaciones destructivas. Una detención solicitada desde la pantalla no reemplaza un paro de emergencia físico.

Sondeo y overrides: controles que requieren contexto

Una rutina de sondeo puede mover la máquina hasta detectar una entrada y después actualizar una referencia. Antes de iniciarla, la interfaz debería verificar al menos la conexión, el estado operativo y la disponibilidad de la señal de sonda reportada por el controlador. También debe indicar qué eje o rutina se ejecutará.

No conviene construir secuencias de sondeo universales sin considerar la configuración mecánica, la polaridad de la entrada, el recorrido disponible y el sistema de coordenadas. El panel puede facilitar la ejecución, pero la rutina debe ser validada previamente para esa CNC.

Los overrides permiten modificar temporalmente parámetros como avance u otras funciones admitidas por FluidNC. El usuario necesita ver el valor actual y disponer de una forma evidente de volver al valor nominal. Para evitar cambios accidentales, pueden emplearse pasos discretos y límites coherentes con la operación.

Seguridad: lo que una interfaz táctil nunca debe reemplazar

Un panel inalámbrico es una ayuda operativa, no un sistema de seguridad funcional. La red puede presentar latencia, interferencia o desconexiones; el panel puede reiniciarse; y una capa gráfica puede quedar temporalmente bloqueada.

  • Instala un paro de emergencia físico y cableado según el diseño eléctrico de la máquina.
  • Mantén accesibles los interruptores físicos necesarios para retirar energía o detener actuadores peligrosos.
  • No dependas de un botón táctil para impedir una colisión.
  • Configura límites, homing y protecciones directamente en el controlador CNC.
  • Ante pérdida de comunicación, la interfaz debe pasar a estado desconectado y bloquear nuevas órdenes.
  • No reenvíes automáticamente movimientos pendientes después de reconectar.

Además, protege la red de control. Evita exponer el controlador CNC directamente a redes públicas y utiliza una infraestructura local confiable. Si la interfaz permite guardar credenciales, considera cómo se almacenan y cómo se restablece el equipo antes de entregarlo a otra persona.

Diagnóstico de fallas frecuentes

La pantalla enciende, pero queda blanca

Revisa controlador gráfico, pines, alimentación, secuencia de inicialización, resolución y bus de comunicación. Prueba primero el ejemplo mínimo recomendado para el hardware antes de cargar LVGL y la aplicación completa.

Los botones responden en posiciones incorrectas

La rotación visual y la transformación de coordenadas táctiles probablemente no coinciden. Registra puntos en las cuatro esquinas y el centro para comprobar inversión de ejes, intercambio entre X e Y y escala.

El panel se conecta, pero no actualiza el estado CNC

Confirma dirección de red, servicio utilizado y compatibilidad de protocolo. Registra los mensajes recibidos sin bloquear el ciclo gráfico. El analizador debe aceptar datos fragmentados y descartar mensajes desconocidos sin detener la aplicación.

Hay movimientos tardíos o repetidos

Comprueba si los eventos táctiles están generando demasiadas órdenes, si existe una cola sin límite o si se reenvían comandos después de un tiempo de espera. Los comandos de movimiento no deberían repetirse automáticamente sin validar el estado actual.

El ESP32 se reinicia al cambiar de pantalla

Puede existir presión de memoria, recursos gráficos duplicados, objetos no liberados o tareas que bloquean el sistema. Monitorea memoria disponible, reduce imágenes y evita crear repetidamente pantallas completas si pueden reutilizarse.

Errores comunes que conviene evitar

  • Copiar configuraciones de otro panel: incluso equipos visualmente similares pueden usar controladores y pines diferentes.
  • Actualizar bibliotecas sin comprobar compatibilidad: los cambios de LVGL pueden afectar eventos, estilos y controladores.
  • Ejecutar red dentro de eventos gráficos: una operación bloqueante congela la interfaz y puede producir pulsaciones repetidas.
  • Asumir que la conexión equivale a disponibilidad: FluidNC puede estar conectado y, al mismo tiempo, ocupado o en alarma.
  • Habilitar todos los controles permanentemente: cada estado CNC debería ofrecer solamente las acciones válidas.
  • Usar texto ambiguo: acciones como detener, pausar, cancelar y reiniciar deben distinguirse claramente.
  • Probar por primera vez con la herramienta activa: la validación inicial debe realizarse en condiciones mecánicas seguras.

Plan de pruebas antes de usar el panel en producción

  1. Verifica arranque, orientación y respuesta táctil durante varios ciclos de encendido.
  2. Prueba conexión, desconexión y reconexión sin enviar movimientos pendientes.
  3. Confirma la representación de reposo, ejecución, pausa, alarma y desconexión.
  4. Ensaya cada eje con desplazamientos pequeños y espacio libre.
  5. Comprueba la cancelación de jogging al levantar el dedo y al perder la red.
  6. Valida selección de archivos sin iniciar trabajos accidentalmente.
  7. Prueba alarmas, límites y sonda de acuerdo con la configuración real.
  8. Revisa que el paro físico siga funcionando independientemente del panel.

Un control táctil FluidNC CNC bien diseñado puede mejorar considerablemente la operación diaria, especialmente cuando organiza movimiento, archivos, progreso, sondeo y ajustes en pantallas claras. La clave está en tratarlo como una HMI conectada a un controlador independiente, con estados verificables, comunicaciones no bloqueantes y mecanismos físicos de seguridad.

Si estás evaluando la integración de controles, repuestos o equipos para procesos CNC y manufactura digital, Importasia ofrece máquinas y soporte técnico especializado en Colombia. Una revisión profesional de la aplicación, el entorno eléctrico y las necesidades de producción ayuda a elegir una solución estable sin depender únicamente de una interfaz experimental.

Preguntas frecuentes

¿Se puede controlar FluidNC desde una pantalla táctil con ESP32?

Sí. Un segundo ESP32 puede ejecutar LVGL y actuar como interfaz HMI para consultar estados y enviar órdenes al controlador con FluidNC. La compatibilidad concreta depende de los servicios de comunicación disponibles y de la versión instalada.

¿El panel táctil puede reemplazar el paro de emergencia?

No. Un botón gráfico depende del software, la alimentación y la comunicación, por lo que no sustituye un paro de emergencia físico y cableado. La seguridad crítica debe permanecer independiente de la pantalla y de la red.

¿Por qué el táctil funciona con las coordenadas invertidas?

Normalmente existe una diferencia entre la rotación de la pantalla y la transformación aplicada al controlador táctil. Se deben comprobar las cuatro esquinas, invertir o intercambiar ejes cuando corresponda y guardar una calibración coherente con la orientación final.

¿Qué pantallas debería incluir una interfaz CNC con LVGL?

Como base conviene incluir conexión, estado general, coordenadas, movimiento manual, archivos, progreso y alarmas. Las funciones de sondeo, joystick y overrides pueden añadirse después de validar la comunicación y los mecanismos de seguridad.

Error de conexión controlador láser CO2: guía de solución
Un controlador sin comunicación y demasiado caliente puede tener desde una configuración incorrecta hasta un cortocircuito. Aprende a diagnosticar la falla de forma segura y ordenada.
Odoo 17 fdbfb Community Enterprise Enterprise
Windows
Ubuntu • Debian
RPM
Sources