ILI9881Cとは
ILI9881Cは、MIPI DSI接続のTFTパネル(主に720×1280または800×1280のポートレート型パネル)向けのIlitek製ドライバICです。SPIやRGBのピクセルインターフェースを持たず、コマンドもピクセルデータもすべてDSI経由で送受信します。Ilitekはデータシートを公開していないため、実質的なリファレンスはLinuxメインラインのドライバpanel-ilitek-ili9881c.cと、パネルメーカーから提供されるイニシャライズテーブルです。
1つのコントローラ、多数のイニシャライズテーブル
Linuxドライバは単一の設定ではありません。サポートする各パネルについて、個別のイニシャライズテーブル、表示タイミング、レーン数を保持しています。メインラインに登録されているパネルには以下があります:
- Raspberry Pi Touch Display 2(5″および7″)(
raspberrypi,dsi-5inch、raspberrypi,dsi-7inch):720×1280、データ2レーン。 - Waveshare 7.0″ DSI Touch A:データ2レーン。
- Banana Pi、Startek、TDO、Feixin、Bestar、Wanchanglong、Ampire製のパネル:720×1280または800×1280、レーン数はパネルに応じて2または4。
同じコントローラを搭載する2つのパネルでも、イニシャライズテーブルやタイミングが異なる場合があります。別のボードからイニシャライズテーブルを流用すると、DSIリンクが確立していても画面が真っ暗になったり縞模様が表示されたりすることがあります。必ずお使いのパネルに対応するテーブルから始めてください。
メインラインLinuxにはILI9881Cのドライバがありますが、ILI9881Dのエントリはありません。弊社のPJ5015B14(4.99″ 720×1280 IPS)のようなILI9881Dパネルは、パネルのデータシートに基づく専用のイニシャライズテーブルとタイミングが必要と考えてください。
Linuxドライバにおける電源投入シーケンス
メインラインのドライバは、次の順序でパネルを起動します:
- IOVCCを有効にして5 ms待機し、次に主電源を有効にして5 ms待機します。
- リセットを20 msアサートした後に解放し、さらに20 ms待機します。
- パネルのイニシャライズテーブルを送信します。ILI9881Cはページ切り替えコマンドでベンダーレジスタにアクセスします。
- ページ0に戻り、テリングエフェクト出力を有効にして、Exit Sleepを送信します。
- 120 ms待機してから、Display Onを送信します。
Raspberry Pi:Touch Display 2
Raspberry Piのドキュメントでは、以下のオーバーレイでTouch Display 2を有効にします:
dtoverlay=vc4-kms-dsi-ili9881-5inchdtoverlay=vc4-kms-dsi-ili9881-7inch
もう一方のDSIポートを使う場合は,dsi0を追加します。5″モデルと7″モデルはどちらも720×1280で5点タッチに対応します。10″モデルは別のコントローラとオーバーレイ(vc4-kms-dsi-ili79600-10-1inch)を使用し、DSI 4レーンが必要です。
Piで独自のILI9881CまたはILI9881Dパネルを使用するには、対応するパネルエントリを指定するデバイスツリーオーバーレイが必要です。Touch Display 2のオーバーレイを流用できるのは、パネルがそのイニシャライズテーブルとタイミングに実際に合致する場合のみです。
ESP32-P4とM5Stack Tab5
ESPHomeのmipi_dsiドライバは、ESP32-P4上でILI9881Cパネルをデータ1または2レーン(デフォルトは2)で駆動します。M5Stack Tab5は、この選択がいかに繊細かを示す例です。ESPHomeでは3つのハードウェアバージョンが説明されています:
- 2025年10月14日以前製造のユニット:ILI9881Cディスプレイドライバに、別個のGT911タッチコントローラを搭載。モデルは
M5STACK-TAB5を使用します。 - それ以降のユニット:ディスプレイとタッチが統合されたコントローラを搭載。ST7123(
M5STACK-TAB5-ST7123)またはST7121(M5STACK-TAB5-ST7121)のいずれかです。
3つのイニシャライズシーケンスは互換性がありません。ディスプレイモデルを誤ると、画面が暗くなるだけで、関連するログは何も出力されません。一方、タッチドライバを誤るとエラーがログに記録されるため、ESPHomeではまずタッチドライバからボードを特定することが推奨されています。
起動時のチェックリスト
- パネルのデータシートからレーン数とDSIモード(video、sync-pulse、burst)を確認します。ホスト側の設定がこれらと一致している必要があります。
- コントローラ名だけでなく、お使いのパネル専用のイニシャライズテーブルを使用します。
- リセットおよび電源のシーケンスを確認します。ボードによっては、リセットや電源をIOエクスパンダ経由で制御している場合があります。
- バックライトは点灯するが映像が表示されない場合、通常はパネルの故障ではなく、イニシャライズテーブルの誤り、レーン数の誤り、DSIタイミングの不一致が原因です。
インターフェースの選定については、MIPI DSI vs LVDS vs eDPおよびMIPI DSIインターフェースのページをご覧ください。
ガイドと比較
ILI9881C トラブルシューティングと FAQ
Raspberry Pi Touch Display 2のオーバーレイを別のILI9881Cパネルに流用できますか?
そのパネルが、このイニシャライズテーブル・タイミング・2レーン構成に合致する場合のみです。Linuxメインラインのドライバはサポートする各パネルについて個別のイニシャライズテーブル、モード、レーン数を保持しているため、別のILI9881Cパネルでは通常、専用のパネルエントリとオーバーレイが必要になります。
M5Stack Tab5の画面がESPHomeで暗くなったままです。どのモデルを選べばよいですか?
ESPHomeではTab5の3つのバージョンが説明されています。2025年10月14日以前製造のユニットはILI9881CとGT911タッチコントローラの組み合わせ(M5STACK-TAB5)、それ以降のユニットはST7123(M5STACK-TAB5-ST7123)またはST7121(M5STACK-TAB5-ST7121)を使用します。ディスプレイモデルを誤ってもサイレントに失敗しますが、タッチドライバを誤るとエラーがログに記録されるため、まずタッチドライバからボードを特定してください。
ILI9881DはILI9881Cと同じですか?
そう思い込むのは禁物です。メインラインLinuxにはILI9881Cのドライバはありますが、ILI9881Dのエントリはないため、ILI9881Dパネルではパネルのデータシートに基づく独自の初期化テーブルとタイミングが必要です。
ILI9881CパネルはDSIレーンを何本使用しますか?
パネルによります。メインラインLinuxドライバでは、Raspberry Pi 5″/7″やWaveshare 7″のエントリは2レーンを使用する一方、720×1280や800×1280の複数のパネルは4レーンを使用します。ホスト側の設定は、お使いのパネルのデータシートに合わせてください。