「基板が作れるようになったら、PCD8544ボードを自作するぞ...!」と思っていたのに、すっかり忘れていたことを思い出して、いよいよ作ってみました。5110という昔のケータイに使われていた液晶ディスプレイで、84x48のつぶつぶしたモノクロ具合がレトロな雰囲気のやつです。気がつけば初めて買ってから10年経っていました。akkiesoft.hatenablog.jpakkiesoft.hatenablog.jpPicoでも動かしていましたね。www.raspi.jpなんで自分で基板を作るのか上の2つの記事では、それぞれ違うモジュールを使用しています。Picoにつなぐにはケーブル接続が必須となり面倒です。Piのピン配置に合わせた形状のものです。Piにももちろん使えますが、バックライト制御ができないため、ライトが常時点灯するのが難点でした。配線がSPI向けのピンではなく、適当なGPIOピンに繋がれていたため、コードを書くにはソフトウェアSPIを使う必要がありました。ファッキンホット温度計では、センサーのケーブルをボードに直はんだ付けするなど、見栄えもイマイチになりがちでした。上記の難点を解消するために、以下の要件でボードを設計してみました。細かい点として、3枚ほどモジュールを持っていて、基板の厚みが1mm(汎用のやつとRPi向けその1)と1.2mm(RPi向けのaitendo版)に分かれていたのですが、どうやら1mmのほうが、PCD8544が基板にしっかり固定できそうだったので、基板の厚みは1mmとしました。Picoで使うことを意図しています。私のボードシリーズを使ってもらえれば両方で遊べます。つくっていきPCD8544のKiCad向けデータは、hackadayに投稿している人がいたため、これをベースに作ることとしました。基板が作れるようになったらといいつつ、他人のデータ頼りなんですが、MITライセンスなので、ヨシ!(後で私も公開せねば......)。hackaday.ioなんやかんやでできたのがこちら。基板裏面でGPIO配線リストのテキストが抜け落ちてる時点のスクショですが。表面はなにも印字がなく、配線も極力見せないようにしてみました。配置されるのはPCD8544と、そのバックライト用のLEDだけです。余白には必要に応じて自分でシールを貼ったりして、デコってもいいかなという意図が少しありました。後述のRev.2ではその意図が破壊されます。メインとも言える裏面。他のチップ部品はすべてこちらに配置しています。PCD8544向けのチップコンデンサー、バックライトLED用のFETとLEDの抵抗です。FETはかぐら氏のアドバイスによりBSS138というものが採用されました。Rev.1ではFETのプルダウン抵抗が不足していた点もコメントをもらって、パッチ修正で事なきを得ています。4ピンのソケットを採用しようとしましたが、1mmピッチはさすがに無理と判断して、ただのスルーホールとしています。ラズパイ配置なので、使い勝手自体は悪くないと思います。L字のヘッダーかソケットをつけても、基板からはみ出さないような位置にしてあります。Picoの増産分(スイッチサイエンスさんに追加納品する用)が、数日差で到着していました......。その間にやっていた、LED回路の練習。発注してから練習すんなと言われればそうですが。部品は抵抗以外を秋月で、抵抗(330Ω)は千石で調達しました。LEDは白・緑・青の3色を用意しました。青がやや暗め?ですが、まあ大丈夫な気がします。逆に明るすぎれば、PWM制御で暗くはできるので、それもまたヨシです。届いたそんなことなをしているうちについに到着。比較で既存モジュールを並べました。チップ部品を全部つけ終わったところで気づいた、先述のプルダウン抵抗不足による現象。LEDの制御用GPIOに触れるとLEDが光り、指を離して少しするとふわっと消えます(笑)。部分は多分チップコンデンサーによるものですね。これはこれで楽しそうなので良い気がしますが、抵抗を追加して解消しました。social.mikutter.hachune.netPCD8544は、右上のaitendoのモジュールから外して移植しました。問題なく表示されて一安心。՞)☝の画像データは、昔作ったデータをCircuitPythonで改めてデコードしたもの。試行錯誤した結果、フレームバッファにそのまま流せばOK、ただしY方向は8px単位でしか動かせないので、1px単位で動かすなら自分でビットシフトって感じでした。最初はループで回して1ドットずつ打っていたら500msとかかかっていましたが、1px単位移動&はみ出し対応を入れても最大16msくらいで描画できるようになりました。基板を作って終わりではないので、コード周りもいろいろ作っています。プルダウン抵抗を入れる前のコード再実行のようす。言うタイミングでもふわっと消えるので、逆にアリまであった。social.mikutter.hachune.netプルダウン抵抗は10KΩのやつを、BSS138の2本足に乗っけて終わりでした。Rev.2Rev.2では、Rev.1のバグをつぶしつつ、表面にボタンを追加したくなったので追加しました。バックライトのオンオフをボタンでやりたくなったのと、あとはミニゲームとか作れたら楽しいかなとか思ったので。Rev.1のバグ修正がこちら。穴の配置も間違えていたッ......!FETにプルダウン抵抗を追加してLEDの意図しいない挙動に対応uHATサイズのマウントホールで、下側が1mm上よりになっていたのを修正ボタンは、表面実装でよく使われている楕円のアレを個人的に初採用しました。アリエクでポチって、ちんたら基板を設計していたら、もうボタンが届きました。最近のアリエクマジで早い。おかげで、ボタン配置のシミュレーションが実物でできました。いうわけでこんな感じに(JLCPCBのプレビューから)。ボタンは4つにしました。部品の斜め配置、やってみたくなったんや......!GPIOの位置はシルク印刷を入れましたが、裏に書くか表に書くかでは結構迷いました。GPIOのシルクが残ってる時点のスクショだったけどまあいいや(雑)。ボタンの配線の都合でもとの配線が一部変わったりしていますが、他の変化はプルダウン抵抗程度です。さっき発注したので、OSC東京に間に合えばいいな〜って感じですね。まとめ念願の自作PCD8544ボードができました。バックライトなしでも自然光だけでマアマア見れる、かわいいやつなので、また常設系のアプリを作れたらと思っています。データを取りっぱなしになっているCO2センサーのグラフとかの表示をやりたいなとか。余った基板はチップ部品だけつけて、OSCで配ろうかしらん......?PCD8544は各自で用意してね!って感じにはなりますが、どうでしょうね?中途半端に実装するなら完成品で出せそれはそう。