ESP-IDFを使ってみる

SPIのTFT


こちらで M5StackのTFTライブラリを公開していますが、汎用ライブラリとし て作ったので、
以下のドライバーを使っているTFTモジュールでも利用することができます。
また、XPT2046のタッチコントローラが搭載されている場合は、タッチコントローラを使うことができます。
  • ILI9225
  • ILI9340
  • ILI9341
  • ST7735
  • ST7789
  • ST7796






  • 2.8インチ 230x320 ILI9341

    2.4インチ 230x320 ILI9341

    どちらも全く同じ制御コードです。
    左が2.8インチ 右が2.4インチです。




    2.2インチ 230x320 ILI9340

    ILI9341と全く同じ制御コードで動きます。
    左が2.2インチのILI9340 右が2.4インチのILI9341です。




    2.0インチ 176x220 ILI9225

    ILI9341とは全く違う制御コードです。
    フラットケーブルとピンの取り付け位置が違うので、ILI9341と比べて天地が逆さまになります。
    左が2.2インチのILI9340 右が2.0インチのILI9225です。




    1.8インチ 128x160 ST7735

    ILI9341とほとんど同じ制御コードで動きます。
    ST7735には(私の知る限り)ST7735/ST7735S/ST7735Rの3種類のドライバーが有ります。
    ST7735とST7735Sは0x04のレジスタを読み出すことで識別することができます。
    手元のST7735の0x04のレジスターはreg(0x04) = 0x7C89F0で、全てST7735Sでした。

    このモジュールはPixelのフィルター設定値が他のモジュールと違うので左上の赤と青の色が反転します。
    左が1.8インチのST7735 右が2.0インチのILI9225です。
    どちらも同じ基盤を使って実装されています。


    フィルターの指定をRGBフォーマットで指定すると正しい色になります。




    1.8インチ 128x160 ST7735 OFFSET有り

    どちらのモジュールもよく似ていますが、同じ設定でビルドすると右側のモジュールは画面の左端と上端に余白ができます。
    フラットケーブルとピンの取り付け位置が違うので、天地が逆さまになります。


    ST7735は最大132x162までの解像度をサポートしてますが、これ以下の解像度のTFTではGRAMのX=0 Y=0からではなく、
    GRAMにオフセットが加えられていることがよくあります。
    調べてみると、X=2 Y=1からGRAMが使われています。
    フィルターの指定と同時に、XとYのオフセットを指定することで正しく表示できるようになります。




    1.8インチ 128x160 ST7735 BackLight制御有り

    どちらのモジュールもよく似ていますが、右側のモジュールはLEDの+−ピンが有ります。




    1.8インチ 128x160 ST7735 BackLight制御有り

    フラットーケーブルの取り付け位置が違うだけで同じモジュールです。




    1.77インチ 128x160 ST7735

    どちらのモジュールもよく似ていますが、左のモジュールにはオフセットが有りません。




    1.44インチ 128x128 ST7735

    このモジュールのPixelの色フィルターはILI9340と同じBGRフォーマットです。
    左が1.8インチ 右が1.44インチです




    1.44インチ 128x128 ST7735 OFFSET有り

    どちらのモジュールもよく似ていますが、同じ設定でビルドすると左側のモジュールは画面の右端と下端に余白ができます。


    menuconfigで解像度同時に、XとYのオフセットを指定することで正しく表示できるようになります。




    0.96インチ 80x160 ST7735

    X方向に26ドット、Y方向に1ドットのオフセットを加えて正しい位置となりましたが、
    色が完全に反転しています。


    menuconfigで解像度、XとYのオフセットに加え、反転を有効にすることで正しい色になります。


    IPSなので比較的きれいです。
    隣の1.44インチのTFTの半分ほどの大きさしかありませんが、長辺方向のドット数が160ドットあるので、こちらの方がはっきりと見えます。




    1.3インチ 240x240 ST7789VW

    ST7789については、こ ちらでもソースを公開しています。
    このソースはタッチコントローラをサポートしていません。
    裏面のマーキングは2種類ありますが、どちらも同じものです。
    このライブラリを利用したユーザがデモビデオを 作って公開してくれました。


    IPSなので非常にきれいです。




    LILYGO TTGO 1.14インチ 135x240 ST7789

    最近よく見かけるLILYGO TTGOブランドの開発ボードで、1.14インチのST7789が実装されています。
    このボードのUSBコネクターはType-Cです。
    Type-Cを採用する開発ボードが増えてきました。




    LILYGO TTGO T8 ESP32-S2 135x240 ST7789

    ESP32-S2を使ったLILYGO TTGOブランドの開発ボードで、1.14インチのST7789が実装されています。
    このボードのUSBコネクターもType-Cです。


    続く....