Skip to Content

Reloj de Flip con LILYGO T-Display S3 Long

Reloj de Flip con LILYGO T-Display S3 Long

En este tutorial vamos a construir un reloj de flip electrónico usando el LILYGO T-Display S3 Long.

El T-Display S3 Long es una placa de desarrollo compacta basada en el microcontrolador ESP32-S3. Cuenta con una pantalla color alargada y ancha. Con soporte para Wi-Fi y Bluetooth, ofrece una excelente plataforma para aplicaciones orientadas a la visualización.

Flip Clock on T-Display S3 Long
Reloj Flip en T-Display S3 Long

El T-Display S3 Long viene con código para un reloj flip de gran apariencia (ver arriba), pero no es fácil hacer que este código funcione – me tomó 2 días. En las siguientes secciones, mostraré cómo simplificarlo y hacerlo funcionar con el IDE de Arduino y el núcleo ESP32 actual 3.3.x.

Partes necesarias

Necesitarás un T-Display S3 Long de LILYGO y un cable USB-C para programar la placa y probar los ejemplos de código.

LILYGO T-Display S3 Long

Cable USB C

Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.

El T-Display S3 Long

El T-Display S3 Long está construido alrededor del microcontrolador ESP32-S3R8, que es un procesador dual-core LX7 que ofrece WiFi (802.11) y Bluetooth Low Energy (BLE 5), además de soporte para Bluetooth Mesh. La placa incluye 16 MB de memoria flash para almacenamiento de programas y 8 MB de PSRAM para uso adicional de RAM. Tiene detección de voltaje de batería en GPIO02, permitiendo monitorear una batería conectada.

La pantalla es una TFT LCD capacitiva táctil de 3.4 pulgadas, que soporta profundidades de color en modos de 16 bits (RGB565) y 18 bits (RGB666). Su resolución es de 180 (horizontal, RGB) × 640 (vertical) píxeles. La pantalla se conecta vía QSPI, permitiendo transferencias de datos relativamente rápidas adecuadas para aplicaciones gráficas y táctiles.

Onboard controls of T-Display S3 Long
Controles integrados del T-Display S3 Long

Los controles integrados incluyen un botón de arranque y un botón de reinicio, así como un interruptor de hardware para la batería (ver arriba). La alimentación y programación se manejan vía USB-C. La placa también incluye características para soportar uso con batería. El consumo de energía es de alrededor de 140mA con la pantalla activa y alrededor de 50mA con la pantalla apagada.

La siguiente tabla resume la especificación técnica:

ParámetroValor
MicrocontroladorESP32-S3R8 (dual-core LX7)
Conectividad inalámbricaWiFi 802.11, Bluetooth Low Energy 5, Bluetooth Mesh
Memoria Flash16 MB
PSRAM8 MB
Tamaño y tipo de pantallaTFT LCD capacitiva táctil de 3.4 pulgadas
Profundidades de color de pantallaRGB565 (16 bits), RGB666 (18 bits)
Resolución de pantalla180 (H, RGB) × 640 (V) píxeles
Interfaz de pantallaQSPI
Detección de voltaje de bateríaGPIO02
Controles integradosBotón de arranque, botón de reinicio, interruptor de batería
Interfaz de programación / alimentaciónUSB-C

Componentes del T-Display S3 Long

La siguiente imagen muestra los componentes del T-Display S3 Long. Puedes ver el frente y la parte trasera del módulo de pantalla. En la parte trasera se encuentran todos los conectores, la antena Wi-Fi y el chip ESP32:

Pinout of the T-Display S3 Long
Componentes del T-Display S3 Long (source)

Hay un conector USB-C, conector Qwiic, un conector para batería LiPo y un conector GPIO. Más sobre los pines GPIO disponibles en la siguiente sección.

Pinout del T-Display S3 Long

Hay un pequeño conector (paso 1.27mm) con 30 pines en la parte trasera del módulo. Expone 16 pines GPIO como se indica en la etiqueta trasera:

Pinout of the T-Display S3 Long
Pinout del T-Display S3 Long

Código para Reloj Flip en T-Display S3 Long

En esta sección instalaremos las librerías, descargaremos el código y subiremos el código del reloj flip al T-Display S3 Long.

Instalar librerías

Primero ve al repositorio de Lilygo en github para la pantalla en T-Display-S3-Long. Haz clic en el botón verde «<> Code» y luego en «Download ZIP» para descargar el repositorio como un archivo ZIP:

Luego descomprime el archivo ZIP para extraer su contenido. Deberías ver los siguientes archivos en la carpeta descomprimida:

Necesitamos copiar el contenido de la carpeta «lib» dentro de la carpeta «libraries» del IDE de Arduino. En Windows, la carpeta «libraries» suele estar ubicada en:

C:\Users\<username>\OneDrive\Documents\Arduino\libraries

