オープンソースの画像生成AIをセットアップから使い方まで解説する『Stable Diffusion AI画像生成ガイドブック』(ソシム刊)発売中(→本のサポートページ

自作キーボードキット「Attack25」ビルドログ

f:id:Imamura:20200815142807j:plain

だいぶ前に買った自作キーボードキット「Attack25」をようやく完成させた。

買ったときの記事
自作キーボードほどわかりやすい沼はない(https://ima.hatenablog.jp/entry/2019/01/09/233000

ビルドガイドと、「VIA」というキーマップを簡単に変更できるファームウェアの記事はこちら。

組み立て終わってみると、下のような順序で進めるのがいいような気がした。

  1. Pro Microのもげ対策
  2. ビルドガイド4.「Pro Microにファームウェアを書き込む」
  3. ビルドガイド3-2.「コンスルーの実装」
  4. ビルドガイド1.「RGB LEDの実装」
    • LEDのチェック(随時)
  5. ビルドガイド2.「ダイオードの実装」
  6. ビルドガイド7.「テスト」
  7. ビルドガイド6.「リセットスイッチの実装」
  8. ビルドガイド8.「スペーサーの取り付け」
  9. (ビルドガイド9.「スタビライザーの取り付け」)
  10. ビルドガイド10.「スイッチの実装」
  11. ビルドガイド11.「テスト」
  12. ビルドガイド12.「ボトムプレートの取り付け」

この手順で組み立てながら、追加情報を書いていきます。

部品の取り付けの完了イメージ

基板のどちら側に各種の部品を取り付ければいいかの参考にどうぞ。

2枚の基板を表向きにするとこう
f:id:Imamura:20200808104929j:plain
2枚の基板を裏向きにするとこう
f:id:Imamura:20200808105016j:plain

Pro Microのもげ対策

ダイソーの2液エポキシ接着剤を購入。

f:id:Imamura:20190323172037j:plain

コネクタ(レセプタクルという)を後ろから囲むように盛り付ける。接着剤がレセプタクルの内部に入り込まないように注意。

f:id:Imamura:20190323173352j:plain

f:id:Imamura:20190323175832j:plain

これが固まるとレセプタクルの「もげ」を防いでくれる。

その上でマグネット式のUSBケーブルを使う。Amazonではたとえばこれ。

asin:B07XSNVPSW:detail

買ったのはAliExpressにあったこれ。「Silver 1m for micro」というのがいま381円。

Attack25側はこうなる。

f:id:Imamura:20200808134530j:plain

USBポートに小さなコネクタを差し込んでおき、USBケーブルはそこに磁石でパチンとくっつく。強く引っ張ると外れるようになっている。MacのMagSafeみたいな感じ。

ファームウェアの書き込み(ビルドガイド4.「Pro Microにファームウェアを書き込む」)

Pro Microにファームウェアを入れれば、LEDのチェックなどができるようになる。

VIA対応のhexファイル(→ファイルへの直接リンク)が下のページの「ビルド環境を入れるのが面倒くさい人のためにhexを置いておきます」にある。

これをQMK Toolboxから書き込めばよい。

もしファームウェアを自分でビルドする環境を構築するなら、MSYS2をインストールする。

そこからは下のドキュメントに書かれている。

なのだけど自分の場合、Windows用とされているコマンドを入れてもエラーが出てしまった。

入れるコマンドはこれ。

pacman --needed --noconfirm --disable-download-timeout -S git mingw-w64-x86_64-toolchain mingw-w64-x86_64-python3-pip
python3 -m pip install qmk

エラーメッセージはこう。

$ python3 -m pip install qmk
bash: python3: コマンドが見つかりません

Pythonがインストールされていないみたい。解決までにいろいろ試したのでこれが正しいか確証がないが、たぶん以下のコマンドを入れてから上のコマンドを再度実行したらうまくいった気がする。

pacman -S mingw-w64-x86_64-python3
参考にした別のページ(こちらは情報が古いかも)
プログラマーではない人向けのQMK Firmware入門 - Qiita(https://qiita.com/cactusman/items/ac41993d1682c6d8a12e

さてではファームウェアをビルドしましょう、とやったら今度は別のエラーが出た。

$ make attack25:via:flash
Making attack25/attack25/rev1 with keymap via and target flash

tmk_core/protocol/lufa.mk:14: lib/lufa/LUFA/makefile: No such file or directory
make[1]: *** ターゲット 'lib/lufa/LUFA/makefile' を make するルールがありません.  中止.
Make finished with errors
make: *** [Makefile:584: attack25:via:flash] エラー 1

「qmk_firmware\lib\lufa」ディレクトリを見たら空っぽだった。なんで? 以下のページを参考に、そこにlufaを入れたらビルドが通るようになった。

lufaのダウンロード元は以下。

コンスルーのはんだ付け(ビルドガイド3-2.「コンスルーの実装」)

ここからははんだ付けをしていく。はんだの煙をなるべく吸わずにすむように、吸煙器を用意した。HAKKOの吸煙器はいまAmazonで8,244円。

フィルターとUSBファンを調達してお手軽な吸煙器を作る記事を読んだ。

これを参考に、120ミリのUSBファンとHAKKOのフィルタを調達した。

f:id:Imamura:20190323182448j:plain

ファンはGROOVYの「BIG-FAN120U for Men」を買った。メーカー名が違うけどこれがたぶん同じ商品だと思う。いまAmazonで859円。

フィルターはHAKKOの5枚組を買った。いまAmazonで1,743円。

フィルターを輪ゴムでUSBファンに取り付ければはんだ吸煙器になる。ちゃんとはんだの煙を吸ってくれた。

コンスルーはこの向きで基板に押し込む。(コンスルーは基板にははんだ付けしない

f:id:Imamura:20200807162742j:plain

詳しくは以下。

小さい窓がPro Micro寄りになります。 また、実装時には二本ともに小さい窓が同じ方向を向くようにしてください。

https://camo.githubusercontent.com/54941730e4017e3270d58a7a310bb9256c529a28/68747470733a2f2f692e696d6775722e636f6d2f51736d4f5031582e6a7067

Helixベータ ビルドガイド

そこにPro Microを裏返しに置き、コンスルーをPro Microにはんだ付けする。(コンスルーは基板にははんだ付けしない

はんだ付け前。

f:id:Imamura:20200807162849j:plain

はんだ付け後。

f:id:Imamura:20200807163359j:plain

で、Pro Microはいったん基板から取り外す。

LEDのはんだ付け(ビルドガイド1.「RGB LEDの実装」)

※このキットは旧型の基板(rev.1b)で、現在はLEDをはんだ付けしやすい「TAB版」に改良されています。そのほかの変更点は「ATTACK25 True25新基板完成です | 25KEYS」と「ATTACK25 True25 TAB付LED対応版 | 25KEYS」をご覧ください

LEDをバックライトとして使うなら、LEDの発光面が基板上の「ATTACK25」のロゴ側に来るようにはんだ付けする。

f:id:Imamura:20200807151953j:plain

LEDは熱に弱く、はんだごての温度を220度~250度と低めにするように書いてある。はんだ付けに使ったはんだごて(gootのPX201)は一番低い温度設定が250度なのでLEDが大丈夫かどうか心配だった。C型のこて先(円柱を斜めにカットした形状)にはんだを溶かして、手早く広げるようにはんだ付けした。はんだ付けの前にはんだ付けするところにフラックスを塗っておくと、基板上の金属部分にだけはんだが乗るようになって時間をかけずにはんだ付けできる。はんだ付けが終わったら無水アルコールやフラックスリムーバーを綿棒につけてフラックスを除去する。

asin:B07MYZG1SY:detail

(いまAmazonで2個セットでない商品は「送料900円」だった。危ない)

LEDを点灯させてチェック

ファームウェア入りのPro Microを基板に取り付けてUSBにつなぐとLEDが全部点灯する(はず。自分はダイオードを取り付けたあとに点灯するか試した)。点灯しないLEDがあったらはんだ付けの不良がないかなどをチェックする。

f:id:Imamura:20200807203445j:plain

点灯の不良はなくてホッ。

以下は点灯しないLEDがある場合に参考になるかもしれないページ。

ダイオードのはんだ付け(ビルドガイド2.「ダイオードの実装」)

ダイオードの足を曲げてスルーホールに通し、余分な足をニッパーで切ってからはんだ付けした。はんだ付けしてから足を切ると、そのときの衝撃でのちのちはんだ付け部分にクラック(ひび)が入りやすいと聞いたことがある。

ダイオードの足の折り曲げには適当な厚みの本が便利。自分の蔵書の中ではブルボン小林の『ぐっとくる題名』がちょうどよかった。本の厚さは実測で9ミリ。

f:id:Imamura:20200807154245j:plain

ダイオードを基板に通したら裏返してマスキングテープで固定する。こうすれば足を切っても基板からポロリと落ちることはない。

f:id:Imamura:20200807160534j:plain

25個のダイオードを取り付け終わった様子。

f:id:Imamura:20200807162338j:plain

USBケーブルをつないでチェック(ビルドガイド7.「テスト」)

各キーがきちんと入力されるかどうか確認するには、VIAの「KEY TESTER」を使うのが便利。VIAはあとでキーマップの編集にも使うのでインストールしておくとよい。

VIAを起動したら[File]-[Import Keymap]でAttack25のjsonファイルを読み込む。Attack25のjsonファイルはファームウェアと同じ以下のページにある。

f:id:Imamura:20200816120242p:plain

「KEY TESTER」をクリックしたときフルキーボードが表示されたら、画面下の「Test Matrix」をオンにすると上のような25キーだけになる。

「KEY TESTER」では上のように、押されたキーの色が変わる。上の画像は0~9のキーを押したときの様子。KEY TESTERの状態でほかのアプリケーションに切り替えてもVIAのKEY TESTERは機能する。

Attack25のデフォルトのキーマップは以下。

f:id:Imamura:20200815233855p:plain

[ScrollLock][PrintScreen][Delete]はそれぞれ、レイヤー2~4の入力のためのキーを兼ねている。これらのキーを押しながらほかのキーを押すと、対応するレイヤーのキーが入力される。たとえば[ScrollLock]を押しながら[1]を押すと[F1]が入力されるといった具合。

リセットスイッチのはんだ付け(ビルドガイド6.「リセットスイッチの実装」)

リセットスイッチはどちら向きではんだ付けしてもよい。

ビルドガイド8.「スペーサーの取り付け」/(ビルドガイド9.「スタビライザーの取り付け」)

ここは特になし。

キースイッチのはんだ付け(ビルドガイド10.「スイッチの実装」)

ここで秘密兵器が登場する。プラモ材料の通販サイト「G PARTS」で売られている「ゴールドシンプルモールド(S)」。ジオン驚異のメカニズムである。

  • ゴールドシンプルモールド 20個入(各種) - G PARTS [ジーパーツ] * 模型工具・ツール・プラモデル改造パーツ・メタルパーツ・ガンプラ改造パーツ他模型材料専門通販ショップ~(https://shop-gparts.com/?pid=9838574

f:id:Imamura:20200808113502j:plain

これがベリリウムの代わりになるという話を読んで、お手軽にキースイッチを交換できるようにしたくて買ってみたのだった。

ひとつ前の記事「はんだ吸い取り器があれば自作キーボードのソケット化にはこだわらなくていいかも」ではベリリウムでのソケット化にあまり積極的でない書き方をしている。でも結局Attack25はソケット化した。上の記事ではんだ吸い取り器を使ってキースイッチを取り外してみたら案外大変でないしきれいに取れるとわかったが、ゴールドシンプルモールドを買ったのはそれよりだいぶ前だったので、せっかくだから使おうと思ったのだった。

それに「ゴールドシンプルモールド」はベリリウムよりだいぶお安くて、20個(キースイッチ10個分)で200円。普通のソケットが遊舎工房で10個150円だからそう変わらない。

一方で、Attack25に使おうと思っていたキースイッチがゴールドシンプルモールドに適合しないこともわかった。

Attack25用に買ったキースイッチはKailh Box Royalである。

このキースイッチのピンにゴールドシンプルモールドをつけたとき、中央に近いほうのピン(下の写真では手前側)がスカスカだなーとは思っていた。この状態でひっくり返すと、そちらのゴールドシンプルモールドだけピンから外れる程度のゆるさである。

f:id:Imamura:20200808105713j:plain

でもまあ大丈夫でしょうとやってみた。トッププレートにキースイッチをはめ込み、裏返してすべてのキースイッチのピンにゴールドシンプルモールドを差し込む。

f:id:Imamura:20200808112420j:plain

その上に基板をそっと置いて、すべてのピン(とゴールドシンプルモールド)が基板の穴から出ていることを確認する。(ここでキーを押してちゃんと入力されるかチェックしておけばよかった)

f:id:Imamura:20200808113317j:plain

ゴールドシンプルモールドの中にはんだが入らないよう注意しながらはんだ付けした。

f:id:Imamura:20200808122652j:plain

最終テスト(ビルドガイド11.「テスト」)

ところがです。これでキーボードとしては完成~とうきうきしながらUSBケーブルをつないでみると多くのキーが反応しない。導通が安定せず、1回だけ押したつもりでも連続して入力されてしまう(=チャタリングが起きる)キーもある。テスターで導通をチェックしながら、入力に不安があるキーを取り外していったらこうなった。

f:id:Imamura:20200815120028j:plain

全然だめじゃん! じゃあどうしよう。スカスカなほうのピンにちょっとだけはんだを盛る? あるいは、スカスカするほうのゴールドシンプルモールドだけ取り外して、そこはキースイッチを直接はんだ付けする?

とここで、別のキースイッチならどうだろうと思いついた。前の記事で取り外したCherry MXの黒軸がある。これに交換してみたところすべてのキーが安定して導通した。やったー。

これで使われているキースイッチは遊舎工房だとこれですね。

ゴールドシンプルモールドはキースイッチを選ぶみたい

先ほどのツイートには続きがある。

同じKailhのキースイッチでもCreamSwitchは問題がないみたい。こちらで使おうとしたBox Royalとはピン部分のパーツが違うのだろうか。それからGateronのキースイッチはピンが太いのね。遊舎工房のMill-Max ソケットの商品説明でも「Gateron製スイッチは入りにくいことがありますのでご了承ください」と書かれている。

ボトムプレートを取り付ける(ビルドガイド12.「ボトムプレートの取り付け」)

ボトムプレートを取り付けてよく見ると、少したわんでいるようだ。(下の写真はキースイッチをCherry MXに交換する前のもの)

f:id:Imamura:20200815113556j:plain

Pro Microのピンがボトムプレートに当たっている。ビルドガイドの「3-2.コンスルーの実装」にこう書かれていた。

アクリルボトムプレートとProMicroからはみ出たコンスルーの足部分が干渉することがあります。この場合は、はみ出したコンスルーをニッパーなどでカットして対処してください。

Attack25 キット内容&ビルドガイド | 25KEYS

このあと付属のゴム足をつければ、ボトムプレートがたわんでいてもグラグラすることはない。ピンはカットしなかった。

これで完成だ! 当初予定していたキースイッチを使えなかったのは残念だが、モノが完成する喜びが上回った。

f:id:Imamura:20200815142807j:plain

キーキャップはおもにキースイッチと同じくMajestouchから。紺色のキーキャップはイベントでもらったもの、赤いキーキャップは遊舎工房で買ったDSAプロファイル。

ところでAttack25はおもにテンキーとして使うので電卓を内蔵させたい。OLEDの画面をつけて、ちょっとした計算をできるようにしたい。Pro MicroのI²Cピンが空いていて、OLEDをつなげられることはわかっている。そして計算結果をパソコンに入力できるとなおよい。しかしファームウェアをどうプログラミングするかはまったく知らないので、そこから勉強しないと。

この記事はAttack25で書きました…ということはなくて、おもにTK-FBP044(普通の市販のキーボード)を使い、Attack25は数字の入力などで補助的に、かつちょっとむりやり使いました。

次はTK-FBP044を置き換えるキーボードを作りたい。分割式にして中央にAttack25を置くつもり。