LILYGO TTGO T-Display: el ESP32 que muestra el resultado al instante

Una placa de desarrollo corriente sabe hacer muchas cosas, pero habla con quien la programa sobre todo mediante líneas en el Serial Monitor. La LILYGO TTGO T-Display tiene una forma más convincente de hacerlo: una pantalla en color integrada. Conectas un sensor y ves las lecturas al momento. Recibes datos por Wi‑Fi y muestras una gráfica o un estado. Montas un instrumento autónomo y ya no hace falta añadir una pantalla aparte, llevarle la alimentación ni buscarle sitio dentro de la caja.

Justo por eso la T-Display resulta más interesante que «una placa ESP32 más». Es casi un frontal de aparato terminado: microcontrolador, pantalla, dos botones, USB‑C y carga de una Li‑Po de un elemento en una sola placa estrecha.

Patillaje de la LILYGO TTGO T-Display V1.1 clásica. Tira izquierda: GND, GND, 21, 22, 17, 2, 15, 13, 12, GND, GND, 3V3; tira derecha: 3V3, 36, 37, 38, 39, 32, 33, 25, 26, 27, GND, 5V. La pantalla ST7789V va por MOSI 19, SCLK 18, CS 5, DC 16, RST 23 y BL 4, y los dos botones están en GPIO0 y GPIO35.
La T-Display clásica, V1.1: las dos tiras de pines, las seis señales de la pantalla y los dos botones. Pulsa para ver la versión a tamaño completo.

De qué placa se habla exactamente

El nombre T-Display se ha convertido en toda una familia, así que la primera trampa técnica es tomar las características del modelo equivocado. Aquí se trata de la LILYGO/TTGO T-Display clásica sobre el ESP32 original, con pantalla de 1,14 pulgadas y resolución de 135 × 240 puntos. No es la T-Display-S3: la S3 lleva otro procesador, pantalla de 1,9 pulgadas, otra conexión de pantalla, otros GPIO y sí tiene PSRAM.

La documentación actual de LILYGO indica para la placa clásica el SoC ESP32-D0WDQ6. El tamaño de la Flash y el chip USB–UART pueden variar entre lotes, de modo que la descripción del vendedor o el código de ejemplo de otra persona no sustituyen a comprobar la placa que tienes delante.

Características técnicas

ElementoCaracterísticaQué significa en la práctica
MicrocontroladorESP32-D0WDQ6El ESP32 clásico, no un S2/S3/C3
Procesador2 núcleos Xtensa LX6, hasta 240 MHzSuficiente para Wi‑Fi, interfaz, sensores y lógica de fondo a la vez
Memoria520 KB de SRAM interna, sin PSRAMLas imágenes grandes y el doble búfer exigen medir bien la memoria
FlashNormalmente 4 MB; existe una variante de 16 MBHay que comprobar el tamaño antes de elegir la tabla de particiones
Conectividad inalámbricaWi‑Fi 2,4 GHz 802.11 b/g/n; Bluetooth 4.2 BR/EDR y BLESirve para MQTT, HTTP, ESP‑NOW, balizas BLE y comunicación con el móvil
PantallaTFT IPS de 1,14″, controlador ST7789VPantalla en color con buenos ángulos de visión
Resolución135 × 240 en vertical; normalmente 240 × 135 en horizontalCómoda para una magnitud grande, varios estados o una gráfica pequeña
Interfaz de la pantallaSPI de 4 hilos; el perfil de fábrica de TFT_eSPI la mueve a 40 MHzLa pantalla es rápida, pero ocupa varios GPIO
ControlDos botones: GPIO0 y GPIO35Bastan para un menú, pasar pantallas, confirmar o despertar el equipo
AlimentaciónUSB‑C o Li‑Po de un elemento; carga integradaLa base de un instrumento portátil sin módulo de carga aparte
Control de la bateríaADC en GPIO34, circuito de medida habilitado por GPIO14La carga se puede mostrar en la propia interfaz
USBUSB‑C a través de un puente USB–UARTEl ESP32 original no tiene USB Device nativo; el puerto sirve para alimentar, programar y la comunicación serie
USB–UARTCH9102 en lo que se vende hoy; en revisiones antiguas aparecían CP210xAnte un problema de controlador hay que mirar el VID/PID real y no adivinar por el nombre de la placa
Niveles lógicos3,3 V; los GPIO no toleran 5 VUna señal de 5 V necesita adaptación de niveles
DimensionesUnos 51,5 × 25 mmLa placa es bastante más estrecha que la mayoría de montajes «DevKit + TFT aparte»
Entornos de desarrolloArduino IDE, PlatformIO, ESP-IDF; MicroPython es posibleArduino para empezar rápido, ESP-IDF para un proyecto más riguroso

