自作キーボードBDN9 ビルドログ

自作キーボードBDN9を作ったのですが、[公式のビルドログ](https://imgur.com/a/MicRPaA)が写真しかなく
いろいろ調べて情報を補完する必要がありました。
不親切だと感じたので、ビルドログを残しておきます。
<img src="https://qiita-image-store.s3.amazonaws.com/0/261659/17c7a2d4-b475-814c-056e-b9c9f4380abd.jpeg" width="50%">

## BDN9とは
3×3の自作キーボードであり組み立てにははんだ付けなどの作業が必要です。
右上と左上の2キーはキースイッチの代わりにツマミ(ロータリーエンコーダ)にすることも可能です。
[公式の通販](https://keeb.io/collections/frontpage/products/bdn9-3x3-9-key-macropad-rotary-encoder-support?variant=15959960944734)や自作キーボード専門ショップ「遊舎工房」の実店舗で購入することが出来ます。
LEDにも対応しており、単色のbacklightと自由に色を変更出来るunderglowを付ける事もできます。
ダイオードが不要であり、LEDをつけない場合ははんだ付けがPro Microとキースイッチくらいなためお手軽キットかもしれません。

# 必要なもの
### キット本体
遊舎工房で購入したときは下記のものが同封されていました。
通販で購入した場合は自分で揃える必要があるかもしれません。
・PCB(基板)
・トッププレート(Switch plate)
・ボトムプレート
・6mmのM2規格ネジ*8
・12mmのM2規格スペーサー*4
・リセットスイッチ(横向けにはんだづけ出来るタクトスイッチ)
・470Ωの抵抗×9(backlightをつけない場合は不要)
・MOSFET702(backlightをつけない場合は不要)

### マイコンボード関連
・Pro Micro　コンスルーピンヘッダ付き(Elite-C, or Proton Cにも対応とのこと)
 [参考](https://yushakobo.jp/shop/promicro-spring-pinheader/)

### LED(オプション)
・backlight用3mm砲弾型LED [参考](https://www.led-paradise.com/product-list/100)
・underglow用LEDテープ [参考](https://yushakobo.jp/shop/a01sl-00/)
・underglow接続用ビニール被膜銅線

### ロータリーエンコーダ(オプション)
ツマミをつける場合のみ必要です。
ロータリーエンコーダ [EC11-L15] ×2 [aitendo通販](http://www.aitendo.com/product/11408)

### キースイッチ
・MX軸もしくはAlps軸キースイッチ7個(ロータリーエンコーダをつけない場合は9個)
## キーキャップ
・キースイッチに対応したキーキャップ7個(ロータリーエンコーダをつけない場合は9個)
### あったほうが良かったもの
ゴム足*4 (遊舎工房リアル店舗で購入可能)

# ビルドログ
### 基板の向きを確認する
まず基板を確認し完成時どちらが表(上)で裏(下)になるのかイメージします。
中央に表現しにくい、変な魚みたいなのが書かれてる方が表(上)になります。
<img src="https://qiita-image-store.s3.amazonaws.com/0/261659/0b4c11b2-5817-a0a6-98e5-7f8dc7e173dd.jpeg" width="50%">
(写真を撮り忘れたので[公式](https://imgur.com/a/MicRPaA)からの引用です。)


### Pro Microを組み立てる
最初にPro Microを組み立てておきます。
通常の自作キーボードではPro Microを後から取り外せるよう、
スプリングピンヘッダ(コンスルー)を使う場合があります。
BDN9は基板のPro Micro用の穴がギザギザになっているため、
通常のピンヘッダでも取り外しが可能になっているらしいです……

実際試してみたところキースイッチは問題なかったのですが、
LEDをつけると接触不良でチカチカしていました。

ロータリーエンコーダもEC12に対応と書いてあるのにも関わらず反応せず。結局EC11を購入しましたが
今思うとPro Microの接触不良が原因だったのかもしれません。

後から公式のビルドログを見返すと、
基板にピンヘッダを刺した状態でPro Microを刺しはんだづけをしていました。
ピンヘッダを基板から外した状態で、
Pro Microにピンヘッダを刺してはんだづけを行ったので真っすぐにならなかったのかもしれません。

いずれにせよかなりシビアです。
基板側にもはんだづけをするかスプリングピンヘッダの利用をお勧めします。

<img src="https://qiita-image-store.s3.amazonaws.com/0/261659/4c64290f-2145-2fa6-138d-a83009c95dda.jpeg" width="50%">
(写真では通常のピンヘッダを使っていますが、この後スプリングピンヘッダに差し替えることになりました)

### リセットスイッチをつける
基板の裏側、Pro Microの左あたりに「Reset」と書いてある箇所があるので、リセットスイッチをつけます。
<img src="https://qiita-image-store.s3.amazonaws.com/0/261659/ac74250a-180d-f621-ad6c-fe20f98235a1.jpeg" width="50%">
私はキースイッチをつけたあとリセットスイッチをつけたので大変なことになりました。

### ファームを焼く
一度ファームを焼いてみます。
BDN9もqmk_firmwareを利用しています。
[公式リポジトリ](https://github.com/qmk/qmk_firmware) の最新版のmasterをclone(既にcloneしてる場合はpull)してきます。
qmkの環境構築方法についてはさらに[詳しい記事](https://qiita.com/cactusman/items/ac41993d1682c6d8a12e) があるため省略いたします。
(上記の記事の場合、make mint60:default まで出来たら環境構築成功です)
環境が構築できたら、以下のコマンドを実行しResetボタンを押しファームを焼きます
`make keebio/bdn9:default:avrdude`


`make bdn9:default:avrdude`
ではなく`keebio/bdn9`なので気を付けましょう。
リポジトリの[対象ファイル](https://github.com/qmk/qmk_firmware/tree/master/keyboards/keebio/bdn9 )を見ればわかりますが、キーマップの階層が他のキーボードと比べ1つ深くなっています。

ピンセット等を使ってキースイッチの入る箇所をショートさせる事で、この時点で入力が可能です。
デフォルトだと次のように特殊なキーになっていて分かりにくいので、動作テスト時は`KC_1`~`KC_9`に変更することをお勧めします
```
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    [0] = LAYOUT(
        KC_MUTE, KC_HOME,   KC_MPLY, \
        MO(1),   KC_UP,   RGB_MOD, \
        KC_LEFT, KC_DOWN, KC_RGHT \
    ),
    [1] = LAYOUT(
        RESET,   BL_STEP, KC_STOP, \
        _______, KC_HOME, RGB_MOD, \
        KC_MPRV, KC_END,  KC_MNXT \
    ),
};
```
動作確認が完了したら、いったんPro Microを取り外します。

### 抵抗(backlightでキースイッチを光らせたいときのみ)
基板の裏側から抵抗を刺し、足を切った後に表側からはんだづけしていきます。
はんだづけをしたあと足を切ると、半年後くらいに接触不良になる恐れがあるようです [ソース](https://twitter.com/handatsuke/status/1092965588526235648)
ロータリーエンコーダをつける箇所LEDを搭載出来ず、その2箇所については抵抗も不要でした。
ロータリーエンコーダをつけずキースイッチをつけ、光らせる場合は9箇所全部必要です。

<img src="https://qiita-image-store.s3.amazonaws.com/0/261659/3f90d3f7-4547-c370-44f3-c6b41a771bad.jpeg" width="50%">

### MOSFET702をつける(backlightでキースイッチを光らせたいときのみ)
フィルムケースに入っている小さなパーツです。次の写真は取り出した状態です。
<img src="https://qiita-image-store.s3.amazonaws.com/0/261659/207bf876-12c0-1b57-cadc-36a1dfce5215.jpeg" width="50%">

次の赤丸の箇所につけます。
<img src="https://qiita-image-store.s3.amazonaws.com/0/261659/9dd6fe1c-7a51-0cb5-b9d8-fb58ca269aee.jpeg" width="50%">

実際につけた写真がこちらです。
<img src="https://qiita-image-store.s3.amazonaws.com/0/261659/255395cc-aa45-4015-8749-563fea2b5e88.jpeg" width="50%">

### トッププレートの上からキースイッチをつける
トッププレートの上からキースイッチを基板に差し込み、はんだづけを行います。
キースイッチをはんだづけしてからトッププレートを付けようとするとハマらないので気を付けてください。
<img src="https://qiita-image-store.s3.amazonaws.com/0/261659/479b3170-5481-943a-7e2a-0c8b93052058.jpeg" width="50%">


裏から見るとこうなります。
<img src="https://qiita-image-store.s3.amazonaws.com/0/261659/26b85284-c7f2-dd49-aa8f-47b5dbcf3ec8.jpeg" width="50%">


### backlightをつける(backlightでキースイッチを光らせたいときのみ)
発光ダイオードをつけます。
次の写真のように、キースイッチ側が発光ダイオードを刺せるよう対応している必要があります。
<img src="https://qiita-image-store.s3.amazonaws.com/0/261659/1a0d8c2c-44e5-8d32-7bbf-cdb8107c74a7.jpeg" width="50%">
と言っても所持しているキースイッチ18種全て対応していたので、基本的に大丈夫だとは思います。
(Alps軸は持ってないため不明)

向きが存在するので足の長さで判別します。
間違った方向でつけると発光ダイオードが壊れてしまいます。
<img src="https://qiita-image-store.s3.amazonaws.com/0/261659/dba5b640-6b6b-fe6f-b9ad-8f89f8595576.jpeg" width="50%">

公式の写真のように、基板の丸いパッドに長い方を。
四角いパッドに短い方の足をつけます
<img src="https://qiita-image-store.s3.amazonaws.com/0/261659/b8124bca-adc2-95ec-e552-990667c1ac2b.jpeg" width="50%">

キースイッチをつける箇所全てに発光ダイオードをつけたらbacklightは完了です。
ロータリーエンコーダを付ける場合、その個所にはつけないようにしましょう。
Pro Microをつけ、LEDが光ったら成功です。
自分はこのときPro Micro側の接触不良でLEDがチカチカしてました。
スプリングピンヘッダをつけたPro Microに差し替えたらうまくいきました。

### ロータリーエンコーダをつける(ツマミをつける場合のみ)
いわゆるツマミです。右回転左回転に別々のキーを割り振ることができます。
今回使うEC11は押す事も出来るので実質3キー分として動作します。
公式にはEC12にも対応していると書いてありますが、こちらは押す事が出来ず左右の回転のみとなっています。
足の生えている場所も違う為、今回上げる写真とは若干異なります。
<img src="https://qiita-image-store.s3.amazonaws.com/0/261659/32243a18-8c5f-3833-845e-d2f3c2f8a716.jpeg" width="50%">

トッププレートの上から差し混み、足を5箇所はんだ付けします。
<img src="https://qiita-image-store.s3.amazonaws.com/0/261659/d02a7edc-af91-f937-d545-9f3c925e7062.jpeg" width="50%">


### underglowをつける(下側を照らしたいときのみ)
ビルドログには特に書いてませんが
WS2812bを搭載したLEDテープに対応しています。
遊舎工房で購入した場合、テープ1本に6つ搭載されています。はみ出してしまうので3つに切るとちょうど収まっていい感じです。
ビニール被膜銅線を使って、次のように配線します
![IMAG2226e.png](https://qiita-image-store.s3.amazonaws.com/0/261659/278c5652-2d26-360b-d4b2-15bb78156442.png)


デフォルトでは4つのLEDまで対応しています。
下記の定数を変更し、手配線で別のLEDテープを直列で繋げたりすることで3隅に3つずつ合計9つ配置なども可能です。
(消費電力には注意)

```https://github.com/qmk/qmk_firmware/blob/master/keyboards/keebio/bdn9/config.h
#define RGBLED_NUM 4
```

### ボトムプレート
スペーサーとネジを使ってボトムプレートをトッププレートに固定します。
![IMAG2560.jpg](https://qiita-image-store.s3.amazonaws.com/0/261659/628f415b-1cc5-ab8c-d336-1d95dcca9e3c.jpeg)

### キーキャップ
キーキャップと、ロータリーエンコーダー用のツマミをつけます。
背の高いキーキャップだとツマミを回すときに指がぶつかりイマイチでした。
<img src="https://qiita-image-store.s3.amazonaws.com/0/261659/34507f58-64fc-0a7b-2d5b-7e1cb58a8161.jpeg" width="50%">

ぜろけー氏制作の3Dキーキャップ「[Corne Keyboard 用親指キーキャップ ９個セット](https://make.dmm.com/item/977532/)」
を付けたところかなりいい感じでした。
(ハンドスピナーはただのオブジェです。回しても特に何も起きません)

<img src="https://qiita-image-store.s3.amazonaws.com/0/261659/671e7d24-13b1-6a6c-e15b-c6eead3364a6.png" width="50%">


### ゴム足
そのままだと滑るので、ボトムプレートにゴム足を4つつけるといい感じです。
<img src="https://qiita-image-store.s3.amazonaws.com/0/261659/175e61e2-aad3-5bc7-4314-14263b7c6f8e.jpeg" width="50%">

# 使用感とか感想
LEDやロータリーエンコーダをつけず、キーボードとして作る場合はとても簡単なキットだと思います。
キースイッチやqmkなど基本的な事は他と共通のため、とりあえず体験してみるには良いかもしれません。
ダイオード不要というのは魅力的ですが、helixやcrkbd、zincなど国産自作キーボードの大半はダイオード必須です。
練習用にする場合はmeishiやnamecard2×4も選択肢に入ると思います。

PCBがプレートに固定されていないため、ロータリーエンコーダを押すと基板が浮き上がるのが少し気になりましたが他は快適です。
ツマミですが、某音ゲーのタイトルがサバンナっぽい曲をイメージして左右に高速に回しても反応しました。

自作キーボードはこれで9台目ですが、スルーホールタイプのLEDのキットを組んだことがなかったため勉強になりました。