DEKI/ENGINE ドキュメント
deki-lovyangfx-integration 0.19.0
Deki パッケージリファレンス
deki-lovyangfx-integration

LovyanGFX 1.2.19 による組み込み向けのディスプレイとタッチ。一般的な SPI/パラレル TFT と FT6336U 静電容量式タッチパネルを駆動します。

リポジトリ: github.com/dekiengine/deki-lovyangfx-integration · 最新リリース: 0.19.0 · エンジン 0.19.0 以降が必要 · 依存: deki-i2c, deki-input

DekiEditor --packages-add deki-lovyangfx-integration <project> か、パッケージマネージャーからインストールします。エンジン自身のコンポーネントと C++ API は Deki のドキュメントにあります。

エディターでは LovyanGFX Integration と表示されます。

コンポーネント

コンポーネント カテゴリ 説明
LGFXDisplayPanel LovyanGFX LovyanGFX を通して、SPI、QSPI、パラレルバスでディスプレイパネル (ILI9341、ST7789、GC9A01、RM67162 AMOLED など) を駆動します。
LGFXTouchPanel LovyanGFX LovyanGFX を通して、タッチコントローラー (FT5x06、GT911、CST816S、XPT2046) を読み取ります。

機能フラグ

ビルドから外せる部分です。define を持つ機能はその define で切り替わり、それ以外はコンポーネントと一緒に取り除かれます。

機能 define デフォルト
Display Panel DEKI_FEATURE_LGFX_DISPLAY_PANEL オン
Touch Panel DEKI_FEATURE_LGFX_TOUCH_PANEL オン

コンポーネントリファレンス

LGFXDisplayPanel

LovyanGFX を通して、SPI、QSPI、パラレルバスでディスプレイパネル (ILI9341、ST7789、GC9A01、RM67162 AMOLED など) を駆動します。

インスペクターでの名前: LGFX ディスプレイパネル · カテゴリ: LovyanGFX · 型: DekiLovyanGfx::LGFXDisplayPanel

