以前はディスプレイのライブラリーを導入済みのファームを使っていたが,
今回は ESP32 用の generic ファームを使いつつ,ST7789のドライバーを導入するという手法を使ってみた。
まずは generic ファーム導入
ここから
をダウンロードしました。安直に,Thonnyを使ってファームをアップデートしました。こんな感じです。
そのままthonnyでREPLすればきちんと書き込めたか確認できますね。
ST7789ドライバーとフォント導入
以下を clone します。
lib
フォルダーにあるst7789py.py
をTTGOにコピーします。
フォントはfonts
に入ってディレクトリーごとTTGOにコピーします。時間がかかりますので気長に待ちます。
cd fonts/
ampy --port=/dev/cu.SLAB_USBtoUART put romfonts/
ampy --port=/dev/cu.SLAB_USBtoUART put truetype/
動作確認
examples/ttgo_tdisplay/truetype/noto_fonts.py
を実行してみます。
ビットマップのサンプルも用意してみました。
hello_world.py
from machine import Pin, SoftSPI
import st7789py as st7789
from romfonts import vga2_16x32 as font
def main():
spi = SoftSPI(
baudrate=20000000,
polarity=1,
phase=0,
sck=Pin(18),
mosi=Pin(19),
miso=Pin(13))
tft = st7789.ST7789(
spi,
135,
240,
reset=Pin(23, Pin.OUT),
cs=Pin(5, Pin.OUT),
dc=Pin(16, Pin.OUT),
backlight=Pin(4, Pin.OUT),
rotation=1)
tft.text(
font,
"Hello world!",
0,0,
st7789.color565(255,255,255),
st7789.color565(0,0,0)
)
main()
注意事項
遅いとのことですが... 上記サンプルは確かに「ヌルッ」と描画されます。まあこんなもんかな。