控えめ予算で自作キーボードに入門してみる【ビルド編】


[前回](https://qiita.com/rucochanman/items/b7dba8c27620262b8d41)でパーツ集めが完了したので、ここからはがんがん組み立てていきます。

###step1:ダイオードを半田付けする

・foobarは左右で２枚の基板が必要ですが、この時"foo"印字面を裏にした方が右手側、"bar"印字面を裏にした方を左手側になります。
・ダイオードにはつける方向があるので気をつけます。基板状のダイオード用の穴は一方が丸、一方が四角になってますが、四角い穴の方にダイオードの黒い線側が来るように半田していきます。
・半田付けが終わったら、余った足は根元で切ります。

![IMG-5886.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/250171/5bbb675d-aa25-0926-1a4e-d0827f672938.jpeg)

・ここでダイオードの実装を間違っていないか、念のため以下画像の各色の丸に順番にテスターを当てて通電しているか確認しました。

![IMG-5904.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/250171/60b45041-be5d-377d-75b8-b891598c577c.png)


###step2:表面実装系パーツを半田付けする

・TRRSジャックとリセット用のタクタイルスイッチを半田付けしていきます。パーツが小さいので慎重にやります。
・最初に一箇所ランドに予備はんだをつけておいて、パーツの位置を合わせて足を温めて仮止めする→他の足を半田づけする、という方法が正攻法っぽいです。自信がなかったのでyoutubeでうまい人のやり方とか見ました。

###step3:pro micro用ピンヘッダーを半田付けする

・足の短い方がpro microを乗せる側になります。
・裏側に飛び出た長い方の足は、半田付けが終わったら短く切ります。
・ここで斜めって半田付けしてしまうと後からpro microが嵌らなくなって悲惨なので、ちゃんとまっすぐなっているか注意してつけましょう！！！！（私はこれで失敗しましたが、ニッパーで無理くりちょっと曲げてどうにかなりました・・・）

![IMG-5890.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/250171/8add90f4-9655-f5d3-2274-fa3bb0c1ab98.jpeg)


・ここでもスイッチがきくかどうか、以下画像の丸同士にテスターをあてて、スイッチを押したときに通電するか確認しました。

![IMG-5907.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/250171/90aee8cf-257d-5d8d-2536-c25b2f217366.png)


###step4:キースイッチを半田付けする

・ダイオードがついてる側からスイッチを差し込んで半田付けしていきます。
・半田付け前に不良品がないかどうか、スイッチを押した時にスイッチの左右の足が通電してるか確認しておくと確実です。

###step5:pro micro本体を半田付けする

・下画像のように、左右でpro microをつける時の表裏が異なるので気をつけます。

![IMG-5893.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/250171/d03c8739-3948-fea4-a091-31da3edf29f5.jpeg)

###step6:テープLEDを半田付けする

・耐熱テープを貼り、その上にテープLEDを貼ります。
・[このページ](http://www.40percent.club/2017/09/foobar-rgb-underglow.html)を参考にジャンパ線を半田付けしていきます。
・乗せるLEDの数はデフォルトが2つずつになっていたので同じにしましたが、[config.h](https://github.com/di0ib/tmk_keyboard/tree/master/keyboard/foobar_rgb)ファイルをいじればLEDの数は変えられるみたいです。

![IMG-5894.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/250171/086d3caf-0dab-cfbe-1dd0-10314823bed9.png)

以上で半田付けパートは終了です！！お疲れ様でした。

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

・以下macOSでの説明になります。
・まずは環境の準備。git、avrdudeが入っていない場合、インストールします。

```
$ brew git install 
$ brew git avrdude
```

・tmkファームウェアをクローンします。
(※自作キーボード界隈でメジャーなファームウェアはqmkのようですが、foobarはtmk)

```
$ git clone https://github.com/di0ib/tmk_keyboard
```

・カレントディレクトリを移動(今回はLED実装版なのでfoobar_rgb)

```
$ cd tmk_keyboard/keyboard/foobar_rgb 
```

・左側キーボード(裏側が"bar"になってる方)のpro microとPCをUSBで繋ぎます。
・接続されているマイコンを確認します。

```
-l /dev/tty.*
```

・リストに/dev/tty.usbmodem1421とか出てくると思います。
・左側用のEEPROMの書き込みをします。
（/dev/tty.usbmodem1421の部分は↑で確認したものと違ったら差し替えてください）

```
$avrdude -p atmega32u4 -P /dev/tty.usbmodem1421 -c avr109 -U eeprom:w:eeprom-lefthand.eep
```

・実行すると何秒かスリープするタイミングがあるので、そこでリセット用スイッチを押すと先に進みます。
（何故か自分はこれがうまくいかず、”$sudo chmod a+rw /dev/tty.usbmodem1421”で強制的に書き込み可にしてもう一度試したら上手くいきました。。リセット用スイッチを押下している時間が長すぎた？のが原因かもしれません）

・書き込みに成功したら、続いてhexファイルを書き込みます。

```
$avrdude -p atmega32u4 -P /dev/tty.usbmodem1421 -c avr109 -U flash:w:foobar.hex
```

・成功するとLEDがペカーするとおもいます。
・完了したら今度は右手側キーボードにUSBをつなぎ変えて、右側用EEPROMの書き込み

```
$avrdude -p atmega32u4 -P /dev/tty.usbmodem1421 -c avr109 -U eeprom:w:eeprom-righthand.eep
```

・hexファイルの書き込み

```
$avrdude -p atmega32u4 -P /dev/tty.usbmodem1421 -c avr109 -U flash:w:foobar.hex
```

##step8:キーキャップを取り付けて動作確認

・キーキャップ、スイッチ共に安物を買ったからなのかなんなのか、取り付けるのかなり力技でした。（良い奴だったらもっとすんなり入るんですかね？）
・最後に４隅にスペーサーとねじで足を作って出来上がりです。（そのまま机に置くとじゃっかん滑るので、ハンズで小さいゴム足を買ってつけました）

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">遂に！！遂に！！遂に！！！！！（このツイットはこのkeyboardを使って打たれています） <a href="https://t.co/zcL5s6FnXr">pic.twitter.com/zcL5s6FnXr</a></p>&mdash; г ∪ ⊂ о (@rucochanman) <a href="https://twitter.com/rucochanman/status/1123931695516921856?ref_src=twsrc%5Etfw">2019年5月2日</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> 


実はこの後「n」キーだけレスポンスが悪いことに気が付いてしまったので（スイッチ不良？？）そこだけ別のスイッチに取り替えるかどうか悩ましいところなのですが、とりあえず自分の作ったキーボードで文字が打てることの感動。

キーマップはデフォルトのままなのでまだ使いにくいところもあり、今後育てていく予定です。
その時にまた「キーマップ設定編」を書けたら良いなと思っています。