2022-06-26 (日)
喉が痛いけど,風邪なのか,単に久しぶりにたくさん話をしたせいなのか分からないな.
* ESP32でLEDディスプレイを光らせる
だいぶ前に深センに行ったときに買ったLEDディスプレイ付きのバックパック,そのうち触ろうと思ってたのだけど,WiFi無いと何もできない上に当たり前のように技適マークも無いので,日本で合法的に電源を入れることができない...
2年以上放置してたけど,何もせず捨てるのももったいないのでESP32で動かしてみる.
パネルの裏側.
LEDはSM16207SとTC7258というICで光らせているっぽい.他にはSM245TSというのが見えるけど,ただの3ステートバッファだった.
データシートや回路を見ながら調べると,HUB75というLEDディスプレイパネルで使われる一般的なインターフェイスだった.簡単に使えそう.
「HUB-75規格」という説明たくさん見つかるけど,規格の仕様書や,そもそも誰が策定した規格なのかよくわからない.
コントローラっぽい基板を剥がす.CPUはGD32F105という Cortex-M3 が載っていた.思ったよりハイスペック.WiFiモジュールは,AFW121Tというやつ.こっちも Cortex-M4 が入っている...遊びたいけど日本で使えないのが残念.
剥がした基板の代わりにESP32をつなぐ.
HUB75のパネルはフレームバッファ的なものは持ってない単純なものなので,駆動するためにはデータを送り続ける必要がある.ESP32でもWiFi通信しながらだと厳しい.何か良い方法がないか探してみたらI2SのDMAを使ってHUB75のパネルを光らせてるライブラリが見つかった.
https://github.com/mrfaptastic/ESP32-HUB75-MatrixPanel-I2S-DMA
動いた.一箇所欠けているように見えるけどLEDが壊れてるわけじゃなかった.青色だけずれやすいので信号のタイミングがまずいのかも.
調べながら試行錯誤したのもあるけど,光らせるだけで2時間近くかかってしまった...