あっきぃ日誌

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

令和6年最新版 PCD8544 HAT Rev.2

PCD8544の基板のリビジョン2が着弾しました。

Rev.1と合わせて10枚はある(ただし、作った基板のうち1枚は使わずに保存することにしているので、実質は8枚)ので、お裾分けようにアリエクでポチってみたLCD単品5枚も同時着になりました。アリエクの方は6日で届いたので、最近本当に早い。


組み立て

今日は宇都宮出張の前日入りを個人的にやって、LRT乗り鉄をやったろwと思っていたのですが、例によってクロネコヤマトが午前指定(11:45着)みたいなノリで後ろにブレたので、ちゃっちゃと組み立てて家を飛び出す感じになりました。さておき、先に裏面を組み立て。プルダウン抵抗の追加以外はとくに変わりはありません。

そしてメインの表面。LEDの他にボタンが追加されました。ボタンパーツは、最近はPicoとかでおなじみ、表面実数の楕円ボタンのやつです。手ハンダできるか心配でしたが、割と問題なくやれました。ただまあ、本当はリフローのほうがいいんでしょうねえ。


動作確認

画面表示系の回路は変更がないため、表示は問題なし。プルダウン抵抗のおかげでLEDが変な動作をすることもなくなりました。また、ボタンも、テスターでの通電確認と、適当に組んだ入力テストプログラムの両方で動作が確認できました。1枚は前回と同じく白色LEDで実装です。

そして、もう一枚は青色LEDで実装しました。最初に買ったPCD8544モジュールが青色だったのでそれのインスパイアです。画像ファイルからPCD8544モジュール用のデータに変換するコードを今さっき宿で書いて、新しく画像を作れるようになったので、これ用に描いたミク絵を表示したようすがこちら。

ボタンを押したらバックライトをオン・オフにできるようにしたので、オフの様子も。部屋が明るいとバックライトがなくてもわりと見えるので、普段はオフにして、ライトがほしいときだけボタンでオンにできますね。


来週末のOSCで展示します

来週10月26日(土)はもうOSC2024 Tokyo/Fallですが、いつも通りJapanese Raspberry Pi Users Groupとして展示予定です。今回のボードも展示するので、よければ浅草に遊びに来てくださいね。

あと、個人ブースのほうでは薄い本とuHAT Porter Picoの基板の物販もやります。Squareの支払い方法が色々追加できて、いくつかのQRコード決済(ただ、PayPayがまだなんですよね)と、QUICPayもやっと通せたので、この辺で支払いやってみたい方もぜひ。

event.ospn.jp

令和6年最新版 PCD8544 HAT

「基板が作れるようになったら、PCD8544ボードを自作するぞ…!」と思っていたのに、すっかり忘れていたことを思い出して、いよいよ作ってみました。PCD8544は、Nokia 5110という昔のケータイに使われていた液晶ディスプレイで、84x48のつぶつぶしたモノクロ具合がレトロな雰囲気のやつです。気がつけば初めて買ってから10年経っていました。やべえ。

akkiesoft.hatenablog.jp

akkiesoft.hatenablog.jp

Picoでも動かしていましたね。

www.raspi.jp

なんで自分で基板を作るのか

上の2つの記事では、それぞれ違うモジュールを使用しています。

一最初のものは汎用的な形状で、バックライトの制御もできますが、汎用ゆえにRaspberry PiRaspberry Pi Picoにつなぐにはケーブル接続が必須となり面倒です。

もう一つは中華系通販サイトやaitendoでよく買えた、26ピンだった頃のRaspberry Piのピン配置に合わせた形状のものです。ケーブル配置が不要で簡単に扱えますし、現在の40ピンのRaspberry Piにももちろん使えますが、バックライト制御ができないため、ライトが常時点灯するのが難点でした。また、配線がSPI向けのピンではなく、適当なGPIOピンに繋がれていたため、コードを書くにはソフトウェアSPIを使う必要がありました。さらに、ファッキンホット温度計では、センサーのケーブルをボードに直はんだ付けするなど、見栄えもイマイチになりがちでした。

上記の難点を解消するために、以下の要件でボードを設計してみました。

  • Raspberry Pi向けのボードにする
  • SPIのGPIOピンに配線する
  • バックライト制御に対応する
  • Raspberry Piの1,3,5,7,9ピンをスルーホールで提供することで、I2Cや1-Wireバイスの接続に対応

