Neste tutorial, vamos construir um relógio flip eletrónico usando o LILYGO T-Display S3 Long.
O O T-Display S3 Long é uma placa de desenvolvimento compacta baseada no microcontrolador ESP32-S3. Possui um ecrã colorido largo e alongado. Com suporte a Wi-Fi e Bluetooth, oferece uma excelente plataforma para aplicações orientadas a ecrãs.

O T-Display S3 Long vem com código para um relógio flip com ótimo aspeto (veja acima), mas não é fácil fazer este código funcionar – levou-me 2 dias. Nas secções seguintes, vou mostrar como simplificá-lo e fazê-lo funcionar com o Arduino IDE e o core ESP32 atual 3.3.x.
Peças Necessárias
Vai precisar de um T-Display S3 Long da LILYGO e de um cabo USB-C para programar a placa e testar os exemplos de código.

LILYGO T-Display S3 Long

Cabo 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.
O T-Display S3 Long
O T-Display S3 Long é construído em torno do microcontrolador ESP32-S3R8, que é um processador dual-core LX7 oferecendo WiFi (802.11) e Bluetooth Low Energy (BLE 5), além de suporte para Bluetooth Mesh. A placa inclui 16 MB de memória flash para armazenamento do programa e 8 MB de PSRAM para uso adicional de RAM. Tem deteção de voltagem da bateria no GPIO02, permitindo monitorizar uma bateria ligada.
O ecrã é um TFT LCD capacitivo de 3,4 polegadas, suportando profundidades de cor em modos de 16-bit (RGB565) e 18-bit (RGB666). A sua resolução é de 180 (horizontal, RGB) × 640 (vertical) pixels. O ecrã é ligado via QSPI, permitindo transferências de dados relativamente rápidas, adequadas para aplicações gráficas e de toque.

Os controlos integrados incluem um botão de boot e um botão de reset, bem como um interruptor de hardware para a bateria (ver acima). A alimentação e programação são feitas via USB-C. A placa também inclui funcionalidades para suportar uso a bateria. O consumo de energia é cerca de 140mA com o ecrã ativo e cerca de 50mA com o ecrã desligado.
A tabela seguinte resume as especificações técnicas:
| Parâmetro | Valor |
|---|---|
| Microcontrolador | ESP32-S3R8 (dual-core LX7) |
| Conectividade Wireless | WiFi 802.11, Bluetooth Low Energy 5, Bluetooth Mesh |
| Memória Flash | 16 MB |
| PSRAM | 8 MB |
| Tamanho & Tipo do Ecrã | TFT LCD capacitivo de 3,4 polegadas |
| Profundidade de Cor do Ecrã | RGB565 (16-bit), RGB666 (18-bit) |
| Resolução do Ecrã | 180 (H, RGB) × 640 (V) pixels |
| Interface do Ecrã | QSPI |
| Deteção de Voltagem da Bateria | GPIO02 |
| Controlos Integrados | Botão de boot, botão de reset, interruptor da bateria |
| Interface de Programação / Alimentação | USB-C |
Componentes do T-Display S3 Long
A imagem seguinte mostra os componentes do T-Display S3 Long. Pode ver a frente e o verso do módulo do ecrã. No verso encontra todos os conectores, a antena Wi-Fi e o chip ESP32:

Existem um conector USB-C, conector Qwiic, um conector para bateria LiPo e um conector GPIO. Mais sobre os pinos GPIO disponíveis na próxima secção.
Pinout do T-Display S3 Long
Existe um pequeno conector (passo de 1,27mm) com 30 pinos na parte de trás do módulo. Ele expõe 16 pinos GPIO conforme indicado na etiqueta traseira:

Código para Relógio Flip no T-Display S3 Long
Nesta secção vamos instalar as bibliotecas, descarregar o código e carregar o código do relógio flip para o T-Display S3 Long.
Instalar bibliotecas
Primeiro, vá ao repositório Lilygo no github para o ecrã em T-Display-S3-Long. Clique no botão verde “<> Code” e depois em “Download ZIP” para descarregar o repositório como um ficheiro ZIP:

De seguida, descompacte o ficheiro ZIP para extrair o seu conteúdo. Deve ver os seguintes ficheiros na pasta descompactada:

Precisamos copiar o conteúdo da pasta “lib” para a pasta “libraries” do Arduino IDE. No Windows, a pasta “libraries” está tipicamente localizada em:
C:\Users\<username>\OneDrive\Documents\Arduino\libraries
Como esta pasta já contém bibliotecas instaladas, recomendo que a renomeie temporariamente, por exemplo para “_libraries”, e crie uma nova pasta chamada “libraries”. Assim evita conflitos com as bibliotecas já instaladas e não as perde. A imagem abaixo mostra como a sua pasta “Arduino” deve ficar:

De seguida, copiamos os ficheiros da pasta “lib” (do repositório Lilygo no github) para a nova pasta “libraries”.

