YAMAGUCHI::weblog

海水パンツとゴーグルで、巨万の富を築きました。カリブの怪物、フリーアルバイター瞳です。

Gherkinを作った #Gherkin

はじめに

こんにちは、StackdriverあらためGoogle Cloud Operations担当者です。Caravelle BLE、Claw44、Helixと立て続けにキーボードを作っていますが、Helixのキットをサルベージする前に30%キーボードを作ってみたいと思いGherkinを発注していたのでした。Helixのほうが公開が先になっているので先に取り組んでいたと見せかけて、実はGherkinのほうが先に取り組んでいたのですが、トラブルがあり順番が前後してしまいました。

用意したもの

品名 個数 備考
Gherkinキーボードキット 1セット TALP KEYBOARDから購入
ProMicro 1個
Cherry MX互換キースイッチ 30個 Kailh BOX黒を遊舎工房より購入
Cherry MX用キーキャップ 30個 DSAプロファイル
microUSB-USB-Aケーブル 1本 なんでもよい

キットなので細かい部品のことを考えなくて済むのが楽ですね。コロナ禍に入る前は会社のメイカースペースを使ってアクリル板とかを切れたので、これくらいのキーボードであればPCBだけの注文にしていたのですが、いまはアクリル板を切るのすらいちいち発注しないといけないのでキットで買えるものはそうしています。

ビルドログ

TALP KEYBOARDの商品紹介ページにリンクしてあるこちらのビルドガイドを参考にしながら組み立てました。ここに書いてある工程は基本そのまま行ったと思ってください。ここに載っている写真は主に補足的なものです。

blog.bomberowl.org

また工程の写真はこちらのアルバムに残しています。

photos.app.goo.gl

ダイオードのはんだ付け

まずスイッチングダイオードを基板に取り付けます。リードベンダで予めリードを曲げておいてから基板の上側からダイオード用の穴に通します。カソード側(黒い帯がある方)が四角いランドになるように確認しながら挿し込みます。ダイオードを穴に通したら、マスキングテープで固定して、基板の下側からはんだ付けします。

f:id:ymotongpoo:20200805211203j:plain

基板の導通確認

上のビルドガイドにあるようにダイオードのはんだ付けが終わった時点で導通確認をします。ProMicroを載せる部分のピンにテスターの黒いプローブ、キースイッチに赤いプローブを当て、正しくピンが導通しているかを確認します。

(上のビルドガイドより転載) f:id:ymotongpoo:20200814002736p:plain f:id:ymotongpoo:20200814002748p:plain

ProMicroのピンヘッダをはんだ付け

写真は残してないですが、ProMicro付属のピンヘッダの脚が短い方を基板に挿した上でProMicroを載せ、その状態でProMicro含めピンヘッダをマスキングテープなどで基板に固定します。その状態で基板を裏返し、ピンヘッダをはんだ付けします。この基板はコンスルー非対応のようなので使えませんでしたが、使える基板であれば万が一失敗したときのことを考えると確実にコンスルーが良いなと思いました。他の方法としては次点としてProMicroのソケット化などがあると思います。

コンスルーyushakobo.jp

何かあってもProMicroをピンヘッダから引き抜くためにハンダを頑張って吸い取る、というような手間が発生しないのは本当に素晴らしいですし、事故があってProMicroを引き抜く際にProMicroを破損することを考えたら絶対に安いので保険だと思ってこちらを使うことをおすすめします!(実際に事故ったので悲痛な気持ちでコメント)

キースイッチの取り付け

アクリルプレートにキースイッチを挿し込んだあと、ひっくり返してピンが天井を向く状態にしてから、基板を載せます。ProMicroが載る側(下側)が見える状態にして載せます。

f:id:ymotongpoo:20200806164259j:plain

買ったキースイッチだと真ん中の突起があまり出ていないため穴の奥まで刺さらず、そのためそのままだと固定が難しいので、マスキングテープで上プレートと基板を固定します。その状態でキースイッチをはんだ付けします。

ProMicroのはんだ付け

キースイッチのはんだ付けが終わったらProMicroをはんだ付けします。

f:id:ymotongpoo:20200806222109j:plain

はんだ付けする前に、ProMicroと基板の間に隠れてしまうキースイッチやダイオードのピンはできる限り切り取っておきます。さらに、その上からカプトンテープで仮絶縁したあとに、プラ板や紙テープなどで確実に絶縁します。これを怠ったがために、あとでものすごい手間の手戻りが発生しました。

ファームウェアの書き込み

ここまで来たらキーボードとして動作するか確認します。QMK Toolboxやqmk_firmwareを使ってProMicroにファームウェアを書き込みます。とりあえずテストなので、QMK Configuratorを使ってデフォルトキーマップのファームウェアを落としてきて、QMK Toolboxで書き込みました。試してみると、W、I、F、Space、Escが反応しない。よくよく調べてみるとどうもそれらのキーが押されっぱなしの状態になっているような印象。そこでそれらのキーを数字の1、2、3、4、5に割り当てたファームウェアを焼き直し、ふたたびPCに接続してみると、

$ 12345555555555555555555555555555555555555555555555555

と押し続けられる様子が確認できました。(ビルドログのアルバムにある動画でその様子が確認できます)はんだ付けを一通り確認してみるも、見えているものに関して言えば問題はなさそう。困った...自分では原因が思いつかないのでSelf-Made Keyboard in Japanの皆さんに相談してみました。

問診中

