あっきぃ日誌

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

令和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の方にも書こうと思っています。さすがにラグは大きくでないと思うけどなあ?

iPhone 16がきたので、移行祭りとかアクセサリ買い揃えとかの話。

10/2〜10/9くらい納品予定だったはずのiPhone16が、昨日発送通知されて、今日到着しました。マジで?

ひとまずミクと色比較。大事じゃん?

というわけで、こないだ書いてた通り、iPhone玉突き移行をやりました。

akkiesoft.hatenablog.jp

移行作業

移行後は、まあまあの確率でアプリのログインセッションが切れるので、再ログイン祭りでした。Appleのあたらしいパスワードアプリがいい感じなので、パスワードを保存していない(Chromeの方に保存している)やつも、入れられるやつはApple側にも入れました。あと、もう使えないアプリがいくつかいたのも削除。

移行でだるかったのはSlack。再ログインどころか全部やり直しって、お前マジか。Discordはログイン状態を維持したのに。それとMicrosoftのAuthenticator。客先のポリシーでTOTP同期ができないやつが全部再設定必須で、それ自体は仕方ないにせよ、再設定しなければ玉突き移行のiPhone 11 Pro→iPhone 12 Miniのパートができなくなるので、泣きながら再設定。休日に仕事の端末とか環境など触りたくなかったでござる。同様に、Oktaも移行不可で、休日に客先環境へのログインを強いられました。許せん。

玉突き移行のiPhone 11 Pro→iPhone 12 Miniのパートは、12 MiniのiOSを18に上げ忘れてリセットしてしまったせいで、先にiOS 18にしていた11 Proのデータを移行できず、ウィザードでiOS18にアップデートする画面がでてもボタンがタップできない現象にあってしまったので、やむを得ず適当に12 MiniをセットアップしてiOS 18にアップデートしてまたリセットという手順を踏みました。iPhone 16の移行ではモヤモヤのスキャンで無線転送にしましたが、これだとめちゃくちゃ遅かったので、iPhone 12 MiniはMacで取得したバックアップを復元する方法にしました。ストレージ使用量が違うので比較はできないですが、このほうが早いんじゃないかなあ……?移行後の再ログイン祭りとSlackの入り直しは同様でした。

iPhoneの移行をやるのって、たぶん数年ぶりなので、こんなに大変だったかしら……って感じになりました。たぶんこれでもiCloudバックアップとかChromeのパスワードマネージャーとか端末間クリップボードとかで、だいぶ楽はできているはずですけどね。

ケースと保護フィルム

雑に東急スクエアエディオンで調達。エレコムのガラスフィルムと、ハードタイプの薄いケース。

ケースに関しては、まあ一旦様子見かなと思って買ったので、期待はしていなかったのですが、バリの処理が甘くてフチがザリザリしてるのと、何度か付け外しをしたらもう割れてしまったので、薄いので仕方ないにせよ、さすがに期待通りの期待できなさ(???)って感じでした。Amazonのリンクを貼るのも憚られる。

カメラであそぶ

夕方にPokemonGoのイベントをこなしがてら散歩に出てカメラを振り回してきました。

桜台公園。iPhoneの青色の表現が好きなので、晴れた日にあらためてって感じですね。あした晴れそうだしあしたやな。

気持ちはわかるがそこに書くな。

ミク〜。

動画はこんな感じ。60fpsで撮ったからかもしれないけど、1xから2xに変えた時の動きがぬるっとしていてよさげ。

youtu.be

んで、iPhone16のカメラボタン。個人的には割と気に行っていて、慣れれば結構いけそうという感触でいますが、カメラの起動とかが従来のやり方(わたしの場合はロック画面で右下長押しのやつ)で体に染み付いてしまっているので、ボタンで起動に慣れるのには時間がかかりそうという印象です。ズームの変更も、発売日に店頭のデモで触った感じ底まで悪くなかった印象ですが、ケースを付けるととたんに触りにくくなってしまった感じがしました。これはたぶんケース側の問題というか、そのあたりの触り心地が改善されたケースの登場待ちなのかなという気がしています。

ストラップ

これもやはりケースの選択ミスだったんですが、ハードケースがツルツル過ぎてどこにおいても滑り落ちそうになって怖いのと、iPhone 11 Pro比較でもやや大きくなってしまっているので、すでに3回くらいてから落としかけているのがiPhone 16の難点です。ジャパニーズピーポーのスモールハンドを舐めるなApple。諦めて次はMiniを出せ(迫真)。

妥協として、最近流行り?らしい、ビニールタグをケースに挟み込んでストラップにして肩にかけられるやつをダイソーで調達しました。余計な買い物が多いな?

色は本体に合わせた感じのグリーン系で。なんというか、デザインの敗北みたいなものを感じずにはいられない佇まい。これでいいのかApple。ついでに夏コミでゲットしたタツノコッソ先生のゆゆ式ステッカーを挟み込んでみました。そこはミクじゃないんかい。

ステッカーの位置を変えているあたりでケースを割りました。すぐに次を買わなきゃ!って位置じゃなかったのが幸いです。まあ、0.6mmだから……。

ところで、ダイソーの余計な買い物のひとつがこちら。ダイソーでコキが買えるとは思わないじゃん……。どの百均でも見かけるようになったコンテナーのブリキ缶が乗るようになってます。写真のように長いやつだと2つ、短いやつだと3つ載るみたいです。あと、買い物かごはかわいかったのでつい。


余談: Tootdonと代替

11 Proを12 Miniに移行した結果、Tootdonが再入手不可のため、お別れとなってしまいました。そういやそうだった。よって、11 Proを手放す or リセットすると、Tootdonとはいよいよ完全にお別れになります。ってMastodonに貼ったら、まだ持ってたんだって言われました。それはそう。でも、実はまだ使おうと思えば使えるんですよね。

最近のMastodonクライアントは、TapbotsのIvoryをサブスク課金して使っていますが、相変わらずストリーミング対応する気がなさそうなので、だいぶ悩ましいものです。動画の圧縮ができるのは大きいので、まだ課金はすると思いますが……。

(実験中らしいながら)ストリーミングに対応したクライアントとして最近知ったのが、Nightfox DAWNというアプリ。UIはシンプルでありつつカスタマイズ性が確保されていたり、投稿画面を開くボタンと投稿をするボタンが指の届く位置にあったり、欲しい機能はだいたいあるという感じで、600円買い切りながら、これは久々に大当たりという感想です。

noppe.dev

動画エンコード非対応な点と、時間がたってからアプリを開き直した時のストリーミング中断中のTL補完がないのと、共有シートでのWebサイト共有時のテキストとカーソルの位置がイマイチな点と、いくつか惜しいところはありますが、もうちょっと整理できたら機能要望を送ってみても良いかもと思っています。

さいごに

単に古いやつのリプレース的な意味合いで買ったので、淡々と移行して、まあひとまずアプリ類は一通り動くようにできたって状態で、新機能に感動とかはこれからなのかなって思ってます。

ところで、カメラが出っ張っているやつ、どうにかならんのか……。11→12でも微妙に出っ張りが増えてて、そこから3世代スキップしたら、テーブルに置いたときのガタツキとんでもないことになってて真顔になっちゃった(ケースのせいもあるんですけど)。ガタツキを補正するケースとかあったりするんかしら。あるなら検討したいカモ……。