E assim fica concluída a instalação das bibliotecas necessárias (lvgl, XPowersLib).
Descarregar código do relógio flip
Pode encontrar o código original do relógio flip no repositório Lilygo no github em T-Display-S3-Long/examples/factory mas em setembro de 2025 não compila. É também demasiado complexo. Por isso, corrigi os erros, simplifiquei e criei uma nova versão que pode descarregar aqui: flip-clock.zip.
Descompacte e deverá ter uma pasta chamada “flip_clock” com o seguinte conteúdo:

Clique duas vezes em “flip_clock.ino” para abrir o projeto no seu Arduino IDE.
Carregar Código para o T-Display S3 Long
Antes de carregar o código do relógio flip para o T-Display S3 Long, deve definir algumas constantes no código. Abra o ficheiro pins_config.h e aí pode definir o seu SSID e PASSWORD do WI-FI, o BL_BRIGHTNESS do ecrã e o TIMEZONE:

O TIMEZONE mostrado acima é para Berlim, na Alemanha. Para outras definições de fuso horário, consulte o Posix Timezones Database. Basta copiar e colar a string que encontrar lá e alterar a constante TIMEZONE em conformidade. O código do relógio flip obtém a hora atual de um servidor de tempo na internet e está assim sempre preciso, mas precisa de acesso Wi-Fi.
De seguida, selecione a placa “ESP32S3 Dev Module” e no menu “Tools” defina os seguintes parâmetros:

Os mais importantes são Flash Size, Partition Scheme e PSRAM. Os outros parâmetros devem estar nos valores por defeito, mas é melhor verificar. As configurações acima funcionaram para mim. Note que a placa usa USB como porta de upload JTAG. Ao imprimir informação da porta serial, a configuração USB_CDC_ON_BOOT precisa estar ativada.
Agora pode carregar o código para o seu T-Display S3 Long e, com sorte, desfrutar de um relógio flip com ótimo aspeto! Se não, leia a secção seguinte.
Não consigo carregar para o T-Display S3 Long
Se algo estiver errado com o código ou bibliotecas, o T-Display S3 Long frequentemente entra num ciclo de crash e será difícil carregar novo código. Existem muitas sugestões na internet para contornar isto, mas nenhuma funcionou de forma fiável para mim. O que funcionou foi a seguinte sequência:
- Desligue o cabo USB do computador
- Pressione e mantenha pressionado o botão “Reset” do T-Display S3 Long
- Ligue o cabo USB
- Libere o botão “Reset”
Note que o botão “Reset” é o botão à direita (visto do verso da placa):

Outras sugestões como “Pressionar Boot” ou “Pressionar Boot, manter, pressionar Reset, soltar Reset, soltar Boot” não funcionaram para mim.
Modificações no código do Relógio Flip
O código demo original para o T-Display S3 Long funciona para alguns exemplos, mas em setembro de 2025 não funciona para o relógio flip, que é o que toda a gente quer ; )
Além disso, o código original do relógio flip é bastante complexo e cria quatro páginas (relógio, logo Lilygo, info do dispositivo, códigos QR). Eu reduzi para duas páginas mostrando apenas o relógio e a info do dispositivo:

Como no código original, pode alternar entre as páginas deslizando verticalmente o dedo no ecrã tátil.
Também simplifiquei bastante o código original, mas ainda há trabalho para o tornar realmente limpo. No entanto, a nova versão deve ser simples o suficiente para alterar ou adicionar a sua própria funcionalidade.
Conclusão
Neste tutorial aprendeu como executar um relógio flip no módulo LILYGO T-Display S3 Long.
Com o código simplificado do relógio flip, deve ter um bom ponto de partida para adicionar a sua própria funcionalidade, por exemplo, um calendário numa segunda página, ajuste automático do brilho do ecrã conforme a luz ambiente medida por um LDR, um sensor PIR para ativar o ecrã apenas quando detetar movimento, e modo deep-sleep para preservar a bateria.
Note que o T-Display S3 Long usa o driver de ecrã AXS15231B, que atualmente não é suportado pelo TFT_eSPI library. Terá de usar a biblioteca LVGL, que é mais poderosa mas também mais complexa. No entanto, permite criar interfaces de utilizador com ótimo aspeto usando SquareLine Studio.
Se estiver interessado em relógios baseados em ESP32 em geral, veja os seguintes tutoriais:
- Digital Clock on CrowPanel 1.28″ Round Display
- Digital Clock on e-Paper Display
- How to synchronize ESP32 clock with SNTP server
- LED Ring Clock with WS2812
- Digital Clock with CrowPanel 3.5″ ESP32 Display
- Analog Clock on e-Paper Display
Se tiver alguma dúvida, sinta-se à vontade para deixar nos comentários.
Boas experiências a fazer tinkering 😉