Un par de cifras ayudan a captar la escala. Un fotograma completo en formato RGB565 ocupa 135 × 240 × 2 = 64 800 bytes, es decir, unos 63,3 KiB. Dos búferes de fotograma ya son cerca de 126,6 KiB, sin contar la pila Wi‑Fi, las tareas y los datos de la aplicación. Por eso en esta placa resultan especialmente útiles el redibujado parcial, los sprites de tamaño moderado y pintar solo las zonas que han cambiado.

Por qué la pantalla integrada vale de verdad

Aquí la pantalla es útil como herramienta de desarrollo, no como adorno. Acorta el camino que va del prototipo a algo que se puede usar sin ordenador.

Pero la pantalla también impone límites. Es pequeña y no es táctil, y seis señales del ESP32 ya están ocupadas por ella. Una retroiluminación siempre encendida afecta de forma notable a la autonomía. Para gráficos complejos falta PSRAM, así que la T-Display luce mejor no como un «microteléfono», sino como una interfaz clara hecha de unos pocos indicadores bien elegidos.

Qué hay ya conectado al ESP32

Función en la placaGPIOQué conviene saber
TFT MOSI19Datos hacia el ST7789V
TFT SCLK18Línea de reloj de la pantalla
TFT CS5Selección de la pantalla; a la vez pin de strapping de arranque del ESP32
TFT DC16Conmuta entre «comando» y «datos»
TFT RESET23Reinicio por hardware del controlador de la pantalla
Retroiluminación TFT4Se puede encender, apagar y regular por PWM
Botón en GPIO00También BOOT/strapping: mantenerlo durante un reinicio deja el ESP32 en el gestor de arranque
Segundo botón35Solo entrada; GPIO35 no tiene resistencias internas
Medida de la Li‑Po34ADC1, solo entrada
Habilitación del circuito de medida14Antes de leer la batería, GPIO14 suele ponerse a nivel alto

Es razonable dar estos pines por ocupados. El SPI admite en teoría que varios dispositivos compartan las líneas MOSI/SCLK, pero para un primer proyecto es más seguro dejar GPIO18 y GPIO19 a la pantalla y sacar el SPI externo a pines libres.

Los conectores: repaso completo de los pines

La orientación de las tablas es con la pantalla hacia ti y el USB‑C abajo.

Tira izquierda, de arriba abajo

PinPosibilidadesLímites y buenos usos
GNDMasaDos pines seguidos
GNDMasa—
GPIO21Entrada/salida digitalEl SDA recomendado para I²C
GPIO22Entrada/salida digitalEl SCL recomendado para I²C
GPIO17Entrada/salida digitalUno de los GPIO libres menos problemáticos; sirve para UART TX o PWM
GPIO2ADC2, Touch2, E/S digitalPin de strapping: el circuito externo no debe imponer un nivel erróneo al arrancar
GPIO15ADC2, Touch3, E/S digitalStrapping y JTAG; usar con cuidado
GPIO13ADC2, Touch4, E/S digitalSe cruza con el JTAG, pero suele ser utilizable después del arranque
GPIO12ADC2, Touch5, E/S digitalStrapping y JTAG; aquí una carga externa activa durante el reinicio es especialmente inconveniente
GNDMasaDos pines seguidos
GNDMasa—
3V3Alimentación de 3,3 VNo es un GPIO

