RP2040の手はんだ実装汎用サポート治具を作った

tl;dr

  • RP2040は0.4mmピッチのはんだづけが必要なMCUだよ。実装前の位置決めが、実装の成功を分けるポイントだと感じているよ。
  • 位置決めをサポートする治具をかつてつくったけれど、PCBごとにサポート治具を作るのは面倒だけど、汎用治具を作ったよ。
  • 実際にキーボード基板に適用したけれど、実装が凄く楽になったよ。

RP2040を手はんだ実装しよう

RP2040は、Raspberry Pi Picoに使われているマイコンで、最近電子工作では多く使われています。 QMK FirmwareがRP2040に対応したのもあって、私自身が作る自作キーボードはRP2040を実装するものになっています。

一方基板に組み込むには、RP2040は0.4mmピッチのICとなっており、かなり実装難度が高い物になっています。 私自身はこの実装難度にトライするのが面白く、「手はんだ実装指南ガイド」を作成し、さらに「手はんだ実装挑戦開発ボードキット」販売するほどです。

docs.google.com

74th.booth.pm

74th.booth.pm

この指南ガイドでは、マスキングテープで固定し、ルーペで拡大して確認するように求めています。 この方法でほぼ失敗することは私はなくなりましたが、なかなかに気力を消費します。

以前位置合わせ治具を作っていたが、無駄が多いと感じて止めてしまった

一番最初にRP2040にトライしていたときは固定補助具を開発して利用していました(既に2年前)。

この作戦は非常にうまくいったのですが、「RP2040を使った基板を作る度にこれを作らねばならないのか?」という無駄をかんじてしまい、手はんだで頑張るテクニックを磨く方に行きました。

RP2040を使った自作キーボードキットを作る

RP2040の手はんだ技術を身につけたことに満足した私は、自分の作る自作キーボードキットにおいて、RP2040を直接実装することを考えました。その方が、開発ボードを使うよりもコストが安く済みます。そして、RP2040の実装自体は私の方でやっておけば、購入者にとってはダイオードとソケットさえ実装できれば良く、開発ボードを使ったキットと苦労は変わらないのではと言う結論に至りました。

自作キーボード専門の即売会イベント、キーケットにて、RP2040を使った自作キーボードキット3種を販売しました。3種とも、RP2040を私の方で事前にてはんだしたキットになります。

74th.booth.pm

74th.booth.pm

74th.booth.pm

74th.hateblo.jp

この時、20個ほどRP2040を実装する必要がありました。

この時もやはりRP2040のはんだづけが一番苦労しました。そしてかなり神経を使い疲れました。

途中から、はんだごてでの実装よりも、プリヒーターを使った方が楽という結論に至り、その方針に変更しました。すると、位置合わせが割と楽になりました。

そして、持っていくキットの作成が完了しました。

プリヒーターを使えば良いのですが、もっと簡単にできないかと考えるようになりました。

汎用位置合わせ治具を作る

以前行った位置合わせ治具の作戦は良かったとして、これを毎回作り直さなくても使える様にならないかと思いました。

そこで、汎用位置合わせ治具のアイディアがでてきました。

これは、予め位置合わせにピンヘッダを通す穴を多数開けておき、その穴のうち最低2個を使うように合わせたPCBを作成すれば、どのようなサイズのPCBでも位置合わせに活用できるものです。

位置合わせ治具PCB

位置合わせ治具と、RP2040のまわりに穴の空いたPCB

RP2040のまわりに穴の空いたPCB

ピンヘッダを貫通させて位置を合わせる

実装を終えて取り外す

これにより、位置合わせを慎重に行う必要がなくなりました。新たなRP2040を使ったPCBを作ったとしても、このいくつか対応した穴を開けておけば、利用できます。

キーケットで完売してしまった自作キーボードキットの第2ロットは、この仕様にしたところ、非常に扱いが楽になりました。

Boothにて販売中

こちらの汎用治具は、Boothにて販売しております。

74th.booth.pm

販売しておりますが、KiCadファイルはこちらで公開しておりますので、良ければ是非使ってみてください。

github.com

技術書典16に新刊『USB完全に理解した -通信仕様とコントローラ編-』を出します

tl;dr

  • USBデバイスを電子工作で作れると楽しいよ
  • マイコンのUSBコントローラの仕様書みてもさっぱりだったよ
  • 通信仕様や、USBコントローラを使うときに必要な知識を、技術書典16の新刊『USB完全に理解した -通信仕様とコントローラ編-』にまとめたよ
  • TinyUSBの使い方もあるよ
  • 5/26(日)オフラインイベントもあるよ!! ブースは「え06」!!

