Dans ce tutoriel, nous allons construire une horloge à bascule électronique en utilisant le LILYGO T-Display S3 Long.
Le T-Display S3 Long est une carte de développement compacte basée sur le microcontrôleur ESP32-S3. Elle dispose d’un écran couleur large et allongé. Avec la prise en charge du Wi-Fi et du Bluetooth, elle offre une excellente plateforme pour des applications orientées affichage.

Le T-Display S3 Long est livré avec un code pour une horloge à bascule très esthétique (voir ci-dessus), mais il n’est pas facile de faire fonctionner ce code – cela m’a pris 2 jours. Dans les sections suivantes, je vais montrer comment le simplifier et le faire fonctionner avec l’IDE Arduino et le core ESP32 3.3.x actuel.
Pièces requises
Vous aurez besoin d’un T-Display S3 Long de LILYGO et d’un câble USB-C pour programmer la carte et tester les exemples de code.

LILYGO T-Display S3 Long

Câble 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.
Le T-Display S3 Long
Le T-Display S3 Long est construit autour du microcontrôleur ESP32-S3R8, un processeur dual-core LX7 offrant à la fois le WiFi (802.11) et le Bluetooth Low Energy (BLE 5), ainsi que la prise en charge du Bluetooth Mesh. La carte inclut 16 Mo de mémoire flash pour le stockage des programmes et 8 Mo de PSRAM pour une RAM supplémentaire. Elle dispose d’une détection de tension de batterie sur GPIO02, permettant de surveiller une batterie connectée.
L’écran est un TFT LCD capacitif tactile de 3,4 pouces, supportant des profondeurs de couleur en modes 16 bits (RGB565) et 18 bits (RGB666). Sa résolution est de 180 (horizontal, RGB) × 640 (vertical) pixels. L’écran est connecté via QSPI, permettant des transferts de données relativement rapides adaptés aux applications graphiques et tactiles.

Les contrôles embarqués comprennent un bouton de démarrage et un bouton de réinitialisation, ainsi qu’un interrupteur matériel pour la batterie (voir ci-dessus). L’alimentation et la programmation se font via USB-C. La carte inclut également des fonctionnalités pour une utilisation sur batterie. La consommation est d’environ 140mA avec l’écran actif et environ 50mA avec l’écran éteint.
Le tableau suivant résume les spécifications techniques :
| Paramètre | Valeur |
|---|---|
| Microcontrôleur | ESP32-S3R8 (dual-core LX7) |
| Connectivité sans fil | WiFi 802.11, Bluetooth Low Energy 5, Bluetooth Mesh |
| Mémoire Flash | 16 Mo |
| PSRAM | 8 Mo |
| Taille & type d’écran | TFT LCD capacitif tactile de 3,4 pouces |
| Profondeur de couleur de l’écran | RGB565 (16 bits), RGB666 (18 bits) |
| Résolution de l’écran | 180 (H, RGB) × 640 (V) pixels |
| Interface d’écran | QSPI |
| Détection de tension batterie | GPIO02 |
| Contrôles embarqués | Bouton de démarrage, bouton de réinitialisation, interrupteur batterie |
| Interface de programmation / alimentation | USB-C |
Composants du T-Display S3 Long
L’image suivante montre les composants du T-Display S3 Long. Vous pouvez voir le devant et le dos du module d’affichage. À l’arrière, vous trouverez tous les connecteurs, l’antenne Wi-Fi et la puce ESP32 :

On trouve un connecteur USB-C, un connecteur Qwiic, un connecteur pour batterie LiPo et un connecteur GPIO. Plus d’informations sur les broches GPIO disponibles dans la section suivante.
Brochage du T-Display S3 Long
Un petit connecteur (pas de 1,27 mm) avec 30 broches se trouve à l’arrière du module. Il expose 16 broches GPIO comme indiqué sur l’étiquette arrière :

Code pour l’horloge à bascule sur T-Display S3 Long
Dans cette section, nous allons installer les bibliothèques, télécharger le code et téléverser le code de l’horloge à bascule sur le T-Display S3 Long.
Installer les bibliothèques
Commencez par aller sur le dépôt GitHub de Lilygo pour l’écran à T-Display-S3-Long. Cliquez sur le bouton vert « <> Code » puis sur « Download ZIP » pour télécharger le dépôt en fichier ZIP :

Ensuite, décompressez le fichier ZIP pour en extraire le contenu. Vous devriez voir les fichiers suivants dans le dossier décompressé :

Nous devons copier le contenu du dossier « lib » dans le dossier « libraries » de l’IDE Arduino. Sous Windows, le dossier « libraries » se trouve généralement sous :
C:\Users\<username>\OneDrive\Documents\Arduino\libraries
Comme ce dossier contient déjà des bibliothèques installées, je vous recommande de le renommer temporairement, par exemple en « _libraries », puis de créer un nouveau dossier nommé « libraries ». Ainsi, vous évitez les conflits avec vos bibliothèques déjà installées sans les perdre. L’image ci-dessous montre à quoi devrait ressembler votre dossier « Arduino » :

Ensuite, copiez les fichiers du dossier « lib » (du dépôt GitHub Lilygo) dans le nouveau dossier « libraries ».

