inSmartBank

AI家計簿アプリ「ワンバンク」を開発・運営する株式会社スマートバンクの Tech Blog です。より幅広いテーマはnoteで発信中です https://note.com/smartbankinc

Inside #Board43: 基板編 #rubykaigi

こんにちは! id:masawadaです。先日のRubyKaigi 2026では、たくさんの方々にハックスペースをご利用いただきまして、ありがとうございました。またPicoRubyワークショップについても多くの方にご参加いただき、とても嬉しく思います。

blog.smartbank.co.jp

さて本日から4日間、このPicoRubyワークショップと、それにまつわる裏話的な記事を連載します。今回実施したワークショップという新しい試みは、ハードウェア、ソフトウェア、コンテンツなど、それぞれの担当メンバーがこだわりをもって作りあげたものです。準備の過程での苦労や工夫など、裏話的な内容をお伝えできればと思います。

初回となる本日は、ワークショップで使用したオリジナル基板「Board43」についてご紹介します。

Board43とは

Board43は、RubyKaigi 2026のPicoRubyワークショップのために制作したオリジナル基板です。

Board43開発版(量産版は黒のPCB)

はんだづけは不要で、そのままUSB-CケーブルでPCに接続するだけでPicoRubyを体験できるように設計しました。基板上にはLEDマトリックスやスイッチ、パッシブブザーなどを搭載しており、参加者が実際に手を動かしながら楽しめる構成になっています。

なお、基板データはGitHubのリポジトリで公開しています。基板の設計にはKiCad 9.0を利用しました。また、発注先はJLCPCBです。LCSCのパーツ番号をすべてのフットプリントに記載しているため、このままJLCPCBで発注することも可能です。

github.com

設計データを眺めるだけで、今回のワークショップでどんな体験を作ろうとしていたのか、少しでも伝わるのではないかと思います。

KiCadのPCB設計画面

企画のはじまり

もともとの話では、「LEDを光らせよう」という程度のイメージから始まりました。

この時点では、オリジナル基板を作ることは想定していませんでした。せいぜいRaspberry Pi PicoやESP32系の拡張基板を用意することはあるかも、という程度の感覚です。

ところが企画を詰めるなかで、このリポジトリを見て、近いことをやりたいという方向で話が進んでいきました。

github.com

これは、20x20の単色LEDマトリックスを搭載したカードサイズ基板のリポジトリです。流体シミュレーションしながらLEDを光らせられる、というところが特徴です。

自分のスキル感としては、ブレッドボードでArduinoやRaspberry Pi Picoなどとセンサを組み合わせて遊んだことはあり、KiCadのチュートリアルも触ったことがある程度でした。そのため、内心は本当にやるのか……という気持ちになりつつも、参考になるリポジトリがあるなら実現できないこともなかろう、と了承しました。

ここから、カードサイズの小さなプロダクトをまるごと作るプロジェクトが始まりました。

基板を設計する上で考えたこと

パーツの選定

初期の段階では、LEDマトリックスとRP2350Aを搭載したRaspberry Pi Pico 2互換基板を作るつもりで、ボタンやブザーなどの搭載は検討していませんでした。

しかし、参考として購入したWaveshareのRP2350-Matrixで遊ぶうちに、インタラクションがあるとより楽しいのではないか、という話になりました。RP2350-Matrixは8x8のLEDマトリックスに加え、6軸の慣性計測ユニットを搭載しているため、傾けてLEDを操作することができます。

www.waveshare.com

これでブロック崩しみたいなゲームを作れるね、となったところから一気に企画が広がりました。最終的に、6軸慣性計測ユニットとボタン、パッシブブザーを搭載することにしました。

RP2350-Matrixで動かしたブロック崩し

一方で、バッテリーの搭載は諦めました。リチウムイオン二次電池は取り扱いが難しく、参加者の多くが飛行機に乗ることも考えると、安全性を十分に担保するのが難しいと判断したためです。

また、消費電力を考えると、一次電池で動かすのも容量の面から現実的ではありません。そもそもバッテリーを配置する面積が大きくはとれず、ボタン電池だとLEDを大量に駆動するほどの電流は取り出せません。そこで、各自手持ちのモバイルバッテリーで給電してもらう方針にしました。モバイルバッテリーは、電力消費が少ないとスリープする仕組みのものが多くあります。しかしBoard43の消費電力であれば、スリープしないだろうという見立てもありました。

カスタムスポンサー企画としてのデザイン

Board43は、スマートバンクによるRubyKaigi 2026のカスタムスポンサー企画の一部として制作したものです。

そのため、基板には製造者として企業名を載せています。一方で、企業ロゴを全面に押し出すようなデザインにはしませんでした。あくまでRubyKaigi 2026のワークショップで使われる道具である、という考えのもとにこの方針をとりました。

その代わり、分かる人には分かるくらいの粒度で企業らしさを入れることにしました。

