はじめに
GUDドライバの実験でRaspberry pi picoを使ったミニディスプレイの発表準備を行っていると、Interface誌2023年12月号に様々なLCDをつないでUSB接続のディスプレイにする記事があることに気づきました。
「LILO&東海道らぐオフラインミーティング 2024-01-28」の発表後、さっそく雑誌を取り寄せて内容を確認しました。
記事で対応しているLCDは以下のものです。
Pimoroni製のPico Display Pack
1.14インチのIPS LCD搭載のRaspberry pi pico用のボードです。4個のボタンとRGBLEDも搭載されています。
2.0インチ(320x240)のIPS LCDディスプレイ搭載のRaspberry pi pico用ボードです。4つのボタン、RGB LED、それからPicoプロジェクトに使えるスペースも用意されています。
Waveshare製の2.8inch Touch Display Module for Raspberry Pi Pico
262千色、320x240のSPI接続可能な、Raspberry pi pico用2.8インチタッチディスプレイです。
ここでは、Waveshare製の2.8inch Touch Display Module for Raspberry Pi Picoの使用例を紹介します。
UF2ファイルのビルド
私は、/home/kazueda/rpipicoで作業を行っています。
記事中に掲載のダウンロードサイトから、ソースファイルを含む圧縮ファイル、IF2210TS.zipをダウンロードします。
ダウンロードしたファイルを解凍すると、IF2210TSディレクトリが生成します。IF2210TSディレクトリに移動して、pico-sdkをgit cloneします。
その後、pico-sdkディレクトリに移動します。
$ cd pico-sdk
サブモジュールをアップデートします。
$ git submodule update –init
「gud-pico/libraries/gud_pico/usb_descriptors.c」の修正
の修正を行います。
「.wMaxPacketSize.size = CFG_GUD_BULK_OUT_SIZE,」
を
「.wMaxPacketSize = CFG_GUD_BULK_OUT_SIZE,」
と修正します。
最後に、UF2ファイルの作成です。
$ ./build.sh
$ make
私の場合、
/home/kazueda/rpipico/IF2210TS/gudpico/build/examples/pico-display
のディレクトリに
pico_display.uf2
が生成します。
「 pico_display.uf2 」をRaspberry pi picoにペーストすると、Raspberry pi pico側の準備は終了です。
「2.8inch Touch Display Module」に接続して、USBケーブルを介してLinuxマシンに接続します。
ディスプレイの動作状況
Ubuntu22.04のデスクトップ環境で無事映りました。Ubuntu(デフォルト)、つまりデフォルトのリッチなUnity環境です。
$ uname –a
を使って、システムの状態を見ると、以下の様になっています。
Linux kazueda-U700 6.5.0-25-generic #25~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Feb 20 16:09:15 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
一方、Raspberry pi OSは緑のままで、デスクトップは表示されません。PIXELを使用しています。
こちらも、
$ uname -a
を使って、システムの状態を見ると、以下の様になっています。
Linux raspi4 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux
デスクトップ環境を選ぶのかもしれません。
おわりに
Linuxカーネルのバージョンが5.15以上のデスクトップ環境だと動作するとの説明でしたが、ディスプレイマネージャ依存があるのかもしれません。
Interface誌2023年12月号の記事にはGUDドライバの仕組み等の解説がありますので、GUDドライバの資料として手元に置いておくのがいいでしょう。