プロパティ 型 デフォルト 制約 説明
panelType enum "ILI9341" ILI9341, ST7789, ST7735, GC9A01, SSD1351, ST7789P3, RM67162 ディスプレイパネルのドライバー IC
panelWidth int32 320 1 から 1024 ディスプレイの幅 (ピクセル)
panelHeight int32 240 1 から 1024 ディスプレイの高さ (ピクセル)
rotation enum "Landscape" Portrait, Landscape, Portrait180, Landscape270, PortraitMirror, LandscapeMirror, Portrait180Mirror, Landscape270Mirror ディスプレイの回転
offsetX int32 0 ピクセルのオフセット X (原点が 0 でないパネル用)
offsetY int32 0 ピクセルのオフセット Y (原点が 0 でないパネル用)
invertColor bool false ディスプレイの色を反転します
rgbOrder bool false R と B の色チャンネルを入れ替えます (RGB と BGR)
busType enum "Parallel8bit" SPI, Parallel8bit, Parallel16bit, QSPI ディスプレイのバスの種類
mosiPin int32 -1 -1 から 48。busType が許すときに表示 SPI の MOSI ピン
misoPin int32 -1 -1 から 48。busType が許すときに表示 SPI の MISO ピン (-1 = 使用しない)
clkPin int32 -1 -1 から 48。busType が許すときに表示 SPI のクロックピン
dcPin int32 -1 -1 から 48。busType が許すときに表示 SPI のデータ/コマンドピン
spiPort int32 0 0 から 2。busType が許すときに表示 SPI ホスト。ESP-IDF の番号で指定します (ESP32-S3 では 1 = SPI2、2 = SPI3)
spiWriteHz int32 40000000 busType が許すときに表示 SPI の書き込み周波数 (Hz)
io0Pin int32 -1 -1 から 48。busType が許すときに表示 QSPI のデータピン IO0
io1Pin int32 -1 -1 から 48。busType が許すときに表示 QSPI のデータピン IO1
io2Pin int32 -1 -1 から 48。busType が許すときに表示 QSPI のデータピン IO2
io3Pin int32 -1 -1 から 48。busType が許すときに表示 QSPI のデータピン IO3
parWriteHz int32 40000000 busType が許すときに表示 パラレルバスの書き込み周波数 (Hz)
rsPin int32 -1 -1 から 48。busType が許すときに表示 レジスタセレクト / データ・コマンドのピン (RS/DC)
wrPin int32 -1 -1 から 48。busType が許すときに表示 パラレルバスの書き込みストローブピン
rdPin int32 -1 -1 から 48。busType が許すときに表示 パラレルバスの読み出しストローブピン (-1 = 使用しない)
d0Pin int32 -1 -1 から 48。busType が許すときに表示 パラレルのデータピン D0
d1Pin int32 -1 -1 から 48。busType が許すときに表示 パラレルのデータピン D1
d2Pin int32 -1 -1 から 48。busType が許すときに表示 パラレルのデータピン D2
d3Pin int32 -1 -1 から 48。busType が許すときに表示 パラレルのデータピン D3
d4Pin int32 -1 -1 から 48。busType が許すときに表示 パラレルのデータピン D4
d5Pin int32 -1 -1 から 48。busType が許すときに表示 パラレルのデータピン D5
d6Pin int32 -1 -1 から 48。busType が許すときに表示 パラレルのデータピン D6
d7Pin int32 -1 -1 から 48。busType が許すときに表示 パラレルのデータピン D7
d8Pin int32 -1 -1 から 48。busType が許すときに表示 パラレルのデータピン D8
d9Pin int32 -1 -1 から 48。busType が許すときに表示 パラレルのデータピン D9
d10Pin int32 -1 -1 から 48。busType が許すときに表示 パラレルのデータピン D10
d11Pin int32 -1 -1 から 48。busType が許すときに表示 パラレルのデータピン D11
d12Pin int32 -1 -1 から 48。busType が許すときに表示 パラレルのデータピン D12
d13Pin int32 -1 -1 から 48。busType が許すときに表示 パラレルのデータピン D13
d14Pin int32 -1 -1 から 48。busType が許すときに表示 パラレルのデータピン D14
d15Pin int32 -1 -1 から 48。busType が許すときに表示 パラレルのデータピン D15
csPin int32 -1 -1 から 48 チップセレクトのピン (-1 = 使用しない)
rstPin int32 -1 -1 から 48 リセットピン (-1 = 未接続)
blPin int32 -1 -1 から 48 バックライトのピン (-1 = なし)
blPwmChannel int32 0 0 から 15 バックライトの PWM チャンネル
blInvert bool false バックライトの信号を反転します (アクティブ Low)
blBrightness int32 255 0 から 255 起動時のバックライトの明るさです。0-255 (PWM デューティ)。255 ではピンを High に保ちます。パルスの数で減光するバックライトドライバー (LilyGO T-Deck のもの) には 255 が必要です。PWM 波形だと明るさの段階を次々に切り替えてしまい、ちらつきます
swapBytes bool false ディスプレイへの転送時に RGB565 のバイト順を入れ替えます
memoryWidth int32 320 1 から 1024 パネルのメモリ上の幅 (表示される幅と異なる場合があります)
memoryHeight int32 240 1 から 1024 パネルのメモリ上の高さ (表示される高さと異なる場合があります)
usePsram bool false フレームバッファーを内部 RAM ではなく PSRAM に置きます。画面 1 枚分の内部 RAM が空きますが、描画は遅くなります
doubleBuffer bool false 非同期 DMA にダブルバッファーを使います (描画とディスプレイへの転送を並行して行います)
asyncPresent bool false 次のフレームを描画している間に、チップのもう一方のコアから各フレームを送信します。1 フレームにかかる時間は描画と送信の合計ではなく、長いほうだけになります。外部メモリ (PSRAM) 2 フレーム分とデュアルコアのチップが必要です。フレーム全体を表示する、バイトを入れ替えるパネル (swapBytes) 向けです。

LGFXTouchPanel

LovyanGFX を通して、タッチコントローラー (FT5x06、GT911、CST816S、XPT2046) を読み取ります。

