Qu'est-ce que l'ILI9881C
L'ILI9881C est un driver Ilitek pour panneaux TFT MIPI DSI, généralement des panneaux portrait 720×1280 ou 800×1280. Il ne dispose pas d'interface pixels SPI ou RGB : les commandes et les pixels transitent tous deux par le DSI. Ilitek ne publie pas sa datasheet en accès libre ; la référence pratique est le driver Linux mainline, panel-ilitek-ili9881c.c, plus la table d'initialisation fournie par le fabricant de votre panneau.
Un contrôleur, plusieurs tables d'initialisation
Le driver Linux n'est pas une configuration unique. Il embarque une table d'initialisation, des timings d'affichage et un nombre de lanes distincts pour chaque panneau qu'il prend en charge. Les panneaux listés dans le mainline incluent :
- Raspberry Pi Touch Display 2, 5″ et 7″ (
raspberrypi,dsi-5inch,raspberrypi,dsi-7inch) : 720×1280, 2 data lanes. - Waveshare 7.0″ DSI Touch A : 2 data lanes.
- Panneaux de Banana Pi, Startek, TDO, Feixin, Bestar, Wanchanglong et Ampire : 720×1280 ou 800×1280, sur 2 ou 4 lanes selon le panneau.
Deux panneaux avec le même contrôleur peuvent tout de même nécessiter des tables d'initialisation et des timings différents. Si vous copiez une table d'initialisation d'une autre carte, l'écran peut rester noir ou afficher des bandes alors même que le lien DSI est établi. Partez de la table correspondant à votre panneau exact.
Le Linux mainline propose un driver ILI9881C mais aucune entrée pour l'ILI9881D. Considérez qu'un panneau ILI9881D, comme notre PJ5015B14 (4.99″ 720×1280 IPS), requiert sa propre table d'initialisation et ses propres timings issus de la datasheet du panneau.
Séquence de mise sous tension dans le driver Linux
Le driver mainline met en route un panneau dans cet ordre :
- Activer IOVCC, attendre 5 ms, puis activer l'alimentation principale et attendre 5 ms.
- Maintenir le reset pendant 20 ms, le relâcher, puis attendre 20 ms.
- Envoyer la table d'initialisation du panneau. L'ILI9881C utilise des commandes de commutation de page pour accéder à ses registres constructeur.
- Revenir à la page 0, activer la sortie tearing-effect et envoyer Exit Sleep.
- Attendre 120 ms, puis envoyer Display On.
Raspberry Pi : le Touch Display 2
La documentation de Raspberry Pi charge le Touch Display 2 avec ces overlays :
dtoverlay=vc4-kms-dsi-ili9881-5inchdtoverlay=vc4-kms-dsi-ili9881-7inch
Ajoutez ,dsi0 pour utiliser l'autre port DSI. Les modèles 5″ et 7″ sont tous deux en 720×1280 avec toucher cinq points. Le modèle 10″ utilise un autre contrôleur et un autre overlay (vc4-kms-dsi-ili79600-10-1inch) et nécessite quatre lanes DSI.
Un panneau ILI9881C ou ILI9881D personnalisé sur un Pi nécessite un device-tree overlay désignant une entrée de panneau correspondante. Réutiliser l'overlay du Touch Display 2 ne fonctionne que si le panneau correspond réellement à cette table d'initialisation et à ces timings.
ESP32-P4 et le M5Stack Tab5
Le driver mipi_dsi d'ESPHome fait fonctionner des panneaux ILI9881C sur l'ESP32-P4, avec 1 ou 2 data lanes (2 par défaut). Le M5Stack Tab5 illustre la fragilité de ce choix. ESPHome documente trois versions matérielles :
- Fabriquées avant le 14 octobre 2025 : driver d'affichage ILI9881C avec un contrôleur tactile GT911 séparé. Utilisez le modèle
M5STACK-TAB5. - Unités plus récentes : un contrôleur d'affichage et tactile intégré, soit un ST7123 (
M5STACK-TAB5-ST7123), soit un ST7121 (M5STACK-TAB5-ST7121).
Les trois séquences d'initialisation ne sont pas interchangeables. Si vous choisissez le mauvais modèle d'affichage, l'écran reste simplement sombre et rien d' pertinent n'est journalisé. Un mauvais driver tactile génère en revanche une erreur dans le journal ; ESPHome suggère donc d'identifier la carte d'abord par le driver tactile.
Checklist de mise en service
- Confirmez le nombre de lanes et le mode DSI (video, sync-pulse ou burst) à partir de la datasheet du panneau ; les réglages de l'hôte doivent correspondre.
- Utilisez la table d'initialisation de votre panneau exact, pas seulement celle correspondant au nom du contrôleur.
- Vérifiez la séquence de reset et d'alimentation. Certaines cartes commandent le reset ou l'alimentation via un IO expander.
- Un rétroéclairage allumé sans image signifie généralement une mauvaise table d'initialisation, un mauvais nombre de lanes ou une incompatibilité de timings DSI, et non un panneau mort.
Pour le choix des interfaces, voir MIPI DSI vs LVDS vs eDP et la page interface MIPI DSI.
Guides et comparatifs
ILI9881C : dépannage et FAQ
Puis-je réutiliser l'overlay du Raspberry Pi Touch Display 2 pour un autre panneau ILI9881C ?
Uniquement si le panneau correspond à cette table d'initialisation, à ces timings et à cette configuration 2 lanes. Le driver Linux mainline conserve une table d'initialisation, un mode et un nombre de lanes distincts pour chaque panneau pris en charge ; un autre panneau ILI9881C nécessite donc généralement sa propre entrée de panneau et son propre overlay.
Mon écran M5Stack Tab5 reste sombre dans ESPHome. Quel modèle choisir ?
ESPHome documente trois versions du Tab5 : les unités fabriquées avant le 14 octobre 2025 utilisent l'ILI9881C avec un contrôleur tactile GT911 (M5STACK-TAB5) ; les unités plus récentes utilisent un ST7123 (M5STACK-TAB5-ST7123) ou un ST7121 (M5STACK-TAB5-ST7121). Un mauvais modèle d'affichage échoue silencieusement, tandis qu'un mauvais driver tactile journalise une erreur : identifiez donc la carte d'abord par le driver tactile.
L'ILI9881D est-il identique à l'ILI9881C ?
Ne le présumez pas. Le noyau Linux mainline comporte un pilote ILI9881C mais aucune entrée pour l'ILI9881D : un panneau ILI9881D nécessite donc sa propre table d'initialisation et ses propres timings issus de la fiche technique du panneau.
Combien de lanes DSI utilise un panneau ILI9881C ?
Cela dépend du panneau. Dans le pilote Linux mainline, les entrées Raspberry Pi 5″/7″ et Waveshare 7″ utilisent 2 lanes, tandis que plusieurs panneaux 720×1280 et 800×1280 en utilisent 4. Adaptez la configuration de l'hôte à la fiche technique de votre panneau.