En este tutorial, aprenderás a convertir tu LilyGo T-Dongle en un reproductor multimedia inteligente y automático. Te guiaremos paso a paso para configurar este versátil dispositivo basado en el ESP32-S3, permitiéndole leer archivos de video directamente desde su ranura microSD y ejecutarlos en el host al que se conecte. Con esto, podrás aprovechar su diseño ultra compacto para crear desde herramientas de señalización digital portátil hasta dispositivos de presentación automática “plug-and-play”.
Material necesario:
- T-Dongle
- Computadora
- Control de versiones: Git instalado.

Introducción
El LilyGo T-Dongle rompe con la idea de que un dispositivo USB es solo para almacenamiento pasivo. Equipado con el potente chip ESP32-S3, una pantalla LCD a color y un lector de tarjetas microSD, este pequeño hardware representa una navaja suiza para los desarrolladores de sistemas embebidos. A diferencia de otros microcontroladores, su capacidad nativa para manejar USB OTG le permite interactuar con computadoras de una forma mucho más dinámica.
A través de este artículo, exploraremos cómo dar vida a este dongle para que actúe como un nodo multimedia independiente. No solo aprenderemos a gestionar el sistema de archivos de la tarjeta microSD, sino que entenderemos cómo el T-Dongle puede automatizar la reproducción de contenido visual en el momento exacto en que recibe energía del puerto USB. Si buscas una solución compacta para desplegar contenido multimedia sin necesidad de configuraciones complejas en el equipo host, este proyecto es el punto de partida ideal.
El LilyGo T-Dongle: Potencia en formato compacto
El LilyGo T-Dongle-S3 es mucho más que un simple adaptador USB; es una unidad de procesamiento de alto rendimiento diseñada específicamente para entornos donde el espacio es crítico. Su corazón es el ESP32-S3, un microcontrolador de doble núcleo que no solo ofrece conectividad Wi-Fi y Bluetooth, sino que destaca por su soporte nativo para USB On-The-Go (OTG). Esta característica es la que permite que el dispositivo deje de ser un periférico pasivo y se convierta en un agente activo capaz de comunicarse con cualquier computadora a nivel de hardware.
Lo que realmente diferencia a este dongle en el mercado de sistemas embebidos es su integración “todo en uno”:
- Pantalla LCD a color (ST7789): Permite una retroalimentación visual inmediata. En nuestro proyecto, la utilizaremos para mostrar el estado del dispositivo (ej. “Inicializando…”) antes de que el host lo reconozca.
- Ranura MicroSD integrada: Actúa como nuestro almacén de datos. Al estar conectada directamente mediante el bus SPI del ESP32-S3, permite una transferencia de archivos rápida, esencial para ejecutar videos de forma fluida.
- Arquitectura de Hardware Programable: A diferencia de las memorias USB convencionales, el T-Dongle nos permite definir qué queremos que sea ante los ojos de la computadora. Podemos configurarlo para ser un teclado, un mouse, una memoria de almacenamiento o una combinación de varios (Composite Device), otorgándonos un control total sobre la interacción con el sistema operativo.
Esta versatilidad lo convierte en una herramienta invaluable para desarrolladores, permitiendo desde la automatización de tareas repetitivas en sistemas operativos hasta el despliegue de señalización digital portátil, donde el dispositivo “se presenta” ante el host y ejecuta su tarea sin necesidad de instalar controladores o software adicional.
Desarrollo
Instalación
Abre PowerShell y descarga el código de ejemplo desde nuestro repositorio de GitHub con Git:
git clone https://github.com/UNIT-Electronics-MX/unit_t_dongle_s3_firmware.git
Dirígete a la carpeta de ejemplo y abre el sketch de Arduino.:
cd unit_t_dongle_s3_firmware/software/examples/getting_started
start .\getting_started.ino

Código
Para este proyecto, se ha diseñado una capa de abstracción (API) que facilita enormemente el uso del dispositivo. En lugar de trabajar directamente con configuraciones de bajo nivel para cada componente, el código se divide en módulos especializados que encapsulan las funciones principales.
Al descargar el repositorio, se puede observar que el ejemplo getting_started.ino se apoya en varios archivos de cabecera (.h), los cuales organizan la lógica del hardware en bloques bien definidos.

