あっきぃ日誌

ラズピッピブログのようなオタクブログのようななにか

マジョカアイリスの細長LCD

deveminさんの解析とソースコードとアドバイスのおかげで、なんとかここまで到達しました。

f:id:Akkiesoft:20210122111716j:plain

FFC-2.54mmピンヘッダ変換

当初はaitendoから22pin FFC〜2.54mmピンヘッダ変換を通販して使っていましたが動作せず。deveminさんからaitendoのはノイズのせいでダメだったので秋月の変換に変えた話を伺ったので私も秋月で買ってやっと映るようになりました。

aitendoの変換はFFCコネクタの取り付けがセルフはんだ付けだったので、そこがよろしくなかった可能性もあります。なにせ0.5mmピッチなので厳しい。

f:id:Akkiesoft:20210122112917j:plain

Device Tree

14日のブログに想像で書いたDevice Treeをぶん投げていました。

最近の - あっきぃ日誌

その後のdeveminさんの改善でDevice Treeもまあまあ使い物になることがわかり、調べつつ書いておいてよかったなーと思った次第です。意外とfbtftのDevice Treeの書き方がドキュメント化されておらず、GithubのIssueとか他のdtsとか見ないと細部がわからなかったので、そのへんをまとめておけたのはよかったなと思います。

最終的にはやはりドライバーも書かないとダメそうということがわかったので、Device Treeに書くものはGPIOピン情報程度になっています。既存のドライバーにdtsで上書きするだけで使えるなら提供するものがdtsだけで済んだんでしょうけど、変態サイズのLCDなのでそのへんの書き換えがやはり必要なようでした。

卒・ピンヘッダ配線

バックライトの5.5V化の課題が残ってますが、動くことがわかったので、ピンヘッダ配線をさっさとやめてプロトタイプボードに配線したバージョンを作りました。aitendoのプロトタイプボードにピンソケットを必要分だけつけて(ケチった)、秋月のFFC変換が刺せるようにピンソケットを配置、あとは必要な配線をすると言ったかんじです。

一見カオスですが、ピンヘッダケーブルがとっちらかるよりは断然マシですね。

f:id:Akkiesoft:20210122113250j:plain

アクセスしやすい分は表面でも配線。GPIOが1列になって取り出せるようになってるんですが、GPIO24だけなぜかなくてピンソケットのところから直接取ってます。

f:id:Akkiesoft:20210122113258j:plain

aitendoのFFC変換を使ってた頃の写真ですが、こんだけのピンヘッダケーブルを使ってたのがなくせたので非常にさっぱりですね。

f:id:Akkiesoft:20210122113708j:plain

ドライバーのDKMS管理

ドライバーの管理とかインストールの簡素化もチャレンジ。DKMSパッケージ化することで、管理的にはリポジトリにはマジョカアイリスのドライバーのコードとfbtft.hだけあればOKな状態まで簡素化できました。

DKMSはこう言う感じのドライバーを動的にコンパイルしてくれるフレームワークです。お高いネットワークカードとかのカーネルには標準で入ってないやつのドライバーでよく使われているやつです。もうちょいいい感じの概要はArchLinux Wikiより引用。とくにapt upgradeでカーネルのバージョンが変わっても(コンパイルが通れば)勝手に再コンパイルしてくれるのが利点です。

Dynamic Kernel Module Support (DKMS) はカーネルのソースツリーの外にソースが存在する Linux カーネルモジュールの生成を可能にするプログラム/フレームワークです。新しいカーネルがインストールされたときに DKMS モジュールは自動的にリビルドされます。

https://wiki.archlinux.jp/index.php/Dynamic_Kernel_Module_Support

DeviceTreeも含めてリポジトリにまとめた結果がこちらです。インストールスクリプトも雑ながら用意したので、インストールの簡素化も達成です。

github.com

サイネージ化

動作したあとはコンソールなんなりX環境なり出せるようになるので、トイレサイネージと同じ手順でサイネージ化してみました(冒頭の写真)。HTMLで640x48にコンテンツを詰め込むようなものを作ってそれを映すだけです。

akkiesoft.hatenablog.jp

バックライトが暗いのを5.5V電源供給でいい感じにしたいところです。Twitterの先人の成果を参考にさせてもらったりしてなんとかしたいですね。

あと、わたしの環境だけなのか、私がソースコードいじっているうちにバグを仕込んだのか不明ですが、たまに映像がずれるっぽく、ここも調べてみないといかんですね……。