1.14 Inch LCDをRaspberry Piと接続してRetroPieで使用してみました。
1.14 inch IPS LCD Display Module
始めに書いておきますが自分の満足のいく結果にはなっていなく、まだ途中ですが私的メモ代わりに残して置きます。
Waveshareにある手順とほぼ同じで、自分の環境による違いのみ一部変更しました。
1.14 inch IPS LCD Module |
テストした機材
Raspberry Pi 3 Model B+ [retropie-buster-4.7.1-rpi2_3.img.gz]
Raspberry Pi 4 [retropie-buster-4.7.1-rpi4_400.img.gz]
[参考リンク]
Waveshare 1.14inch_LCD_Module → [Guides for Pi]
raspberry Piとの接続は以前までの機器となるべく互換性と、他のGPIOと被らない配置にしました。
GND → PIN20(GND)
VCC → PIN17(3V3:power)
SCL → PIN23(GPIO11:SPI_SCLK)
SDA → PIN19(GPIO10:SPI_MOSI)
RES → PIN13(GPIO27)
DC → PIN22(GPIO25)
CS → PIN24(GPIO8:SPI_CE0)
BLK → PIN18(GPIO24)
fbcp-ili9341をダウンロード
sudo apt-get install cmake
cd ~
wget https://www.waveshare.com/w/upload/8/8d/Waveshare_fbcp-main.7z
sudo apt-get install p7zip-full
7z x Waveshare_fbcp-main.7z
cd waveshare_fbcp-main
ビルド
mkdir build
cd build
cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_1INCH14_LCD=ON -DBACKLIGHT_CONTROL=ON -DSTATISTICS=0 ..
make -j
/etc/rc.localに追記
sudo vi /etc/rc.local
sudo /home/pi/waveshare_fbcp-main/build/fbcp &
exit 0
再起動
sudo reboot
※設定変更時はディレクトリを削除後ビルドから
cd waveshare_fbcp-main
rm -rf build
/boot/config.txtを変更
sudo vi /boot/config.txt
hdmi_group=2
hdmi_mode=87
hdmi_cvt=960 540 60 3 0 0 0
hdmi_force_hotplug=1
display_rotate=0
"hdmi_cvt=240 135 60 3 0 0 0"の解像度の部分は任意で変更します。
この変な解像度は手持ちのHDMIディスプレイでのテスト用です。
Waveshare_fbcp |
Raspberry Pi 3 では"config.txt"の"display_rotate"は反映されて回転できるのだが
Raspberry Pi 4 では"display_rotate"の設定が有効にならない。
これはネット等で調べると"config.txt"の”dtoverlay=vc4-fkms-v3d”をコメントアウトすることになっているのでがコメントアウトするとEmulationStationの起動できなくなる。
以前からこの問題に悩まされてるのだが、余りネット等で問題にされていないのは自分の環境の問題なのか?
一応EmulationStation等を個別で設定してやればいいのはわかっているのだが、正直面倒なので出来ればシステムで一括管理したい。
今後もこの問題がついて回りそうなので一度しっかり調べてみたいのだが、何せ自分のスキル不足でなかなか進んでいません。
[関連記事]
メモ
fbcp-ili9341だけで180°回転するやり方を探ってみました。
多分正しいやり方では無いと思いますが一応メモしておきます。
fbcp-ili9341をダウンロード
sudo apt-get install cmake
cd ~
git clone https://github.com/juj/fbcp-ili9341.git
cd fbcp-ili9341
st7735r.cppを変更
sudo vi st7735r.cpp
if ((madctl & MADCTL_ROW_ADDRESS_ORDER_SWAP))
SPI_TRANSFER(0x37/*VSCSAD: Vertical Scroll Start Address of RAM*/, 0, 40);
#endif
ビルド
mkdir build
cd build
cmake -DSTATISTICS=0 -DST7789VW=ON -DSPI_BUS_CLOCK_DIVISOR=10 -DGPIO_TFT_DATA_CONTROL=25 -DGPIO_TFT_RESET_PIN=27 -DGPIO_TFT_BACKLIGHT=24 ..
make -j
/etc/rc.localに追記
sudo vi /etc/rc.local
sudo /home/pi/fbcp-ili9341/build/fbcp-ili9341 &
exit 0
先の設定と"/etc/rc.local"の使い分けで共存します。
再起動
sudo reboot
※設定変更時はディレクトリを削除後ビルドから
cd fbcp-ili9341
rm -rf build
/boot/config.txtを変更
sudo vi /boot/config.txt
hdmi_group=2
hdmi_mode=87
hdmi_cvt=240 135 60 3 0 0 0
hdmi_force_hotplug=1
display_rotate=2
fbcp-ili9341 |
ここからは完全に失敗メモです。
st7735r.h
sudo vi st7735r.h
#if defined(ST7789) || defined(ST7789VW)
#define DISPLAY_NATIVE_WIDTH 240
#define DISPLAY_NATIVE_HEIGHT 135
解像度をあわせてみる。
画面が90°回転するが反転している。
st7735r.cpp
sudo vi st7735r.cpp
#if defined(DISPLAY_FLIP_ORIENTATION_IN_HARDWARE)
madctl |= MADCTL_ROW_COLUMN_EXCHANGE;
#endif
//madctl |= MADCTL_ROW_ADDRESS_ORDER_SWAP;
反転を直すと画面の位置が正しくない。
0 件のコメント:
コメントを投稿