techbookfest.org

USBデバイスを電子工作で作れると楽しい

私は自作キーボードを楽しんでいます。キーボードというPCを操作するデバイスとして、様々なアイディアを実現することができます。キーボードの他に、M5Stackをトラックパッド化するなど、いろいろできます。

74th.hateblo.jp

キーボードのようにUSBデバイスを作ることで、PCを操作できるガジェットが作れるようになります。

これをキーボード以外のデバイスにも手を伸ばしたいと思いました。

マイコンのUSBコントローラ

RP2040などのマイコンにはUSBコントローラが付属しています。 マイコンのデータシートや、リファレンスマニュアルに、USBコントローラの説明はありますが、それはUSBの通信について理解している方のための内容になっています。 そのため、それだけを見てUSBデバイスが実装できるかというと、そんなものにはなっていません。

そして、多くのUSBデバイスがTinyUSBなどのUSBライブラリを実装しているとあります。 しかし、それらのUSBライブラリをどうやって使えば良いのか、情報が少ないのが実情でした。

これは「USBキーボード」を作ろうとする分には見よう見まねでなんとかなりそうには見えましたが、それはUSBデバイスが実装できたとは言えないのではと思いました。 そこできちんとUSBを理解したいと思いました。

実装方法ではなく、きちんと理解するための本を作った

USBの通信仕様や、USBコントローラの動きについて、仕様を読んだり、解説書を読んだり、実際に使ってみたりして、USBデバイスを実装する為の知識を付けることにしました。

RP2040を用いてUSBコントローラへの命令を直接実装して、ロジックアナライザで信号を直接見たり、WiresharkでUSBの通信を見たりしていました。

そして、学んだことのアウトプットが技術書典16の新刊『USB完全に理解した ー通信仕様とコントローラ編ー』になります。

TinyUSBもあるよ

実際にUSBデバイスを作る時には直接USBコントローラを操作することは少なく、TinyUSBなどのライブラリを使って実装することを知りました。 USBコントローラの働きと、ファームウェアでやるべきことを理解した上で、ライブラリを見ると、このライブラリがどの層を解決するのかよくわかります。

本書では、TinyUSBの役割と、TinyUSBの使い方を扱います。

目次

目次は以下のようになっています。本文28ページの短めにまとまった書籍です。

1. USB通信のプロトコル

USBの通信プロトコルを、物理層から、パケット、トランザクション、転送方式等に、順にレイヤーを解説します。

2. ホストとの通信の開始とディスクリプタ

USBの通信の開始処理と、デバイスからホストにUSBデバイスとしての仕様を伝えるディスクリプタを解説します。

3. マイコンの持つUSBコントローラの機能

RP2040を例に、マイコンのUSBコントローラの役割と、それに対してファームウェア側でやるべきことを見ていきます。

コントロール転送、バルク転送における、ホスト、USBコントローラ、ファームウェアのやりとりを、シーケンス図の形で記述しています。

4. USBライブラリTinyUSBの役割と、利用

USBコントローラの使い方までを理解したところで、実際にUSBデバイスを実装するときに使うTinyUSBを解説します。TinyUSBの役割や、TinyUSBを使ったデバイスの実装方法を解説します。

技術書典16にはオフラインイベントにも出展します!

というわけで、技術書典16に新刊を持って参加します!

techbookfest.org

今まで技術書典3〜15に参加し、オフラインイベントのある時にはオフラインでも参加してきました。 今回も同様にオフラインイベントにも出展します。

ブース番号は「え06」になります。

オフラインイベントの参加には入場券が必要です。ログイン後のマイページから購入することができます。忘れずに購入するようにしてください。

では、技術書典16を楽しみましょう!

天下一キーボードわいわい会 vol.6に参加しました!

天下一キーボードわいわい会とは

天下一キーボードわいわい会とは、自作キーボードを始めとする入力機器や周辺マテリアルを、参加者が持ち寄って展示したり、その話を聞いたりする日本というかおそらく世界最大のイベントです。

tenkey.connpass.com

自作キーボードは、デザイン的な素敵さだけでなく、エンジニアリング的な機能や着想にも面白いところが多いです。そして普段使いできるため、生活に還元されます。そんな多くの趣向を凝らしたキーボードが集まるそれは唯一無二のイベントでした。

展示してました

私はM5StackCore2とM5Dialを使ったSparrowDial 2台と、Sparrow60Cを展示していました。