細かい点として、3枚ほどモジュールを持っていて、基板の厚みが1mm(汎用のやつとRPi向けその1)と1.2mm(RPi向けのaitendo版)に分かれていたのですが、どうやら1mmのほうが、PCD8544が基板にしっかり固定できそうだったので、基板の厚みは1mmとしました。

Raspberry Pi向けにボードは作成しますが、私としては基本的にuHAT Porter Picoを経由してRaspberry Pi Picoで使うことを意図しています。なので、私のボードシリーズを使ってもらえれば両方で遊べます。ぐふふ。

つくっていき

PCD8544のKiCad向けデータは、hackadayに投稿している人がいたため、これをベースに作ることとしました。基板が作れるようになったらといいつつ、他人のデータ頼りなんですが、MITライセンスなので、ヨシ!(後で私も公開せねば……)。

hackaday.io

なんやかんやでできたのがこちら。基板裏面でGPIO配線リストのテキストが抜け落ちてる時点のスクショですが。

表面はなにも印字がなく、配線も極力見せないようにしてみました。配置されるのはPCD8544と、そのバックライト用のLEDだけです。余白には必要に応じて自分でシールを貼ったりして、デコってもいいかなという意図が少しありました。なお、後述のRev.2ではその意図が破壊されます。

メインとも言える裏面。他のチップ部品はすべてこちらに配置しています。PCD8544向けのチップコンデンサー、バックライトLED用のFETとLEDの抵抗です。FETはかぐら氏のアドバイスによりBSS138というものが採用されました。Rev.1ではFETのプルダウン抵抗が不足していた点もコメントをもらって、パッチ修正で事なきを得ています。監修助かる……!

I2Cは、当初はQwiic/STEEMA QTという、Pimoroniでも最近採用しているJST-SH 4ピンのソケットを採用しようとしましたが、1mmピッチはさすがに無理と判断して、ただのスルーホールとしています。ラズパイ配置なので、使い勝手自体は悪くないと思います。L字のヘッダーかソケットをつけても、基板からはみ出さないような位置にしてあります。


練習

JLCPCBに発注して、発送メールが来た!と思ったら、10月はじめにJLCPCBが3日ほどホリデーに入ってしまい、どうも集荷まちの状態で休み入りされてしまったため、いつもより届くのが遅れました……その休み中に発注したuHAT Porter Picoの増産分(スイッチサイエンスさんに追加納品する用)が、数日差で到着していました……。

その間にやっていた、LED回路の練習。発注してから練習すんなと言われればそうですが。部品は抵抗以外を秋月で、抵抗(330Ω)は千石で調達しました。LEDは白・緑・青の3色を用意しました。青がやや暗め?ですが、まあ大丈夫な気がします。逆に明るすぎれば、PWM制御で暗くはできるので、それもまたヨシです。


届いた

そんなことなをしているうちについに到着。大変良いですね。比較で既存モジュールを並べました。

チップ部品を全部つけ終わったところで気づいた、先述のプルダウン抵抗不足による現象。LEDの制御用GPIOに触れるとLEDが光り、指を離して少しするとふわっと消えます(笑)。ふわっとの部分は多分チップコンデンサーによるものですね。これはこれで楽しそうなので良い気がしますが、抵抗を追加して解消しました。

social.mikutter.hachune.net

PCD8544は、右上のaitendoのモジュールから外して移植しました。問題なく表示されて一安心。(☝ ՞ਊ ՞)☝の画像データは、昔作ったデータをCircuitPythonで改めてデコードしたもの。試行錯誤した結果、フレームバッファにそのまま流せばOK、ただしY方向は8px単位でしか動かせないので、1px単位で動かすなら自分でビットシフトって感じでした。最初はループで回して1ドットずつ打っていたら500msとかかかっていましたが、1px単位移動&はみ出し対応を入れても最大16msくらいで描画できるようになりました。基板を作って終わりではないので、コード周りもいろいろ作っています。

プルダウン抵抗を入れる前のコード再実行のようす。こう言うタイミングでもふわっと消えるので、逆にアリまであった。

social.mikutter.hachune.net

プルダウン抵抗は10KΩのやつを、BSS138の2本足に乗っけて終わりでした。良かった。


Rev.2

Rev.2では、Rev.1のバグをつぶしつつ、表面にボタンを追加したくなったので追加しました。バックライトのオンオフをボタンでやりたくなったのと、あとはミニゲームとか作れたら楽しいかなとか思ったので。

まずRev.1のバグ修正がこちら。穴の配置も間違えていたッ……!

  • FETにプルダウン抵抗を追加してLEDの意図しいない挙動に対応
  • uHATサイズのマウントホールで、下側が1mm上よりになっていたのを修正