Cela complète l’installation des bibliothèques requises (lvgl, XPowersLib).
Télécharger le code de l’horloge à bascule
Vous pouvez trouver le code original de l’horloge à bascule dans le dépôt GitHub de Lilygo sous T-Display-S3-Long/examples/factory mais en septembre 2025, il ne compile pas. Il est aussi trop complexe. J’ai corrigé les erreurs, simplifié le code et créé une nouvelle version que vous pouvez télécharger ici : flip-clock.zip.
Décompressez-le et vous devriez avoir un dossier nommé « flip_clock » avec le contenu suivant :

Double-cliquez sur « flip_clock.ino » pour ouvrir le projet dans votre IDE Arduino.
Téléverser le code sur le T-Display S3 Long
Avant de téléverser le code de l’horloge à bascule sur le T-Display S3 Long, vous devez définir quelques constantes dans le code. Ouvrez le fichier pins_config.h et vous pourrez y configurer votre SSID et MOT DE PASSE Wi-Fi, la luminosité BL_BRIGHTNESS de l’écran et le FUSEAU_HORAIRE :

Le FUSEAU_HORAIRE montré ci-dessus correspond à Berlin en Allemagne. Pour d’autres définitions de fuseaux horaires, consultez le Posix Timezones Database. Il suffit de copier-coller la chaîne que vous y trouvez et de modifier la constante TIMEZONE en conséquence. Le code de l’horloge à bascule récupère l’heure actuelle depuis un serveur de temps internet et est donc toujours précis, mais nécessite un accès Wi-Fi.
Ensuite, sélectionnez « ESP32S3 Dev Module » comme carte et dans le menu « Tools », réglez les paramètres suivants :

Les plus importants sont la taille de la Flash, le schéma de partition et la PSRAM. Les autres paramètres doivent être ceux par défaut, mais vérifiez quand même. Les réglages ci-dessus ont fonctionné pour moi. Notez que la carte utilise l’USB comme port de téléversement JTAG. Lors de l’affichage des informations du port série, la configuration USB_CDC_ON_BOOT doit être activée.
Vous pouvez maintenant téléverser le code sur votre T-Display S3 Long et profiter, espérons-le, d’une superbe horloge à bascule ! Sinon, lisez la section suivante.
Impossible de téléverser sur le T-Display S3 Long
Si quelque chose ne va pas avec le code ou les bibliothèques, le T-Display S3 Long entre souvent dans une boucle de plantage et il devient difficile de téléverser un nouveau code. Il existe de nombreuses suggestions sur internet pour contourner ce problème, mais aucune n’a fonctionné de manière fiable pour moi. Ce qui a fonctionné est la séquence suivante :
- Débranchez le câble USB de votre ordinateur
- Appuyez et maintenez le bouton « Reset » du T-Display S3 Long
- Branchez le câble USB
- Relâchez le bouton « Reset »
Notez que le bouton « Reset » est celui de droite (vu de l’arrière de la carte) :

D’autres suggestions comme « Appuyer sur Boot » ou « Appuyer sur Boot, maintenir, appuyer sur Reset, relâcher Reset, relâcher Boot » n’ont pas fonctionné pour moi.
Modifications du code de l’horloge à bascule
Le code démo original pour le T-Display S3 Long fonctionne pour certains exemples mais, en septembre 2025, pas pour l’horloge à bascule, qui est celle que tout le monde veut ; )
De plus, le code original de l’horloge à bascule est assez complexe et crée quatre pages (horloge, logo Lilygo, infos appareil, codes QR). J’ai réduit cela à deux pages affichant uniquement l’horloge et les infos appareil :

Comme dans le code original, vous pouvez changer de page en glissant verticalement votre doigt sur l’écran tactile.
J’ai aussi simplifié considérablement le code original, mais il reste du travail pour le rendre vraiment propre. Cependant, la nouvelle version devrait être assez simple pour que vous puissiez la modifier ou y ajouter vos propres fonctionnalités.
Conclusion
Dans ce tutoriel, vous avez appris à faire fonctionner une horloge à bascule sur le module LILYGO T-Display S3 Long.
Avec le code simplifié de l’horloge à bascule, vous disposez d’une bonne base pour ajouter vos propres fonctionnalités, par exemple un affichage calendrier sur une deuxième page, un réglage automatique de la luminosité de l’écran selon la lumière ambiante mesurée par une LDR, un capteur PIR pour activer l’écran uniquement en cas de détection de mouvement, et un mode deep-sleep pour économiser la batterie.
Notez que le T-Display S3 Long utilise le driver d’écran AXS15231B, qui n’est actuellement pas supporté par le TFT_eSPI library. Vous devrez utiliser la bibliothèque LVGL, qui est plus puissante mais aussi plus complexe. Cependant, elle vous permet de concevoir des interfaces utilisateur vraiment élégantes avec SquareLine Studio.
Si vous êtes intéressé par les horloges basées sur ESP32 en général, jetez un œil aux tutoriels suivants :
- 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
Si vous avez des questions, n’hésitez pas à les poser dans la section commentaires.
Bon bricolage 😉