Tira derecha, de arriba abajo

PinPosibilidadesLímites y buenos usos
3V3Alimentación de 3,3 VNo es un GPIO
GPIO36 / SVPADC1_CH0, entrada digitalSolo entrada, sin resistencia interna
GPIO37ADC1_CH1, entrada digitalSolo entrada, sin resistencia interna
GPIO38ADC1_CH2, entrada digitalSolo entrada, sin resistencia interna
GPIO39 / SVNADC1_CH3, entrada digitalSolo entrada, sin resistencia interna
GPIO32ADC1_CH4, Touch9, E/S digitalExcelente GPIO de propósito general y entrada analógica que sigue funcionando con el Wi‑Fi activo
GPIO33ADC1_CH5, Touch8, E/S digitalExcelente GPIO de propósito general y entrada analógica que sigue funcionando con el Wi‑Fi activo
GPIO25ADC2_CH8, DAC1, E/S digitalUn DAC de 8 bits de verdad; cómodo como salida, como PWM o como SCK de un SPI externo
GPIO26ADC2_CH9, DAC2, E/S digitalEl segundo DAC de 8 bits de verdad; cómodo como MOSI de un SPI externo
GPIO27ADC2_CH7, Touch7, E/S digitalGPIO de propósito general; cómodo como MISO de un SPI externo
GNDMasa—
5VRaíl de alimentación de 5 VNo es un GPIO ni señal de lógica de 5 V

SVP y SVN son los nombres históricos de las entradas analógicas SENSOR_VP y SENSOR_VN, es decir, GPIO36 y GPIO39. No son pines de alimentación.

Cómo elegir los GPIO sin sorpresas desagradables

Para entradas y salidas digitales corrientes, los primeros candidatos son GPIO17, 21, 22, 25, 26, 27, 32 y 33. Tiene sentido reservar GPIO21/22 para el I²C.

Para un segundo bus SPI, el ejemplo oficial de fábrica de LILYGO usa un grupo cómodo:

Señal del SPI externoGPIO
SCK25
MOSI26
MISO27
CS33

Para sensores analógicos con el Wi‑Fi encendido hay que elegir el ADC1: GPIO32, 33, 36, 37, 38 o 39. En el ESP32 clásico el ADC2 comparte un recurso con el Wi‑Fi, así que leer GPIO2/12/13/15/25/26/27 como entradas analógicas mientras la radio funciona puede sencillamente no salir bien. Los GPIO36–39, además, solo sirven como entrada y necesitan una resistencia externa si el sensor o el botón la requieren.

Hay tres reglas más que ahorran especialmente mucho tiempo:

  1. GPIO0, 2, 5, 12 y 15 se leen durante el reinicio como pines de strapping. Los periféricos conectados no deben forzar sus niveles de arranque.
  2. GPIO34–39 son solo entradas y no tienen pull-up/pull-down por software. En la propia placa, GPIO34 y GPIO35 ya están ocupados por la batería y por un botón.
  3. Una carga no se puede alimentar directamente desde un GPIO. Un relé, un motor, un solenoide o una tira de LED potente se gobiernan mediante un transistor, un MOSFET o un driver con las protecciones necesarias.

Alimentación y autonomía

La placa se alimenta por USB‑C y admite una Li‑Po de un elemento a través de un conector de 1,25 mm y dos contactos. La batería se puede cargar en la placa, y su tensión medirse en GPIO34 una vez habilitado el circuito de medida con GPIO14. Es cómodo para un indicador de carga propio, pero el porcentaje no se obtiene de forma fiable con una simple fórmula lineal: la tensión de una Li‑Po varía de manera no lineal y el ADC del ESP32 original necesita calibración.

No conviene confundir la T-Display con un sensor de consumo ultrabajo solo porque el ESP32 sepa entrar en deep sleep. Medidas de aficionados sobre la placa clásica dan órdenes de magnitud de unos 66 mA en funcionamiento, 80–140 mA con el Wi‑Fi activo y alrededor de 9 mA en light sleep. No son garantías de hoja de características: el resultado depende del brillo, del firmware, de la calidad de la alimentación y de la revisión de la placa. La conclusión práctica principal es apagar o atenuar la retroiluminación, desconectar la radio entre sesiones y despertar el aparato con un botón o un temporizador.