インスペクターでの名前: LGFX タッチパネル · カテゴリ: LovyanGFX · 型: DekiLovyanGfx::LGFXTouchPanel

プロパティ 型 デフォルト 制約 説明
driverType enum "FT5x06" FT5x06, GT911, CST816S, XPT2046 タッチコントローラー IC
i2cPort int32 0 0 から 3。driverType が許すときに表示 I2C バスのポート (ブートシーンの I2C バスコンポーネントと一致させる必要があります)
csPin int32 -1 -1 から 48。driverType が許すときに表示 SPI のチップセレクトピン (-1 = 使用しない)
mosiPin int32 -1 -1 から 48。driverType が許すときに表示 SPI の MOSI ピン (-1 = 使用しない)
misoPin int32 -1 -1 から 48。driverType が許すときに表示 SPI の MISO ピン (-1 = 使用しない)
clkPin int32 -1 -1 から 48。driverType が許すときに表示 SPI のクロックピン (-1 = 使用しない)
intPin int32 -1 -1 から 48 タッチイベントの割り込みピン (-1 = ポーリングモード)
rstPin int32 -1 -1 から 48 タッチコントローラーのリセットピン (-1 = 未接続)
xMin int32 0 タッチコントローラーが返す生の X の最小値です。ディスプレイを回転する前のパネルの幅方向の値です
xMax int32 239 タッチコントローラーが返す生の X の最大値です。ディスプレイを回転する前のパネルの幅方向の値です (240x320 のパネルを横向きで表示する場合: 239)
yMin int32 0 タッチコントローラーが返す生の Y の最小値です。ディスプレイを回転する前のパネルの高さ方向の値です
yMax int32 319 タッチコントローラーが返す生の Y の最大値です。ディスプレイを回転する前のパネルの高さ方向の値です (240x320 のパネルを横向きで表示する場合: 319)
offsetRotation enum "None" None, CW_90, CW_180, CW_270, Mirror, Mirror_CW_90, Mirror_CW_180, Mirror_CW_270 パネルに対するタッチコントローラーの向きで、ディスプレイの回転に加算されます。コントローラーがパネル自身の向きで座標を返す場合はなし
busShared bool false タッチがディスプレイと SPI バスを共有する場合はオンにします

変更履歴

変更履歴は英語です。

0.19.0

Changed

  • minEngine 0.19.0: built against engine 0.19.0, whose component metadata records the package each class is in. A build of this package from before does not load and is rebuilt.

Added

  • Japanese, Simplified Chinese and Korean: editor/lang/ja.json, zh.json and ko.json translate the names, tooltips and enum values this package's components show in the Inspector.

0.18.2

Added

  • asyncPresent on the display panel: a frame is sent from the other core while the next is drawn, through two staging buffers in PSRAM. Drawing and sending each fit in a 60 Hz frame on a LilyGO T-Deck, one after the other they did not. On ESP32 with two cores; off by default.

Changed

  • A frame goes to the panel by DMA, in bands within one transaction: each band is converted while the one before is being sent. Each band used to be fed to the SPI FIFO by the CPU and waited for before the next was converted, the conversion and the transfer one after the other.

Fixed

  • An I2C touch panel no longer shares the display's bus. Shared, each touch read ended the display's SPI transaction, which broke a frame being sent from the other core.
  • The backlight starts at full brightness (blBrightness, 255 by default), as it is after waking from sleep. It started at LovyanGFX's 127, a 1.2 kHz PWM wave, and a backlight driver that dims by counting pulses, as the LilyGO T-Deck's does, read every cycle of it as a step down and flickered.
  • The touch panel's bounds group was labelled "Touch Panel DekiParticles::Bounds". The bounds' tooltips say they run along the panel before the display is rotated, and offsetRotation's that it is added to the display rotation (it is not the display rotation).

それ以前のリリース: CHANGELOG.md


パッケージのリフレクションデータから生成しています (エンジン 0.19.0)。プロパティ名はシーンファイルで使われるキーです。名前を変えても別名が残ります (互換性)。