キーケットにも出展したものと同じ物です。Androidタブレットも置いて、トラックパッドとしての操作を試せるようにしていました。

多くの方に触っていただいて、M5Stackのコアモジュールを使ったトラックパッドの操作感が良いのを体験してもらうことができました。

見てきたキーボード

私のキーボードはこの辺にして、見てきたキーボードの写真を載せていきます。

アマチュア無線の機器を操作するためのキーパッドでした。最初は右側のパドルが見たことがないもので気になってみていたのですが、実際にキーパッドで機器を操作して、信号が変わって音が変わるのを体験することができました。こういう専用の機器のマクロパッドは良いですね。

オープンソースの3Dスペースマウス。見たことがなかっもので、どのような操作感になるのか想像できず、実際にポインタを操作してみたいと思いました。

Cocot46Plus初めて触りました。キーキャップと合わせられてて素敵です。人差し指のトラックボールと、伸ばした親指のロータリーエンコーダーの位置が良いなと思いました。

セラミックキーキャップを使われたキーボード。セラミックキーキャップは、プラスチックでは実現できないレベルの硬質さで素敵でした。

KeyBallを垂直に立てたキーボード。最初見たときは不安定なんじゃないかと思いましたが、触ってみると割と安定感がありました。そして、軽いスイッチを採用していて、軽い操作、フェザータッチ気味になり、これでも十分実用そうと思いました。素敵です。

こちらもKeyBallのテントされたもの。3Dプリンタで足が作られ、見た目不安定そうに見えましたが、触ってみると思いのほか安定しているように感じました。

かわいいのに、ロータリーエンコーダやらジョイスティックやら、フットスイッチやら、豊富な親指キーやら、多機能に詰まった作品でした。あらゆる操作が快適にできそうで素敵です。

写真だとわかりにくいですが、右側はKeyBallの2倍くらい大きなトラックボールを備えたものでした。トラックボールは大きければ大きいほど操作しやすいと思うのと、それを使える位置に仕込まれていて、凄く素敵に思いました。左手の小さいトラックボールも、これをホイールとして使う姿を容易に想像できます。ボール以外のデバイスを仕込むよりも賢いと思いました。

Lofree Switchに、3Dキーキャップを付けたもの。Lofree Switchの軽く薄い感じが、わずかに動かせば使えるという、3Dキーキャップの繊細さと相まって良さそうでした。見た目でカチャカチャする感じかなと思ったのですが、硬質な打鍵感で良かったです。

寝そべって操作できるキーボード。その発想はなかった!という感じと、確かに欲しい!と共感しました。

世界観に合わせたロータリーエンコーダーのノブでしたが、通常の円筒形のノブを使った時の押さえつけて回さなきゃいけない感じから、引っかけて回す感じになり、これはアリなのではと思いました。

レジンで作られた素敵なパームレスト。これが机にあると華やぎそうです。

また、パームレストって柔らかい者だと思っていたのですが、硬いものも良さそうと思いました。

FR4CNCと、MJF 3Dプリントのケースを中心とした展示。FR4素材がCNCで使えると言うことを初めて知りました。金属よりも軽いとのことでしたが、3Dプリントとは違う硬い質感があり、凄く良い素材に思いました。MJFの方も、製品のようなプラスチックケースと遜色なく、凄く良かったです。

こちらもKeyBallを3Dプリントでテントさせた者。3Dプリント部品を複数組み合わされているように見えて、こうやってイテレーションしてテントの研究していけば良いのかと勉強になりました。親指部分のカーブしたキーキャップも、親指がハマる感じで良かったです。

右のシフト位置が、3つのキーになっていて、なるほどと思いました。F1-5も良い感じにおさまっており、普段使いしてちょっとしたところに手が届く感じで素敵だと思いました。

Xで拝見して気になっていた、本物のTrackPointが収まる格子配列キーボード。まだTrackPoint部分は繋がっていないとのことでしたが、ケースに付けられることでしっかりと固定されていてブレる心配もなさそうで、かつ高さも最適な感じで、是非操作できるようになったら触ってみたいと期待させてくれました。

開発中のまだモックとのことですが、トラックパッドが中央に収まるのは理想的だなと感じました。そして、この親指キーの部分が少し低くなっているのは理想的です。KeyBallやErgoArrowではMXとChocを組み合わせることで実現していましたが、全部Chocで済ませて2段構えるのも3Dプリントケースなら理想的にできると感じました。

こちらはスポンサーのREALFORCEのブースにて、このダークモーブという未発売のキーキャップが凄く素敵でした。ワインレッドやパープルほど主張しすぎず、でも赤を感じさせる、ほどよい個性的な色合いでこれはほしいと思いました。