Qué se construye con una T-Display: tres casos ilustrativos

1. Una pantalla local de Home Assistant

Uno de los usos más naturales es mostrar una temperatura, el consumo eléctrico, el estado de la calefacción o cualquier entidad de Home Assistant. En un proyecto publicado, la placa muestra la temperatura del horno mediante ESPHome, pero la misma plantilla sirve para la hora del próximo tren, el nivel de un depósito o la velocidad de internet. El valor del caso está en el hardware mínimo: para un panel fijo bastan la propia T-Display y alimentación USB.

2. Un panel de salidas junto a la puerta

El proyecto abierto ttgo-departure-board convierte la placa en un panel de transporte público. El repositorio contiene 33 variantes de firmware para redes de 17 países: el ESP32 se conecta al Wi‑Fi, sincroniza la hora por NTP, consulta una API aproximadamente cada 30 segundos y actualiza la cuenta atrás cada segundo. Los dos botones cambian de parada y controlan la pantalla. Es un buen ejemplo de interfaz en la que 240 × 135 puntos no son pocos: si solo se muestran el sentido, la línea, el andén y los minutos, la información es exactamente la que hace falta antes de salir de casa.

3. Un monitor inalámbrico diminuto

En 2025 llamó la atención un proyecto que envía por Wi‑Fi una imagen reducida del escritorio a una placa T-Display compatible. El ordenador compara los fotogramas y manda solo los píxeles que han cambiado, aplicando agrupación y RLE. Con una imagen casi estática su autor llegó a 60 fotogramas por segundo, y a unos 5 fotogramas por segundo con movimiento intenso, con una latencia por debajo de 100 ms en una red buena. No es un sustituto práctico de un monitor, pero sí una espléndida demostración de cómo un algoritmo de ahorro de tráfico permite exprimir sorprendentemente mucho de un ESP32 y una pantalla SPI pequeña. Importante: en el proyecto se usó una TENSTAR compatible con 16 MB de Flash, así que esa característica no se puede trasladar automáticamente a cualquier LILYGO.

Otro filón popular son los minijuegos. Dos botones, una pantalla en color y bibliotecas ya hechas han permitido crear Space Shooter, Breakout y pequeñas consolas portátiles con varios juegos. Es a la vez entretenimiento y un buen banco de pruebas para aprender sobre sprites, tasa de fotogramas, gestión de botones y manejo de la memoria.

La misma T-Display en tres papeles: conectada a un sensor de temperatura y mostrando 22,6 °C, haciendo de panel domótico con 428 W y 22,6 grados, y ejecutando un juego con una celda Li‑Po enchufada en su conector de batería.
Una placa, tres papeles: medidor portátil, panel de escritorio y consola de bolsillo.

Cuatro montajes del canal con una T-Display

El canal Build Mode ha hecho hasta ahora cuatro montajes con una T-Display. En un vídeo la placa se convierte en un altavoz Bluetooth: el ESP32 recibe música por A2DP, un amplificador MAX98357A mueve un altavoz pequeño y la pantalla muestra un analizador de espectro en tiempo real. En otro lee un sensor de movimiento MPU-6500 por SPI, y una página en el navegador convierte sus lecturas en un modelo 3D. En el tercero mantiene una estructura en equilibrio con el empuje de una sola hélice: un MPU-6500 mide la inclinación y un controlador PID en el ESP32 gobierna el motor a través de un DRV8833. En el cuarto hace de nivel y brújula en una carcasa impresa en 3D, con un MPU-6500, un magnetómetro BMM150 y una celda 18650.

Qué se busca con más frecuencia, y por qué

En los primeros resultados de las búsquedas sobre la T-Display clásica se repiten cuatro temas: el primer arranque, la configuración de TFT_eSPI, el patillaje y los proyectos ya hechos — relojes, meteorología, Home Assistant, paneles MQTT y juegos. Eso refleja con precisión los puntos fuertes y débiles de la placa.

