YAMAGUCHI::weblog

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

foobarを作った

はじめに

こんにちはStackdriverあらためGoogle Cloud Operations担当者です。最近、3年ほど前に一度自作キーボードを始めようと思って材料だけ集めたあと放置されていたパーツを回収したので、作っていなかったり作りかけのものを直したりしはじめています。その中に知人から安く譲ってもらったfoobarのPCBと上下プレートセットが2組でてきたので、とりあえず1組作ってみたのですが、検索しても細かなビルドガイドがなかったので自分の記録用に残しておきます。

ここ2ヶ月くらいでキーボード本当に作り過ぎなんですが、これは積みキーボードなので仕方がないですね...

材料

公式サイトには何を揃えたらいいかなどは書いていないのでメモしておきます。

品名 個数 備考
PCB & 上下プレート 1セット 知人から購入
ProMicro 2個
Cherry MX互換キースイッチ 30個 Kailh BOX黒を遊舎工房より購入
Cherry MX用キーキャップ 30個 DSAプロファイル
スイッチングダイオード (1N4148) 30個
タクトスイッチ 2個
TRRSジャック 2個 秋月電子通商で購入
TRRSケーブル 1本 なんでもよい
microUSB-USB-Aケーブル 1本 なんでもよい
M2x15mmスペーサー 8個 西川電子部品で購入
M2x6mm ネジ 16個 西川電子部品で購入
LEDテープ(オプション) WS2812B 60LED/m IP65 5個x2
ビニール線(オプション) 適当 秋月電子通商より購入

価格はまとめ買いしたり送料がかかったものは1個あたりの単価に戻してからこの表の個数で計算し直しています。たとえばネジは40個まとめ買いとかになるので払ったお金は実際もっと高いです。*1

TRRSジャックに関しては、マルツにドンピシャの商品があるのですが、入荷未定で過去に作られた方々のコメントなどを見ると、1ヶ月くらいかかることがあるらしいので、足の形だけ違うものを秋月電子通商から購入しました。

LEDとビニール線はアンダーグローをしない場合には必要ありません。

ビルドログ

写真はこちらからも確認できます。

photos.app.goo.gl

材料の確認

これを作るのに並行してGherkinを作っていたのだけれども、特定のキーがショートしていたのを知り本当に反省したので、今回はかなり慎重めに作業を進めました。まずダイオードの導通確認から。

f:id:ymotongpoo:20200807215759j:plain

テスターでダイオード30本の導通を確認。問題なく導通していることが確認できた。片手でテスター反応させながら、もう片手で撮影するの難しい。foobarは左右共通の基板を片側を裏返して使うので、混乱しないようにマスキングテープで左右と裏表の印を書いておきます。

f:id:ymotongpoo:20200807215415j:plain

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

ProMicroのはんだ付け後すぐにテストができるようにあらかじめファームウェアを書き込んでおきます。公式は tmk_keyboard のほうを参照しています。しかし qmk_firmwareがそれも内包してビルドを便利にしてくれている上に、自作の他のキーボードでも利用しているので、foobarでもこちらを利用します。

f:id:ymotongpoo:20200807220809j:plain

とりあえずテスト用なのでデフォルトのキーマップをそのまま書き込みます。書き込みはDocker環境が設定済みのUbuntu 20.04で行いました。

$ cd /path/to/qmk_firmware
$ ./util/docker_build.sh 40percentclub/foobar:default:avrdude

GNDとRSTをピンセットでショートさせてリセットさせ、無事に書き込み完了。

ダイオードのはんだ付け

他のキーボードと同じようにランドが四角い方にカソード側(黒い帯があるほう)を半田付けします。 

f:id:ymotongpoo:20200808221731j:plain

リードベンダで曲げておいてから裏面から差し込みます。foobarの場合は裏表どっちにつけても大丈夫ですが、表面はキースイッチなので少しでも邪魔にならないように裏面に配置。はんだ付けまで裏面でやれば表面がきれいになってよかったんですが、家にツールクリップが無いため、楽をするために半田は表面側で行いました。

f:id:ymotongpoo:20200808222258j:plain