ボタンは、表面実装でよく使われている楕円のアレを個人的に初採用しました。アリエクでポチって、ちんたら基板を設計していたら、もうボタンが届きました。最近のアリエクマジで早い。おかげで、ボタン配置のシミュレーションが実物でできました。

というわけでこんな感じに(JLCPCBのプレビューから)。ボタンは4つにしました。部品の斜め配置、やってみたくなったんや……!GPIOの位置はシルク印刷を入れましたが、裏に書くか表に書くかでは結構迷いました。

裏。GPIOのシルクが残ってる時点のスクショだったけどまあいいや(雑)。ボタンの配線の都合でもとの配線が一部変わったりしていますが、他の変化はプルダウン抵抗程度です。

ついさっき発注したので、OSC東京に間に合えばいいな〜って感じですね。

まとめ

念願の自作PCD8544ボードができました。バックライトなしでも自然光だけでマアマア見れる、かわいいやつなので、また常設系のアプリを作れたらと思っています。データを取りっぱなしになっているCO2センサーのグラフとかの表示をやりたいなとか。

余った基板はチップ部品だけつけて、OSCで配ろうかしらん……?PCD8544は各自で用意してね!って感じにはなりますが、どうでしょうね?中途半端に実装するなら完成品で出せそれはそう。

Pimoroni Pico Plus 2Wがきた

Raspberry Pi謹製RM2モジュールが搭載された、Pimoroni Pico Plus 2Wを注文していたことを忘れていまして、今日届いて思い出しました。

基板表面は至ってふつうのPico互換ボードです。が、

そして基板裏面に疑惑のRM2モジュール。

言うまでもなく技適マークはないため、今回は「技適未取得機器を用いた実験等の特例制度」で開設届出を提出しました。この制度を活用して実験をしていきます。

技適未取得機器を用いた実験等の特例制度

私が愛用するCircuitPythonは、まだPimoroni Pico Plus 2Wに対応する気配すらないので、それは気長に待つことにしました。本当は自力でビルドとかを試していましたが、内部の時刻管理周りをmbedTLSに持ち込む必要があり、それ以外もたぶん色々ケアがありそうなのか、うまく動かないので一旦断念しています。

というわけでPimoroni版MicroPythonのRP2350向けのイメージをダウンロードして書き込み、前に作った温度センサー読み出しサーバーを動かしました。

GitHub - pimoroni/pimoroni-pico-rp2350: MicroPython builds for Pimoroni Pico 2 / RP2350 boards.

akkiesoft-pico/MicroPython/rp2040-temp-webserver at main · Akkiesoft/akkiesoft-pico · GitHub

とくにスクリプトを書き換えることなく実行でき、無線LANに接続できてWebサーバーにもアクセスできました。温度センサーの値が何やらおかしいので、読み出し方が変わっている可能性はありますが、これは一旦無視します。

消費電力は、無線接続前かつ 何も実行していない状態が0.08W、スクリプトを実行して無線接続後に何も処理していない状態がアイドル時0.26Wほど、無線アクセス中は0.31Wほどとなりました。Pico Wと大差ないかな、という感じです。

無線LANが搭載された Raspberry Pi Pico W で遊ぶ | Japanese Raspberry Pi Users Group

RM2、やるやんけ…

まだ謎のままのRaspberry Pi RM 2を搭載した、Pimoroni Pico Plus 2Wファーストインプレッションでした。

Picoがでた当初はESP32を使った無線モジュールがでていましたが、アレを使うくらいならESP32そのまま使うやん……?ってなったことを思い返すと、RM2なら省電力かつコンパクトに実装ができるので、今回のPico Plus 2Wのような使い方でもいいし、Pico用拡張ボード型になっても良さそうだし(ピン的にできるのかは不明)、自作RP2ベースのボードに載せてもいいし、可能性がひろがりんぐです。

今後の正式リリースはもちろん、日本の技適対応とかにも期待したいところですネ〜。

PimoroniのPico Jumboがきた。デッッッカ!!!!!

Pico 2とともにPre-orderしたら全然来なくてヤキモキしていたPimoroniのPico Jumboが、ついに届きました。いや、デッカ!Pico 2は待ちきれなくて、KSYさんとスイッチサイエンスさんから買って一旦足りてしまっているので、どうしたものか。運用に制限があるとは言えPico Plus 2 Wもポチってしまったので、さすがに持ち過ぎかも。