A la gente le atrae poder obtener rápido un resultado vistoso, pero lo que más a menudo la frena es la configuración de esta pantalla concreta. TFT_eSPI necesita el perfil Setup25_TTGO_T_Display.h; en él quedan fijados el ST7789V, la geometría 135 × 240 y los GPIO correctos. En otras pilas hay que tener en cuenta el desplazamiento del área activa de la matriz, el orden de colores BGR y el control separado de la retroiluminación. Un fallo muy ilustrativo: el programa y el propio LCD pueden funcionar, y aun así la pantalla parece negra sencillamente porque GPIO4 no encendió la retroiluminación.

La prueba mínima para Arduino, una vez elegido el perfil de TFT_eSPI, tiene este aspecto:

#include <TFT_eSPI.h>

TFT_eSPI tft;

void setup() {
  pinMode(4, OUTPUT);
  digitalWrite(4, HIGH);

  tft.init();
  tft.setRotation(1);              // 240 × 135
  tft.fillScreen(TFT_BLACK);
  tft.setTextColor(TFT_CYAN, TFT_BLACK);
  tft.drawString("Wi-Fi: OK", 12, 12, 4);
}

void loop() {}

En el IDE de Arduino el fabricante recomienda el perfil ESP32 Dev Module, una frecuencia de CPU de 240 MHz, modo QIO, 4 MB de Flash para la versión corriente, la PSRAM desactivada y una velocidad de subida de 921600. Si el firmware no arranca o el gestor de arranque no responde, GPIO0 se usa como BOOT: mantener el botón, pulsar brevemente Reset, soltar BOOT y repetir la carga.

Puntos fuertes y débiles

A favorEn contra
El panel IPS en color ya viene montado y validado por el diseño de la placaLa pantalla es pequeña y sin capa táctil
Wi‑Fi, Bluetooth clásico y BLELa generación del ESP32 es antigua: sin USB nativo ni las capacidades modernas del ESP32-S3
Dos botones, USB‑C, carga de Li‑Po, control de la bateríaSin PSRAM; los gráficos pesados se comen la SRAM enseguida
Más compacta que un DevKit con un TFT aparteLa pantalla y los circuitos de servicio ocupan un número notable de GPIO
Hay ejemplos de Arduino, PlatformIO, ESP-IDF, TFT_eSPI y LVGLEl ADC2 choca con el Wi‑Fi y los GPIO36–39 solo funcionan como entrada
Va bien para paneles y medidores autónomosLa retroiluminación y el Wi‑Fi limitan el tiempo de trabajo con batería
Dos DAC de verdad en GPIO25/26 y muchas entradas del ADC1Las revisiones difieren en Flash y USB–UART, así que hay que comprobar la especificación de cada unidad

Conclusión

La LILYGO TTGO T-Display no vale por unas características de récord, sino por una disposición bien pensada. Convierte el trabajo invisible de un microcontrolador en una interfaz legible: el aparato comunica su estado de inmediato, muestra medidas, acepta órdenes con dos botones y puede funcionar con batería.

Para un reloj de mesa, un indicador de Home Assistant, un medidor portátil, un mando MQTT, un minijuego o un panel de salidas en red, la T-Display clásica sigue siendo una base muy sensata. Lo importante es tener presentes su edad y sus límites: no confundirla con la T-Display-S3, no contar con PSRAM, cuidar los GPIO de arranque, usar el ADC1 con el Wi‑Fi activo y comprobar el tamaño de la Flash de la placa concreta. Si al proyecto le bastan 240 × 135 puntos y dos botones, la pantalla integrada ahorra no solo componentes, sino el recurso más caro del prototipado: el tiempo que va de la idea al primer resultado que se puede ver.

Todo lo anterior, condensado en una referencia de hardware independiente de la plataforma que puede seguir un agente programador: clases de asignación de pines, reglas eléctricas, la matriz GPIO canónica y un perfil de placa legible por máquina.