Como esta carpeta ya contiene librerías instaladas, recomiendo renombrarla temporalmente, por ejemplo a «_libraries», y crear una nueva carpeta llamada «libraries». Así evitas conflictos con las librerías ya instaladas y tampoco las pierdes. La imagen abajo muestra cómo debería verse tu carpeta «Arduino»:

Luego copiamos los archivos de la carpeta «lib» (del repositorio de Lilygo en github) dentro de la nueva carpeta «libraries».

Y con eso se completa la instalación de las librerías requeridas (lvgl, XPowersLib).

Descargar código del reloj flip

Puedes encontrar el código original para el reloj flip en el repositorio de Lilygo en github bajo T-Display-S3-Long/examples/factory pero a partir de septiembre de 2025 no compila. Además, es demasiado complejo. Por eso corregí los errores, lo simplifiqué y creé una nueva versión que puedes descargar aquí: flip-clock.zip.

Descomprímelo y deberías tener una carpeta llamada «flip_clock» con el siguiente contenido:

Haz doble clic en «flip_clock.ino» para abrir el proyecto en tu IDE de Arduino.

Subir código al T-Display S3 Long

Antes de subir el código del reloj flip al T-Display S3 Long, debes configurar algunas constantes en el código. Abre el archivo pins_config.h y allí puedes establecer tu SSID y PASSWORD de WI-FI, el BL_BRIGHTNESS de la pantalla y la TIMEZONE:

La TIMEZONE mostrada arriba es para Berlín en Alemania. Para otras definiciones de zona horaria, consulta Posix Timezones Database. Solo copia y pega la cadena que encuentres allí y cambia la constante TIMEZONE en consecuencia. El código del reloj flip obtiene la hora actual de un servidor de tiempo en internet y por eso siempre es preciso, pero necesita acceso Wi-Fi.

Luego, selecciona «ESP32S3 Dev Module» como placa y en el menú «Tools» configura los siguientes parámetros:

Tools Settings in Arduino IDE
Configuración de Tools en Arduino IDE

Lo más importante son Flash Size, Partition Scheme y PSRAM. Los otros parámetros deberían estar en valores por defecto, pero mejor revísalos. La configuración anterior me funcionó. Ten en cuenta que la placa usa USB como puerto de carga JTAG. Al imprimir información del puerto serial, la configuración USB_CDC_ON_BOOT debe estar activada.

Ahora puedes subir el código a tu T-Display S3 Long y, con suerte, disfrutar de un reloj flip de gran apariencia. Si no, lee la siguiente sección.

No se puede subir al T-Display S3 Long

Si algo está mal con el código o las librerías, el T-Display S3 Long a menudo entra en un bucle de fallo y será difícil subir nuevo código. Hay muchas sugerencias en internet para evitar esto, pero ninguna me funcionó de forma fiable. Lo que funcionó es la siguiente secuencia:

  • Desconecta el cable USB de tu ordenador
  • Mantén presionado el botón «Reset» del T-Display S3 Long
  • Conecta el cable USB
  • Suelta el botón «Reset»

Ten en cuenta que el botón «Reset» es el botón de la derecha (visto desde la parte trasera de la placa):

Otras sugerencias como «Presionar Boot» o «Presionar Boot, mantener, presionar Reset, soltar Reset, soltar Boot» no me funcionaron.

Modificaciones al código del reloj flip

El código demo original para T-Display S3 Long funciona para algunos ejemplos, pero a partir de septiembre de 2025 no para el reloj flip, que es el que todos quieren ; )

Además, el código original del reloj flip es bastante complejo y crea cuatro páginas (reloj, logo Lilygo, info del dispositivo, códigos QR). Yo reduje esto a dos páginas mostrando solo el reloj y la info del dispositivo:

Como en el código original, puedes cambiar entre las páginas deslizando verticalmente el dedo sobre la pantalla táctil.

También simplifiqué bastante el código original, pero queda trabajo para dejarlo realmente limpio. Sin embargo, la nueva versión debería ser lo suficientemente simple para modificarla o añadir tu propia funcionalidad.

Conclusión

En este tutorial aprendiste cómo ejecutar un reloj flip en el módulo LILYGO T-Display S3 Long.

Con el código simplificado del reloj flip deberías tener un buen punto de partida para añadir tu propia funcionalidad, por ejemplo, una pantalla de calendario en una segunda página, ajuste automático del brillo de la pantalla según la luz ambiental medida por un LDR, un sensor PIR para activar la pantalla solo cuando se detecta movimiento, y modo deep-sleep para conservar la batería.

Ten en cuenta que el T-Display S3 Long usa el controlador de pantalla AXS15231B, que actualmente no es compatible con TFT_eSPI library. Tendrás que usar la librería LVGL, que es más potente pero también más compleja. Sin embargo, te permite diseñar interfaces de usuario realmente atractivas usando SquareLine Studio.

Si te interesan los relojes basados en ESP32 en general, echa un vistazo a los siguientes tutoriales:

Si tienes alguna pregunta, no dudes en dejarla en la sección de comentarios.

¡Feliz bricolaje! 😉