というわけでPico Jumboはこんな感じ。デカいというのはもう置いといて、この基板、緑色も含めてフルカラーの印刷なんです。なので再現度が高い(笑)!

裏側にPico 2が装着済みです。Jumbo側に実装された部品としては、ホンモノにはないリセットボタンと、ホンモノを再現するためのLED程度です。

スタンド用の棒が2本しているので、飾るだけの人は任意のピンに差し込んで立てることが可能。GPIOを駆使する人はデバッグピンを使えば良さそうですが、これだとすこし安定感に欠けるかも。というか、隣の穴用じゃなかったんだっていう。

GPIOを使わないなら、たぶんこの方が良いですね。

ちなみにサイズは18cmくらいx7.5cmくらいです。


使ってみる

2.54mmピッチどころではないですがスルーホール的な穴は空いていて、導通ももちろんするので、ワニ口クリップで接続してLチカをしてみました。今作っている自作基板のテスト用に組んだLEDの並列回路+FETを、AdafruitのPWMのサンプルを使ってチカチカさせています。

動画で。

youtu.be

Pico JumboのLEDが点灯したまま?

遊んでいて気づいたのですが、どうもPico 2の面を上にしていると、Pico JumboのLEDが点灯したままになるようでした。裏返すと消える。なんだこれw

回路的にはそれこそLEDと抵抗とFETだけっぽいので、なんかが作用しているんでしょうが、色々確かめた結果、Pico 2のLEDを指で覆うとLEDが消灯するのを見つけました。LEDが光を浴びると、Jumbo側のLEDがついちゃうんだ……!

かぐら氏の解説はこちら。自作基板のLED回路でもアドバイスをもらって感謝。

social.mikutter.hachune.net

まあ、ここのLEDが着いているかどうかはそこまで問題ではないし、ガチ運用するものではないはずなので、いいんじゃないでしょうか🤣

まとめ

クソデカPico 2という大変矛盾をしたボード、Pico Jumboで遊びました。こいつこそOSCで展示してなんぼやろという感じがするので、あちこち持って行って、へんなものを動かせればと思っています(変なものとは?)。

そのうちアキバにも並ぶといいですね。こう言うネタモノこそ並んでいてほしいし、店頭デモに使ってほしいですね。

Pico Jumbo (Pico 2 Aboard) - Board Only

Pimoroni Pico Plus 2 Wがでたけど、なんすかRaspberry Pi RM2って

Pimoroniといえば、ようやくPico Jumboが発売&されて、予約して多分も発送されたところですがどうやら昨晩Pico Plus 2 Wなるものを発売していたようです。

Pimoroni Pico Plus 2 W

Wってわけで、無線モジュールが搭載されているのですが、以前のPico Wi-Fi Packとは違って、ESPではなく、Raspberry Pi RM2モジュールを搭載します。

ちょっと待てーーーい!!!Raspberry Pi RM2ってなんすか!?

> Raspberry Pi RM2 module provides 2.4GHz wireless and Bluetooth connectivity

まあ、パット見で技適マークはなく、Mastodonで運用中のBotもRPi技適カウントの変化について報告していないので、技適がないことは確実なので、現時点で欲しい人は、特例申請なり暗箱なりの対処が必要です。さすがにわたしも気になるので買いましたが、特例申請を出して検証しようと思っています。

Pimoroniではさらりとした製品紹介しかありませんが、HacksterやTom's Hardwareではもうちょっと?書かれています。

www.hackster.io

www.tomshardware.com

Pimoroni has early access to the "Raspberry Pi RM2" the module which could one day grace the official Raspberry Pi Pico 2 W.

将来Pico2Wに搭載される可能性があるRM2モジュールへの早期アクセスを提供しています。ってところでしょうか。Raspberry PiとPimoroniはリセーラーという関係もありますが、PaulがRaspberry Piロゴコンテスト勝者 == RPiロゴの作者であるという点でも深くお関わりがあるので、こういった先行採用もあり得るのかもしれません。

さておき、Raspberry Pi RM2が技適が通して一般的に買えるようになったら、RP2採用自作ボードにPico W相当の無線機能を実装できるので、ありだと思うんですよね。

But the icing on the cake is the Raspberry Pi RM2 module which looks like an ESP32 type package but inside the module is an Infineon CYW43439.

製品ページにはないですが、Infineon CYW43439を採用とのこと。

Raspberry Pi RM2のリリースが今後でてきたら、raspi.jpの方にも書こうと思っています。さすがにラグは大きくでないと思うけどなあ?