Dentro de estas librerías se encuentra la implementación de las funciones principales que definen el comportamiento del T-Dongle. Por un lado, se incluye el código necesario para controlar la pantalla LCD, permitiendo tanto la impresión de texto como la visualización de imágenes en formato compatible con el dispositivo. Esta capacidad facilita la creación de interfaces visuales simples directamente desde el hardware.

De igual forma, se integra la funcionalidad de teclado USB, mediante la cual el T-Dongle puede enviar texto y combinaciones de teclas al equipo al que se conecta. Esto permite automatizar acciones en el sistema host, ejecutando comandos o interactuando con el entorno de forma directa.

Adicionalmente, se incorpora el manejo de almacenamiento masivo, donde la tarjeta microSD es presentada como una memoria USB convencional. A través de esta característica, es posible acceder a archivos desde el equipo host o utilizar el dispositivo como medio de transporte de información.

Por último, todo esto se junta en una sola clase que permite controlar el T-Dongle y juntar las 3 funcionalidades que hacen al T-Dongle un dispositivo poderoso para automatizar tareas en tu ordenador.

En conjunto, estas librerías reúnen las capacidades esenciales del T-Dongle en una interfaz organizada, facilitando su uso en aplicaciones donde se requiere interacción tanto a nivel visual como a nivel de sistema. Para quienes deseen profundizar, basta con revisar estos archivos para entender cómo se implementa cada funcionalidad sobre el ESP32-S3.
Preparando la aplicación
Para esta aplicación, se utilizará la memoria microSD como punto de entrada para el contenido que el T-Dongle ejecutará al conectarse al equipo.
El primer paso consiste en preparar la tarjeta microSD. Para ello, basta con copiar en la raíz de la memoria el archivo que se desea utilizar durante la ejecución. Este archivo será accesible directamente desde el dispositivo, permitiendo que el programa lo lea o lo utilice según la lógica implementada.

Modo de programación
Antes de cargar el firmware, es necesario colocar el T-Dongle en modo de programación. Este paso es importante, ya que permite que el dispositivo sea reconocido correctamente por el entorno de desarrollo para la carga del código.
Para entrar en este modo, se debe mantener presionado el botón de flasheo mientras se conecta el T-Dongle al puerto USB del ordenador. Al hacerlo, el dispositivo no iniciará su ejecución normal.
Una forma sencilla de verificar que el proceso se realizó correctamente es observando la pantalla: si el dispositivo entra en modo de programación, la pantalla permanecerá apagada al momento de conectarlo.
Cargando el programa
Con el dispositivo en modo de programación, ya es posible cargar el código utilizando el entorno de desarrollo.
El ejemplo proporcionado muestra cómo utilizar las librerías para interactuar con las distintas capacidades del T-Dongle. A través de funciones de alto nivel, se controla la pantalla LCD, se envían comandos como teclado USB y se accede al contenido almacenado en la microSD.
En esta etapa, el enfoque no está en la configuración interna del hardware, sino en el uso directo de las funciones disponibles. Esto permite construir rápidamente una aplicación funcional, aprovechando la abstracción que ofrecen las librerías.

Flasheo y ejecución
Una vez cargado el programa, el entorno de desarrollo se encargará de transferirlo al dispositivo. Al finalizar este proceso, el T-Dongle se reiniciará automáticamente y comenzará a ejecutar el firmware recién instalado.

A partir de este momento, el dispositivo ya no necesita estar en modo de programación. Puede desconectarse y utilizarse de manera normal. Cada vez que se conecte a un equipo, ejecutará el programa cargado, accediendo a la microSD y haciendo uso de sus capacidades como pantalla, teclado o almacenamiento, según lo definido en el código.
Conclusiones
El T-Dongle es una plataforma compacta que integra múltiples capacidades en un solo dispositivo: una pantalla LCD para interacción visual, emulación de teclado USB para comunicación directa con el sistema host y soporte para almacenamiento masivo mediante microSD. Esta combinación permite desarrollar soluciones que no solo ejecutan lógica interna, sino que también interactúan activamente con el entorno al que se conectan.
Más allá de este caso práctico, el T-Dongle abre la puerta a una amplia variedad de aplicaciones: desde herramientas de automatización, interfaces personalizadas y dispositivos interactivos, hasta soluciones más especializadas donde se requiere una integración directa con el sistema host.
En esencia, se trata de un dispositivo diseñado para reducir la complejidad del desarrollo y acelerar la creación de proyectos funcionales, manteniendo al mismo tiempo la flexibilidad necesaria para explorar ideas más avanzadas.