Xでもお見かけしたHHKBを3Dプリントキーキャップで格子配列化したもの。一発ネタかと思いきや、わりとキーがブレる感じはなく、実用できるんじゃないかと思わせる作りになっていました。

KeyBallを木製ケースに収め、パームレストと合わせてチルト化したもの。木製ケースにあると一気にデジタ ルなキーボードがシックに収まり、高級感が出ていました。これは良い作品が執筆できそう。

世界一硬くて重い木材で作られたパームレスト。持ち上げさせてもらうと、これは木であることを疑うくらいの重量感でした。硬いパームレストは安定性のために重さが重要で、それを兼ね備えていて素敵でした。ホームインテリアとして、木材の方がデスクに合いますよね。

ボールキャスターの付いたアームレスト。言われてみると、キーボードとマウスを往復させるとき、腕を浮かせていました。この動作が好きではなくて、人差し指に近い位置にポインターバイスを置こうとがんばっていた私にとって、浮かせることがなくスムーズにマウスに移動できるこのアームレストは理想的に感じました。

イベント終了後、このアームレストを販売していると言うことを知り、即購入させてもらいました!

kokou.shop-pro.jp

スポンサーであるLofreeさんの新作Logree Edgeを触らせてもらいました。本当に薄い、Lofreeさんの薄型は薄いのに硬質は感じ(プラスチックの曲がりそうな感じと比較して)で、本当に打鍵感が良いのですよね。新スイッチと合わせてその最たるもので、アマチュア制作とはレベルが一つ違うのを思い知らされます。

CUT Keyというかつてあった片手で入力するデバイスの紹介。こんな攻めたデバイスがあったのかと驚かされました。

常に右手はポインターバイスを持っていて、左手で全てのキーが入力できる世界が欲しいんですよね。

見た目がネタのように見えますが、実物を見ると、モノとして完成していて圧倒されました。 横のキーを含めて、見た目以上にしっかりした作りとなっていて、操作盤としても実用性がありそうに思いました。

鍵盤トークに出演されているのも見ました。専用の箱があるのも、デザイン製品の物語を作っているようで、素敵でした。

ChocとGateronLPの両対応とのことで、LowProfileに振り切るならこれはアリだなと感心しました。今までGateronLPを触ったことがなかったのですが、触ってみるとChocと負けず劣らず良さそうで、これを使って作ってみたいと思いました。

3Dプリンタによる三次元キーボード。良いと思ったのが、今まで見てきたのは縦も横も凹型になっているものだったのですが、これは横が凸、縦が凹になっており、自分の手にもこの形の法が合いそうで、これは正解なのではと思わされました。

石っぽくざらざらしたキーキャップの制作。ここまでざらざらした感じは他でなく、この感触良いなと思いました。また、その隣のコルクのキーキャップも、キーキャップに柔らかみがあるというのが、新鮮でした。無機質な感じでなくなるのがとても良かったです。

3Dキーボード。きになったのは側面にロータリーエンコーダが付いていることで、この位置は親指を少し伸ばせば届く位置であり、アイディアで良いなと思いました。

ラズパイ4と一体化したデバイス。サーバーデッキの世界と書いてある通り、一体化した謎デバイスの良さが詰まっていて、素敵でした。

天キーの途中に、キーキャップをマグネット化するキットをいただきました。早速、前回のキーキャップを冷蔵庫に貼り、わいわいした感じになりました。

とにかく楽しかった

前回に引き続き、とても楽しい時間を過ごすことができました。運営の皆様、展示参加していた皆様、本当にありがとうございました!!!

私の作ったものも多くの方に体験してもらうことができました。

次回Vol.7があれば、それまでに新作を作って是非持っていきたいと、意欲に駆られました。

一応今回展示したものを頒布中です

SparrowDial、Sparrow60CはBoothにて販売中です。

74th.booth.pm

74th.booth.pm

また、M5Dial、M5StackCore2に入れたQMK Firmwareと連動できるTrackPad化ファームウェアOSSといして公開しています。同様にM5StackCore2、M5Dialを組み込んでみたい方は使ってみてください。

github.com

今作りたいキーボードのアイディア

  • Sparrow62v3として、3Dプリンタでケースを印刷して、M5Dial、M5StackCore2、MagicTrackPadを組み合わせれるようにして、トラックパッドをより最適化したもの。
  • 行だけ、3D配列になっていて、配線が楽な分割キーボード。