Board43おもて面

たとえば、基板のサイズはクレジットカードサイズぴったり*1にしています。ワンバンクは、昨年まで「B/43」という名称でサービスを提供していました。そこから、今回の基板名は「Board43」としています。

また、ステータスLEDの配置にも少し遊びを入れています。LEDがまっすぐ並ぶのではなく、やや斜めに配置することで「Board/43」のように見えるようにしました。かなり分かりづらいですが、こういう分かりづらさも含めて、ちょうどよい塩梅だったのではないかと思っています。

そのほか、よくあるクレジットカードでICチップが埋め込まれているあたりにRP2350Aを配置しているのも、意図的に設計したポイントです。

裏面シルクの遊び

裏面のシルクにもいくつか遊びを入れています。

PCB裏面(KiCad 3Dビューアー)

まず、RubyKaigi 2026のロゴを入れました。ワークショップで使う基板なので、イベントの記念品としても手元に残るとよいだろう、という考えです。

一方で、公式グッズのように誤解されないようにも配慮しました。RubyKaigi 2026のロゴだけが大きく入っていると、公式に配布されている基板のように見えてしまう可能性があります。そこで、企業側で制作したものだと分かるように文言を足し、自社キャラクターのワンバンも配置しています。

製造者表示の文言としては、弊社発行のカードにあるような"issued by ..."の表現を取り入れました。Board43自体がカードサイズであることもあり、この表現とは相性がよいだろうと考えました。

ただし、単に"issued by ..."と書くだけでは少し唐突に見えてしまいます。そこで、クレジットカードのストライプを模した意匠も加えました。これによって、カードらしさと基板らしさが混ざった、Board43らしい見た目になったと思います。

ボタンの配置

細かいですが、右利きの方は縦持ち、左利きの方は横持ちにすることで、利き手でボタン操作しやすいような配置にしています。(個人的に)Rubyはコミュニティ含めてインクルーシブな言語だと感じており、こういうところにも気を払えるといいな〜と思いながら設計していました。

3Dモデルの作成

基板の設計とは直接関わらないのですが、KiCad組み込みで用意されていない各種パーツの3Dモデルも作成しました。3Dビューアーで表示した際もすべてのパーツに3Dモデルが割り当てられています。

パーツすべてに3Dモデルが割り当てられている様子

3DモデルはFreeCADで作り、stepファイルとしてエクスポートしています。

www.freecad.org

もともとAutodesk Fusion 360を利用することが多かったのですが、ライセンスの関係上FreeCADで作る方針を決め、YouTubeにアップロードされているサードパーティの教材などで学びながらモデルを作成しました。とはいってもUSB-Cコネクタのような難しいパーツはある程度簡略化していますし、それ以外はシンプルな形状のパーツだったので、1日程度でひととおり揃えられました。

試作は4段階

Board43は、いきなり量産基板を作ったわけではありません。大きく分けて4段階の試作を行いました。

RubyKaigi 2026で展示した試作品

試作1: LEDマトリックス基板

まずは、LEDだけの基板を作りました。これはLEDマトリックスまわりの回路や見え方を確認するためのもので、まずは「光らせる部分」が想定どおりに動くかを確かめました。

とくに、LEDマトリックスは消費電力が大きくなると予想していたため、安定して動くのかを見極めるために単体の基板として設計しました。ワークショップではLEDを扱う体験が中心になるため、ここが不安定だと全体の体験に大きく影響します。

これがうまく動いた段階で、ワークショップとしては最低限実現できることが分かったため、以下の記事を公開しました。いま思うと、かなりギリギリの進行ですね。

blog.smartbank.co.jp

試作2: 本体基板

次に、本体だけの基板を作りました。LEDマトリックス以外の面に、RP2350Aボードとしての各部品を配置できるか確認するためのものです。

LEDマトリックスは原価が高いので省略し、最初のLEDマトリックス基板とデュポンケーブルで接続する形にしました。

ボタンやパッシブブザーの配置もこの時点で確定し、Board43全体のレイアウトもおおよそ決まりました。実際に利用する際の持ち方やサイズ感、コネクタの向きなどは、画面上の設計だけでは判断しきれません。結果的に、この段階で製作した基板が、ほぼ最終的な量産基板の形になりました。ただし、ステータスLEDについてはBoard43の名前が確定していなかったこともあり、雑に配置していました。

試作3: 電源まわりの検証基板

本体だけの基板を製作するのと並行して、電源まわりを検証する基板も作りました。

試作2の本体基板では、RP2350-Matrixを参考にしたLDOレギュレータや、USB電源ライン保護ICを載せていました。しかし、設計の途中で電流の逆流保護がないことに気付き、どこかのタイミングで保護ICを組み込む形にしようと考えました。

そこで、USB-Cから5Vと3.3Vを取り出す電源まわりだけの基板を別に作成し、動作を検証しました。

