Raspberry Pi 用 3.5 インチ 320×480 TFT タッチスクリーン

今回は3.5インチ320×480 TFT タッチスクリーン(SPIインターフェイス)の紹介です。

製品の概要

名刺サイズのRaspberry PIと同じ大きさ、組み立てると下記の様にピッタリ重なります。解像度は480x320。ICはILI9486です。

Raspberry PIのコネクタに差し込んで使用するので配線を気にする事は無いのですが、コネクタ部分の配線は以下の様になっています。

LCDのコネクタはRaspberry PIの1から26番ピンに挿入されます。LCDが使用しているピンは上記赤枠で囲ったピンです。それ以外のピンは使用されていません。

GPIO7から11はSPI関係の信号。GPIO17はLCDからの割り込み信号。GPIO24はData/Command管理信号。GPIO25はLCDのRESETです。

3.3Vは5Vから作られる様で、5Vを供給すれば3.3Vを供給しなくても動作しました。でも3.3Vのみの供給ではLCDのは動作しませんでした。

Raspberry PIとの接続

DriverのInstallですが、ICからここの通り行えば良い様に思えたのですが、どうしてもLCDに表示出来ません。OS読み込み中のイチゴマークはLCDに表示されるのですが、DeskTop画面になるとLCDが真っ暗になって何も表示されませんでした。

そこでネットで検索して、このリンクI finally have the 3.5inch GPIO SPI LCD working with the raspberry pi 5 and this is howを見つけました。指示通り行ったら表示出来ました。

手順は以下の通り、

  1.  新規にRaspberry PIにOS(bookworm)をインストール
    • 今回はRaspberry PI 3B+ を使用して最新の64bit OS (BookWorm)をインストールしました。
    • インストール後、rebootし sudo rpi-update を実行
      • 今回は実行しなくても動作しました。
  2.  モニターがら sudo raspi-config を実行
    • “3 Interface Options”で SPIを有効にする
    • “6 Advanced Options” -> “A6 Wayland”で “W1 X11″を選択
    • 再起動せずにraspi-configを抜ける
  3.  /boot/firmware/config.txtを編集する
    • sudo nano /boot/firmware/config.txt で編集開始
      • “dtoverlay=vc4-kms-v3d”の行をコメントアウト(先頭に”#”を付ける)
      • ファイルの最後に” dtoverlay=piscreen,speed=18000000,drm “を追加
  4.  Rebootする
    • この時点でLCDに画面が表示されます。
    • タッチパネルは正しく動作しません。以下で設定を行います。
  5.  sudo apt-get install xserver-xorg-input-evdev
  6.  sudo mv /usr/share/X11/xorg.conf.d/10-evdev.conf /usr/share/X11/xorg.conf.d/45-evdev.conf
  7.  sudo nano /usr/share/X11/xorg.conf.d/45-evdev.conf 
    • 45-evdev.confに下記を追加
      • Section "InputClass"
           Identifier "evdev touchscreen catchall"
           MatchIsTouchscreen "on"
           MatchDevicePath "/dev/input/event*"
           Driver "evdev"
           Option "InvertX" "false"
           Option "InvertY" "true"
        EndSection
  8.  Rebootする
  9.  sudo touch /etc/X11/xorg.conf.d/99-calibration.conf
  10.  sudo apt-get install xinput-calibrator
  11.  sudo reboot
  12.  立ち上がったらターミナルで、”DISPLAY=:0.0 xinput_calibrator”を実行
    • タッチパネルのキャリブレーションが始まります。
    • 指示通りに行って下さい。

最後に

ほとんど諦めモードでしたが良いサイトを見つけてLCDに表示する事が出来る様になりました。このLCDに表示して状態でマウス、キーボードも正常に機能しています。