雑にこういう感じでマスキングテープでダイオードを固定してひっくり返してはんだ付けしました。左右両方ともはんだ付けが終わったら、ProMicroを載せる位置の各スルーホールと各キースイッチ間で導電確認をしておしまい。

TRRSジャックのはんだ付け

マルツで売っているSparkFun PRT-12639を使う場合にはまったく必要のない工程ですが、脚が折れていないTRRSジャックを使う場合には、ラジオペンチなどで折り曲げたあとに、基板のランドの位置に合うように少しだけニッパで先端を切っておきます。

f:id:ymotongpoo:20200808225735j:plain

左が切ったもの、右が切ってないものです。切りすぎるとはんだ付けが難しくなるので気をつけました。

TRRSジャックは表面実装になるため先に盛り半田をしておいてから、上からジャックを乗せて、ジャックの脚をコテ先で暖めながらジャック全体を上から押し込むとうまくいきました。

f:id:ymotongpoo:20200808231017j:plain

ピンヘッダのはんだ付け

次にProMicroを載せるピンヘッダをはんだ付けします。ピンヘッダを基板に挿しProMicroを載せた上でマスキングテープで基板に固定します。(ダイオードのとき同じ要領)裏返してピンヘッダをはんだ付けします。

f:id:ymotongpoo:20200808235354j:plain

タクトスイッチのはんだ付け

これも脚が折れていて長さが基板に合ったタクトスイッチを使う分には必要ない工程ですが、自分が買った安いタクトスイッチは穴にはめ込むように作られているものだったので、脚を伸ばしたり曲げたり切ったりして調整してからはんだ付けしました。

f:id:ymotongpoo:20200809000211j:plain

これも表面実装で地味に面倒でした。

キースイッチの取り付け

上下プレートがあったので、まずキーを上プレートにはめ込みます。意外と硬かったのでPCBを割らないように気をつけながら片側15個、両側で計30個をはめ込みます。

そのあと基板のキースイッチ用の穴にハマるように乗せてあげて、ズレがないか確認し、確認ができたらはんだ付けします。はんだ付けが終わった後はProMicroが載る位置のキー2つのピンをしっかり切り落とします。上からProMicroをかぶせてみて下からキースイッチのピンが当たっていないかを確認します。

f:id:ymotongpoo:20200809005737j:plain

ProMicroのはんだ付け

はんだ付けの最後としてProMicroをピンヘッダにつけます。

f:id:ymotongpoo:20200809011731j:plain

左右でProMicroの載せ方が表裏逆向きになっていることに注意してはんだ付けします。はんだ付けが終わったら、片側ずつPCに接続してみてそれぞれ片手だけで反応しているか確認をしたあと、両手をTRRSケーブルで繋いで全体としてキーボードとして機能しているか確認します。

下プレートのネジ止め

アンダーグローを実装しない場合はこれで必要な機能は実装されているので、下プレートをスペーサーを使って上プレートに取り付けします。M2のスペーサーとネジで固定。西川電子部品にはM2のスペーサーが10mmより長いものだと15mmしかなかったので妥協。12mmのものをAliExpressで買ったので届くのを待っています。

f:id:ymotongpoo:20200816231600j:plain

AliExpressからWS2812BのLEDテープがまだ届かないので、あとではんだ付けするということにして一旦ここで完成。

f:id:ymotongpoo:20200818094226j:plain

追記

LEDテープが届いたのでアンダーグロー化しました。

ymotongpoo.hatenablog.com

おわりに

Gherkinでの失敗があったので、今回は一つ一つゆっくり確認して作ったので、安心して制作できました。今後もゆっくり着実に作りたいものです。

参照

他にもビルドの報告は見かけましたが、本当に完成したことの報告だけだったりしたので、ここでは材料やビルドの際にこれらの写真や記録があったおかげで組み立てられた、というものを並べておきます。

*1:勝手な思い込みで家にあるM3のスペーサーとネジが使えると思っていたら、実際はM2だったことに後で気が付きました。他の秋葉原に行ったときに西川電子部品に寄れば良かったのに忘れたので2度秋葉原に行くことになりました。