本体動作の安定性についてももちろん気にしていましたが、一番怖いのは利用者のPCやUSBポートを壊してしまうことです。そうしたことが起きないように、USB接続まわりの回路は特に慎重に設計し、試作して確認しました。

電源基板の動作を確認する様子

試作4: 量産前基板

最後に、量産前基板を作りました。みなさんにお配りした基板はこれがベースになっています。LEDマトリックスも搭載し、全体のレイアウトも最終的なものに近い形で作りました。

しかし、実は最終的な量産基板とは少し異なっています。量産前基板での確認を経て、ステータスLEDの抵抗値を変更したり、配線を基板の端から離したりといった修正を行いました。

こうした細かな調整を反映したものが、最終的な量産基板です。

全数の検品

量産基板を発注すれば終わり、というわけではありません。ワークショップで使うためには、参加者に配布できる状態にする必要があります。

袋から出してみたら故障していた、ということがあると、ワークショップ参加人数を当日に調整しなくてはならなくなりますし、何より参加者のみなさまに申し訳ないことになります。そこで、量産基板が届く前から、書き込みや検品のための準備を進めました。

まず、動作確認用のファームウェアを用意しました。基板が正しく動くかを確認するためには、LEDや各種入出力が期待どおりに動作するかを簡単にチェックできる仕組みが必要です。毎回手作業でプログラムを書き換えて確認するのは現実的ではないため、検品専用のファームウェアを作りました。

あわせて、ファームウェアを書き込むためのツールも作りました。量産した基板に対して、同時に4枚ずつファームウェアを書き込み、動作確認を行っていきます。この作業をできるだけ効率よく、かつミスが起きにくいようにするため、書き込み用の手順やツールを整備しました。

masawada.hatenablog.jp

さらに、検品用の治具も作りました。基本的な機能は動作確認用のファームウェアでチェックできますが、GPIOの入出力などのスルーホールについてはピンヘッダが未実装なため、プローブをあてて確認できるようにしました。ポゴピンとデュポンケーブルを組み合わせて即席の治具を作り、LEDが全て点灯すれば問題なし、という形で確認できるようにしました。

スルーホール検査用の治具

また、細かなところでは、基板を固定するためのトレーを3Dプリンタで作成しました。4枚ごとの流れ作業になるので、こういった治具があると効率が上がります。

今回の検品では、LEDマトリックスの一部が点灯しない基板が1枚見つかりました。この基板については、展示用に回すこととして有効活用しました。

書き込みの様子。グレーのキーを押すと検証ファームウェアが書き込まれ、白のキーを押すとPicoRubyのファームウェアが書き込まれる

梱包までが基板製作

検品以外にも、まだ作業はあります。

今回、Board43は面付け*2された状態で発注していました。本来はdepanelオプションを付けて、工場側で切り離してもらう予定でした。

ところが、工場からの発送が遅れに遅れたため、最終的にはdepanelをキャンセルし、面付けされたまま発送してもらうことにしました。

面付けされた基板たち

つまり、自分たちで手割りすることになりました。これは本来あまりやりたくない作業です。手で割ると基板に応力がかかり、場合によっては部品の破損や、はんだ割れが起きる可能性があります。とはいえ、スケジュール上やむをえず、自分たちで切り離す判断をしました。

切り離したあとは、基板の端に残ったバリをやすりがけして取り除きます。その後、イソプロパノールで洗浄し、1枚ずつ帯電防止袋に詰めていきました。

実は、量産基板が届いたのはRubyKaigi前週の金曜日でした。火曜日には現地入りすることを考えると、当日中に函館へ発送する必要があります。多くの方に手伝っていただき、届いてから2時間程度でこれらすべての工程を終え、無事発送することができました。

協力してバリ取りから袋詰めまで作業した様子

おわりに

今回は、PicoRubyワークショップで使用したBoard43の基板についてご紹介しました。最初はLEDマトリックスを光らせる企画として始まったものが、気づけばオリジナル基板を設計し、試作を重ね、量産し、検品用のファームウェアや治具まで作るプロジェクトになっていました。

Board43には、ワークショップを円滑に進めるための工夫だけでなく、RubyKaigi 2026の企画として自然に見えるためのデザイン上の配慮や、ワンバンクらしさをさりげなく入れる遊びも詰め込んでいます。

設計初心者ゆえの甘さもあるかと思いますが、ワークショップで利用するには十分な出来のものをご提供できたのではないかと自負しています。

明日は、Board43を動かすためのソフトウェア側の話をご紹介します。PicoRubyワークショップの裏側を引き続きお楽しみください。

*1:ISO/IEC 7810で規定されているサイズ。縦横の長さと角丸半径を規定に合わせています

*2:複数枚のPCBをひとつのパネルで生産すること。コスト・時間効率がよくなる

We create the new normal of easy budgeting, easy banking, and easy living.
In this tech blog, engineers and other members will share their insights.