SPI接続のラズパイ用3.5inchLCD(ILI9486)を試す
- 2026/03/16 13:29
- カテゴリー:Raspberry Pi
Macintoshを小さいサイズにしてラズパイでエミュレートするYouTubeの映像を観て面白かったので,どこまで出来そうか調査してみることにした(記事で作製紹介している人はこちら)
まず小さいデスクトップを用意する必要があるため,SPI接続のラズパイ用3.5inchLCD(SPI 125MHz対応版)を購入


Aliexpressで購入したわりには,かなりしっかりした包装と箱入りで中身もちゃんとしていた


説明書もありラズパイZERO2にてセットアップしてみたのだが・・・

現時点での最新RPiOSは対応されていないようなので1つ前の「Bookworm」の32Bit版で試行したところ,イメージ表示されるだけで,デスクトップ環境(X11)はエラーとなって動作しない
当初これを「ILI9431」だと思って(こちらなど)ネット情報を参考にして手動設定していたところ上手くいかず途中で「ILI9486」であることに気付く
そしてこの商品と同等であるようなので情報検索したところ現状では「bullseye-armhf」でないと正常動作しないとのこと
ようやく「3.5inch RPi Display」に辿り着きX11を起動できた

使用イメージ)MPI3501-3.5inch-2025-05-06-raspios-bullseye-armhf(Legacy)(Pi0-Pi3-Pi4).img
画面は上下変更(デフォが90度回転で270度回転している)ただしタッチ系が変更できず座標が逆になっている
※)後で「MHS-3.5inch RPi Display」を見つけた(イメージは同じだと思うがDLサイズ制限になったため確認できず)
しかし「2023-05-03-raspios-bullseye-armhf.img」でセットアップしたが動作不良
これはマニア向けの厳しい製品である
記録
waveshare製ということで試したサイト
https://www.waveshare.com/wiki/3.5inch_RPi_LCD_(A)
https://www.waveshare.com/wiki/3.5inch_RPi_LCD_(A)_Manual_Configuration
A,B,Cと3タイプあるそうだ
https://raspida.com/waveshare-install-lcd35/
タイプBでは無いのでA,Cを試したがConsoleのテキストしか表示されない(画面としてのドライバは良いがX11は不可ということ)
追加
「2023-05-03-raspios-bullseye-armhf.img」では,xinitが正常に起動していなかったので.bash_profileを修正して動作を確認
$ git clone https://github.com/goodtft/LCD-show.git
$ chmod -R 755 LCD-show
$ cd LCD-show/
$ sudo ./MHS35-show
$ sudo raspi-config nonint do_boot_behaviour B2
(.bash_profileの修正)
Bookworm,TrixieはSPI経由のイメージは出せるがWindowSystemとしては動作させられていない
タッチペンのキャブレーションも未決
主な設定ファイル
・/boot/config.txt
hdmi_force_hotplug=1
dtparam=i2c_arm=on
dtparam=spi=on
enable_uart=1
dtoverlay=mhs35:rotate=270
hdmi_group=2
hdmi_mode=1
hdmi_mode=87
hdmi_cvt 480 320 60 6 0 0 0
hdmi_drive=2
tft35a,waveshare35a,waveshare35cでも動作する
・/usr/share/X11/xorg.conf.d/99-fbturbo.conf
Section "Device"
Identifier "Allwinner A10/A13/A20 FBDEV"
Driver "fbturbo"
Option "fbdev" "/dev/fb0"
Option "SwapbuffersWait" "true"
EndSection
・auto-login設定
$ sudo raspi-config nonint do_boot_behaviour B2
$ sudo raspi-config nonint do_wayland W1
・~/.bash_profile
if [ "`tty`" = '/dev/tty1' ]
then
export FRAMEBUFFER=/dev/fb1
startx 2> /tmp/xorg_errors
fi
・/etc/X11/xorg.conf.d/40-libinput.conf
$ sudo ./rotate.sh 180
設定ファイルで角度が異なるため自動設定を利用するのが良い
0でラズパイの電源コネクタが下になる
MHS35-showでも指定可能
・キャリブレーション
$ cd LCD-show
$ sudo dpkg -i -B xinput-calibrator_0.7.5-1_armhf.deb
(画面上で操作)
$ sudo vi /etc/X11/xorg.conf.d/99-calibration.conf
自動で実行されないので手動となる


現状は出力されたキャリブレーションデータでは正常にならない
・fbcp
$ cd LCD-show
$ sudo mkdir rpi-fbcp/build
$ cd rpi-fbcp/build/
$ sudo cmake ..
$ sudo make -j4
$ sudo install fbcp /usr/local/bin/fbcp
SPI_BUS_CLOCK_DIVISOR=8 (250MHz/8=31.25MHz)
$ sudo cmake -DSPI_BUS_CLOCK_DIVISOR=8 .. #31.25MHz
$ sudo cmake -DSPI_BUS_CLOCK_DIVISOR=4 .. #62.5MHz
$ sudo cmake -DSPI_BUS_CLOCK_DIVISOR=2 .. #125MHz
32bit版bullseyeでのみ可能
125MHzだと表示が早いのが判る












