自作キーボードに挑戦した話(MiniAxe ビルドログ)

この記事は [Akatsuki Advent Calendar 2018 - Adventar](https://adventar.org/calendars/2990) の 3 日目の記事です。 2 日目は とびゃさんの [Crystal で Flappy Bird を作った](http://tobya.hatenablog.com/entry/2018/12/03/012241) でした。

最近自作キーボードをはじめました。
この記事では僕が自作キーボードを作るようになったきっかけ、実装をして得たノウハウをシェアできればと思います。
自作キーボードになんとなく興味がある人の後押しになれればと思います。

# 組み立てたキーボード MiniAxe

## MiniAxe と 使われなくなった HHKB

ちょうど HHKB の半分くらいの大きさです。

![IMG_20181203_234617.jpg](https://qiita-image-store.s3.amazonaws.com/0/40562/80f4f00d-6051-39ef-5ee9-efd799c56b44.jpeg)

## 筆箱に収まる MiniAxe

持ち運びに便利です。

![IMG_20181203_234710.jpg](https://qiita-image-store.s3.amazonaws.com/0/40562/1fa51306-2b65-3beb-7509-fb27bcb7af1b.jpeg)

# 始めたきっかけ

前々から、キーボードって人間とコンピューターを繋ぐ唯一のインターフェース(要出典)だと思っているので、そこそこにこだわりを持っていました。
HHKB を家と会社用で 2 台持っていて、 4, 5 年使い続けていたのですが、
最近、会社の備品として高級キーボードをレンタルするサービスを始めまして、
HHKB の他に、 RealForce, ErgoDox EZ, Kinesis, X-bows などなど、いろいろ試す機会に恵まれました。
いろいろ試しているうちに、あぁこれはまだ探求の余地はあるなと思い直し、
さらに ファームウェアレベルでキーマップを変更できる ErgoDox をはじめとする自作キーボードに惹かれ、
自作キーボードの沼へと足を突っ込むことになりました。

# キット選び

最近自作キーボードは流行っていることもあり、自作キーボードキットを設計して販売している人がたくさんいます。
Crkbd, Let's split, Helix などなど、国産のものであれば BOOTH などで売っていますし、海外のものであれば KBD fans などで購入できます。

## ErgoDox

ErgoDox EZ を試したり、いろんな自作キーボードを見ていく中で理想のキーボードはなにかを考えるようになりました。

ErgoDox EZ を触ってみると、スプリット型独自の親指を駆使して修飾キーを押すスタイルは非常に良かったのですが、
ErgoDox EZ 自体が非常に大きく場所を取る、またキー数が多く自分の手の大きさでは持て余してしまうということが気になりました。

大きく場所をとるので、持ち運びがし辛いのですが、親指を駆使する独特な指使いをしないといけないため、
通常のラップトップについているようなキーボードを使うときに、スイッチコストが掛かりそうだと感じたため、
選択肢から外しました。

そこで、

* スプリット型
* キー数が少ない(最低限のキー数になっている)
* 持ち運びしやすい

という点を満たすようなキーボードを探し始めました。

## Orthodox

ErgoDox の小さいバージョンのものはないかと探して、
見つけたのが、 Orthodox というキーボードでした。

[自作キーボード未経験者が左右分離型の「Orthodox」を組み立てた記録 - ここぽんのーと](https://cocopon.me/blog/2018/07/orthodox-build-log/)

キーが整列しているのがきれいで、サイズ感もちょうどよく、理想的だと感じました。
しかし、 Group Buy もすでに終了していて、なかなか再販しそうになかったため、断念しました。

## crkbd

コルネも良いなと思ったのですが、ちょうど僕がウォッチしていたときは在庫がなく、
技術書典でもすぐ売り切れになってしまっていたようで、残念ながら購入することができませんでした。
(後ほど、 BOOTH で再販開始していたので購入することができました！ありがとうございます！)

## MiniAxe

そんな中、天下一キーボードわいわい会のイベントページで見つけたのが MiniAxe でした。

キー数も本当に少なくて、小さく、
整列している形が非常に綺麗で、まさに理想的なキーボードだと感じました。

無事に天下一キーボードわいわい会で購入することができました。
現在では BOOTH で売っているようです。

[MiniAxe 自作キーボードキット - かぎざら屋 - BOOTH](https://kagizaraya.booth.pm/items/1094860)

# キットの組立

公式のビルドログがあるので細かい部分はそちらを参照してください。
ここではそのビルドログを補完する形で、初心者の僕がハマったことなどを書いていきます。

[ka2hiro/miniaxe_build_guide: MiniAxe Build Guide](https://github.com/ka2hiro/miniaxe_build_guide)

## 道具購入

MiniAxe は実装難易度が高いと聞いていたので、はんだ付けが中学生以来、十数年ぶりの僕はビビってました。
技術を道具でカバーしようと道具は信頼の置けそうなものを購入しました。

### 必要だった物

#### 温度制御はんだこて
https://www.amazon.co.jp/gp/product/B006MQD7M4/ref=od_aui_detailpages00?ie=UTF8&psc=1

これがないと始まらない。
温度制御ができると、加熱しすぎてこて先が酸化してしまうのを防ぎやすくなる。便利。
ただ電源を切るためにいちいちコンセントを抜き差ししないといけないのは不便だった。

#### テスター

https://www.amazon.co.jp/gp/product/B0751718X2/ref=oh_aui_detailpage_o06_s01?ie=UTF8&psc=1

導通確認に便利でした。それにしか使っていません。
通常、テスターの導通確認では通電したら音がなる仕組みらしいのですが、
僕の使い方が悪いのか、初期不良なのかわかりませんが音はなりませんでした。
ただ通電した際に表示が変わっていたので、それでなんとか通電を確認することができました。

#### はんだこて専用こて台

https://www.amazon.co.jp/gp/product/B017SQ0TUO/ref=oh_aui_detailpage_o06_s03?ie=UTF8&psc=1

はんだこてを入れても抜群に安定していて良かった。
ただスポンジではなく、後述する小手先クリーナーをあとで買ったので、
最初からそれがついているものを買えばよかった。

#### はんだ吸取線
https://www.amazon.co.jp/gp/product/B004OCQVSA/ref=oh_aui_detailpage_o04_s00?ie=UTF8&psc=1

はんだをつけすぎた時、間違えてつけた時に必要。
吸収線を熱しながらハンダを溶かすことによって、はんだを吸収させる。

#### エスコ ケミカルペースト

https://www.amazon.co.jp/gp/product/B002P8S89K/ref=oh_aui_detailpage_o04_s00?ie=UTF8&psc=1

後述するが、こて先が酸化してしまったときに再度はんだのメッキをこて先に貼るために使う。

#### ピンセット

https://www.amazon.co.jp/gp/product/B002SSSQY4/ref=oh_aui_detailpage_o06_s00?ie=UTF8&psc=1

MiniAxe は部品がとにかく小さいのでこれがないと持てない。

#### こて先クリーナー

https://www.amazon.co.jp/gp/product/B000AQQFMG/ref=oh_aui_detailpage_o04_s01?ie=UTF8&psc=1

小手先の温度を下げることなく小手先をクリーニングできる。
酸化した小手先を削ることもできるので、便利。

#### スタンド & ルーペ
https://www.amazon.co.jp/gp/product/B01FIGJ6FA/ref=oh_aui_detailpage_o06_s01?ie=UTF8&psc=1

スタンドは使用しなかったが、ルーペとライトは便利だった。
細かい作業でもこれである程度やりやすくなった。

#### フラックス
https://www.amazon.co.jp/gp/product/B000TGJTUW/ref=oh_aui_detailpage_o06_s01?ie=UTF8&psc=1

フラックスを使うことによって、金属の部分にハンダが広がり安くなる。
特に小さな部品をつけるときには、細いはんだを使用するのだが、細いはんだはその分フラックスの含有量が少なくなっているので、追いフラックスをする。

#### フラックス洗浄剤
https://www.amazon.co.jp/gp/product/B01BV7FIJS/ref=oh_aui_detailpage_o06_s02?ie=UTF8&psc=1

フラックスはそのまま残しておくと、腐食してしまうのでこれを塗って除去すると良いらしい。

#### マット
https://www.amazon.co.jp/gp/product/B07BPJVQQ9/ref=oh_aui_detailpage_o06_s01?ie=UTF8&psc=1

マット。

#### 電子工作用はんだ
https://www.amazon.co.jp/gp/product/B0029LGANO/ref=oh_aui_detailpage_o06_s03?ie=UTF8&psc=1

これがないと始まらない。
ソケットなどの、それほど小さくない部品に使用した。
また、こて先の酸化を防ぐために一旦作業を休憩する際などに、小手先に塗布する際に使った。

#### 高密度集積基板用はんだ
https://www.amazon.co.jp/gp/product/B0029LGAJI/ref=oh_aui_detailpage_o06_s03?ie=UTF8&psc=1

これがないと始まらない。
メインで使用した。

#### 紙やすり

小手先が酸化して黒くなってしまったときに参加してしまった部分を取り除くために使用した。

#### マスキングテープ

部品を固定するのに便利、MiniAxe の MPU, USB を実装する際に固定するために使った。

### 使わなかった & 必要性を感じなかった物

#### コテカバー

https://www.amazon.co.jp/gp/product/B000AQOEVU/ref=oh_aui_detailpage_o06_s00?ie=UTF8&psc=1

まぁ収納するときにあれば便利かも。
そんなに持ち運びするようでなければ必要性はあまり感じない。

#### こて先/S4型
https://www.amazon.co.jp/gp/product/B00762AHYY/ref=oh_aui_detailpage_o07_s00?ie=UTF8&psc=1

小さな部品を実装するので、必要かと思って購入したが、
標準搭載されている小手先で十分だった。

#### ヒートクリップ
https://www.amazon.co.jp/gp/product/B001PR1KNS/ref=oh_aui_detailpage_o06_s04?ie=UTF8&psc=1

使わなかった。
マスキングテープが万能だった。

## はんだ付け

### こて先の酸化

こて先が酸化して黒くなっていることに気づかず、こて先にはんだが乗らない！とずっと苦戦していた。
それで無理にハンダをのせようとして、ハンダが基盤に超量流れてしまい基盤をだめにしてしまうということが発生した。

こて先にはんだが乗りにくくなったら一旦作業を止めて、
紙やすりやクリーナーで酸化部分を取り除き先述のケミカルペーストを使用して再メッキすると小手先にハンダが乗るようになる。

https://www.hakko.com/japan/hint/topic_kotesaki.html

### MPU, USB のはんだ付け

MiniAxe の組み立ての方では
https://www.youtube.com/watch?v=-8SRkSjkZ8A の動画が紹介されているが、
この様に横に流してつけていく方法は僕にはできなかった。ハンダがブリッジしまくって大変だった。

代わりにこちらの動画のやり方を参考に、
小手先にハンダをつけて、端子の先に金属を流し込むようにして一つ一つに付けていった。
動画では実装部分に対しての水平にこて先を向けているが、僕の場合は垂直に向け一つ一つ付けていった。
https://www.youtube.com/watch?v=v9a0DA1o51E

コツとしては、はんだこてを当てる部分は部品とPCB の境目の部分にするとうまくハンダが広がり、きれいに付けることができた。

# MiniAxe 感想

キー数が本当に最小限で、全部のキーに手を動かさずに届くので姿勢を固定できていいです。
ただ、使って2週間程度はたったと思うけど、まだ十分に慣れていないです。
完全に使いこなすにはもう少しかかってしまいそう。
Emacs ユーザーだけどそもそも A の横に ctrl がないので小指が疲れない！

そしてとにかく小さい！この小ささは正義だと思う。
Mackerel の筆箱が入れるのにちょうどいいサイズだったので持ち運びに使っています。

## キーレイアウト

一旦は以下のような形で使っています。
ほとんどデフォルトですが、面白いところとしては ; キーを捨てて Enter を割り当てたところくらいかも。

```
/* Qwerty
 *
 * ,----------------------------------.           ,----------------------------------.
 * |   Q  |   W  |   E  |   R  |   T  |           |   Y  |   U  |   I  |   O  |   P  |
 * |------|------|------|------|------|           |------|------|------|------|------|
 * |   A  |   S  |   D  |   F  |   G  |           |   H  |   J  |   K  |   L  | Enter|
 * |------|------|------|------|------|           |------|------|------|------|------|
 * |   Z  |   X  |   C  |   V  |   B  |           |   N  |   M  |   ,  |   .  |   /  |
 * `-------------|------|------|------|           |------|------|------|------|------'
 *               | GUI|Alt/BkSp|Ctrl/Esc|         |Spc/Sft| RAISE| LOWER|
 *               `--------------------'           `--------------------'
 */

/* Raise
 *
 * ,----------------------------------.           ,----------------------------------.
 * |   !  |   @  |   #  |   $  |   %  |           |   ^  |   &  |   *  |   (  |   )  |
 * |------|------|------|------|------|           |------|------|------|------|------|
 * |  Tab |   _  |   +  |  |   |  ~   |           |   :  |   "  |   >  |   {  |   }  |
 * |------|------|------|------|------|           |------|------|------|------|------|
 * |      |   -  |   =  |  \   |  `   |           |   ;  |   '  |   <  |   [  |   ]  |
 * `-------------|------|------|------|           |------|------|------|------|------'
 *               |      |      |      |           |      | RAISE| LOWER|
 *               `--------------------'           `--------------------'
 */
 
 /* Lower
 *
 * ,----------------------------------.           ,----------------------------------.
 * |   1  |   2  |   3  |   4  |   5  |           |   6  |   7  |   8  |   9  |   0  |
 * |------|------|------|------|------|           |------|------|------|------|------|
 * |  Tab |      |      |      |      |           | Left | Down |  Up  | Right| Enter|
 * |------|------|------|------|------|           |------|------|------|------|------|
 * |  Ctrl|   `  |  GUI |  Alt | Del  |           | BkSp | PgUp | PgDn |   \  |   '  |
 * `-------------|------|------|------|           |------|------|------|------|------'
 *               |      |      |      |           |      | RAISE| LOWER|
 *               `--------------------'           `--------------------'
 */
```


# 感想

自分で作ったキーボードが可愛くてしょうがないです。
このキーキャップはなんか合ってないな・・・別の買おうとか。
軸を別なものに試してみよう。とか、とにかくお金がかかります。

普段使っているキーボードを作るというのは楽しく、いい勉強になりました。
せっかく機材をいろいろ揃えたので、今後は IoT 的なものにもチャレンジしたいなと思います。