これまでのビルドログや写真を見てもらって、様々な懸念点を指摘してもらいました。

  • 「ケーブルを接続しただけで入力されてしまうということは、基本的には半田付け箇所かピンの足がどこかとくっついてしまっていると考えられます。そのあたりに注意して見ると良さそうです。」
  • 「このタイプの実装方法だとメイン基板から出ているキースイッチの足でPro Microの内部配線が短絡してる、とかいう可能性もあるかもしれない」
  • 「写真から分かる範囲のProMicroの半田付けは綺麗なように見えますね」「ええ、写真から見える範囲は問題なさそうなので、あとは裏側か実はレジストがずれてて運悪く入力される方にショートを起こしてるか…ですね」「外すの大変だと思うので、とりあえずショートしてないかテスタで確認してみるとか?」

とりあえずショートした箇所がないか、テスターで確認したところ、ProMicroのRST側とGNDと、押しっぱなしの症状がでているキーがいずれもショートしていました。はんだ付け箇所は特に怪しい部分もなさそうだし、やはりいちばん怪しいのはProMicroで隠れている部分。仕方がないので、ProMicroを取り外すことを決意しました。

ProMicroの取り外し

ProMicroの取り外しには「はんだシュッ太郎」とハンダ吸い取りリボンを使いました。

シュッ太郎のコテ先は温度調整ができないうえに結構高温になるため、あまり押し付けすぎるとピンヘッダのプラスチック部分まで若干溶け出してなかなか加減が難しかったです。またハンダ吸い取り機能に関しても、真空にできるわけではないので吸い込みも思うようにはいかず。1時間半ほど格闘してようやくProMicroを引っこ抜けたのですが、ProMicro側のスルーホールが完全に剥がれました...

f:id:ymotongpoo:20200814140057p:plain

無残なProMicroさん...

f:id:ymotongpoo:20200814141727p:plain

仕方がないですね。ProMicroは替えれば済む話ですが、ここにある基板は一枚しか無い!というわけでProMicroを外した状態を見てみると、隠れていたピンが明らかに怪しい。きれいに出っ張ったピンを切って低くした上で、絶縁のためにカプトンテープを貼ります。

f:id:ymotongpoo:20200814141935p:plain

この状態で再度各ピンヘッダと対応するキースイッチの導通確認をして、かつショートしていたGNDと各ピンがこの状態ではショートしていないことを確認しました。ProMicroを抜いた状態でショートが起きていたということはやはりProMicroと基板が接触していたせいとしか考えられないため、今回のようにカプトンテープで絶縁した状態なら再発しないであろうという自信の元に再度ProMicroをはんだ付けします。(キットに付いてきたProMicroはご覧の通りピンがだめになってしまったので、家に予備として置いてあった代替品を載せます)

f:id:ymotongpoo:20200814143236p:plain

はんだ付けしてしまったあとでコメントを頂いて「確かにそのとおり....!!!」とおもったのは

カプトンテープを過信すると同じことになりそうなので厚みが大丈夫そうなら紙か適当なプラのシートをいれたい

TALP KEYBOARDさんにはお手間だと思いますが、ぜひプラシートも同梱していただき私と同じような事故に遭う人を減らしてほしいです!さてこれで再度ファームウェアを焼いてPCにつなぎ入力テストをしてみると....

無事に正常に入力できました!!!多くの皆様からの助言を頂いたおかげでめげずに復旧できたので、SMKIJの皆様には感謝です。

最終組立

無事入力できることがわかったので、ケースをネジ止めして、キーキャップを取り付けて完成です。

f:id:ymotongpoo:20200814143709p:plain

f:id:ymotongpoo:20200814143812p:plain

リセット用のタクトスイッチをつけるか迷いましたが、ケースを付けてみると基板裏側につけてしまった場合結局ケースを外さなければならなくなるため、ファームウェア側に RESET のキーコードを入れる方向で対応することにしました。

反省点

今回の反省点と学びは以下のとおりです。

  • ピンはちゃんと切る
  • 絶縁はちゃんとする
  • テスターはとても便利
  • 可能な限りProMicroはコンスルーを使うかソケット化して載せる

書くと当たり前のことばかりなのですが、やはり身にしみて実感できると理解度が全然違いますね。ここでの反省があったので、Helixを作ったときは非常に慎重になり、結果として早く作ることができました。

ymotongpoo.hatenablog.com

キーマップ

30キーしかないということは、アルファベット26文字+4キーしかないということで、かつ普段アルファベットと同じか、下手するとそれ以上に入力しているSpaceやEnterも入れると、もう2キーくらいしか遊びがありません。それだけでShiftやCtrl以外も入れようとしても無理なので、レイヤーを多用することになります。

GherkinのデフォルトのキーマップはQWERTY風にしていつつ、最下段がbが右側に来ていたり、レイヤー遷移に多少の無理が見られるので、このあたりをチューニングしていくのはかなりの試行錯誤が要るなと感じます。foobarも今後組み立てていくことですし、気長にやっていきます。

おわりに

はじめての30%キーボードとしてGherkinをなかば洒落で作ってみたわけですが、意図せずに多くの学びを得ることができる作業となり、今後も自作キーボードを楽しんで作っていくための良い苦労となりました。次は積みキーボードとなっている、同じく30%キーボードのfoobarを作ろうと思います。

また今回はSMKIJの多くの皆様の助言に支えられました。この場を借りて改めて感謝いたします。

本記事はGherkinを使って書かれました、と書きたかったところですが、全然うまく入力ができず、まだキーマップを考えているところなので、取り急ぎ本記事の大半はHelixを使って書きました。キーマップのところだけ意地でGherkinで書きました。