Let's Split買ってから動かすまで ～はじめての自作キーボード～ windows編

最近。。。

最近どこも自粛ブームで引きこもりがちなので、インドアな趣味が加速する毎日です。
そんなとき、ずっとなんとなく作りたかったキーボードに手を出しました

[![10702222861e56791110.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/345734/d04e3d6f-d54f-25f1-13db-90f51fc0db05.jpeg)
](https://talpkeyboard.stores.jp/items/5c45165314444809b511e121)

Let's Splitのまとまった情報がなかったので、日記がてら自分で作ってみようかな！
ということで思い立ったが吉日

目標は、ココだけみれば完成まで持っていけるようにすること。

windows編と書いてますが、mac編やlinux編は出ません(たぶん)



# 全体の流れ
0. キットを買う
1. 手順通りキーボードを組み立てる
2. 理想キーマップを考える
3. ファームウェアをビルドする
3. キーボードにファームウェアを書き込む

# 1, 事前準備
準備のほうが大事まである

## モノを買う
リンクは実際に買ったやつ。自分の好みでアレンジししてください
- [Let's Splitキット](https://talpkeyboard.stores.jp/items/5c45165314444809b511e121)
- [はんだ付けセット](https://www.amazon.co.jp/gp/product/B07PB15KDB/ref=ppx_yo_dt_b_asin_title_o04_s01?ie=UTF8&psc=1)
- [オーディオケーブル　4極　オスーオス]
(https://www.amazon.co.jp/gp/product/B01MXCKHAM/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1)
※キットに付いてくるのが、短く伸縮しないタイプなので、あるとよい
- [格子配列用のキーキャップ](https://yushakobo.jp/shop/a0300db-00-1/)
- [キースイッチ 赤軸、クリア軸](https://yushakobo.jp/shop/a0200ga/) ※完全に好みです

# 2, 手順通りキーボードを組み立てる
組み立て方は、遊舎工房さんのサイトが特に参考になりました
https://yushakobo.jp/blog/pluis9/2017/07/lets-split-fes/
![IMG_7065.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/345734/245cc922-9b57-d884-2320-5069dd957bb2.jpeg)

こっちは左右の画像を作業ごとに貼ってくれているので、ミスがないかチェックするのにとても良い
http://pppurple.hatenablog.com/entry/2017/09/24/193635

# 3, 理想キーマップを考える
通常のキーボードと比べてキーの個数が少ないんだけど、レイヤーという機能を使ってすべてのキーを実装可能になっている
最大32個までレイヤーを作ることができるので、自由度が高い。


> Respective layers can be validated simultaneously. Layers are indexed with 0 to 31 and higher layer has precedence.
>
```
Keymap: 32 Layers                   Layer: action code matrix
-----------------                   ---------------------
stack of layers                     array_of_action_code[row][column]
       ____________ precedence               _______________________
      /           / | high                  / ESC / F1  / F2  / F3   ....
  31 /___________// |                      /-----/-----/-----/-----
  30 /___________// |                     / TAB /  Q  /  W  /  E   ....
  29 /___________/  |                    /-----/-----/-----/-----
   :   _:_:_:_:_:__ |               :   /LCtrl/  A  /  S  /  D   ....
   :  / : : : : : / |               :  /  :     :     :     :
   2 /___________// |               2 `--------------------------
   1 /___________// |               1 `--------------------------
   0 /___________/  V low           0 `--------------------------
```
> Sometimes, the action code stored in keymap may be referred as keycode in some documents due to the TMK history.
 - Keymap Overview - [QMK Firmware](https://docs.qmk.fm/#/keymap)

例えばこんな感じ
通常のキーボードに近い操作性と、できるだけ指を動かさないようにすること、複数の操作方法を用意することの3点を意識した。(テンキーと矢印キー)
https://docs.google.com/spreadsheets/d/1VNm4ZZWtw_yhZLPGvqAGVsLGipodKtBFG4L9U3qAz-M/edit?usp=sharing


# 4, ファームウェアをビルドする
## ソフト・ツールを入れる
こっちも色々準備が入ります

### Linux / Mac環境
ファームウェアとして書き込むためのhexファイルを作るのに、Unix系のmakeコマンドが必須なので、どちらかの環境を用意しましょう
PCに直接入ってる人は無視でいいですが、windowsユーザーは仮想マシン等をインストールする必要アリ

自分は[VirtualBox](https://www.virtualbox.org/)に[UbuntuMate](https://ubuntu-mate.org/download/)を入れてやりましが、MinGWやらBash on Ubuntu on Winsowsだかを入れてやる人もいるみたい？

### qmk_firmware(ファームウェアをビルドするやつ)
こちらを参考にしましたが、QMKのバージョンによってビルド方法が大きく変わるので注意
https://qiita.com/kzmake/items/443478763cdeaedcfd0a#%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AE%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF

## ビルド
linux / Mac上で
（キーマップ名は好きな名前を入れる）

```

git clone https://github.com/qmk/qmk_firmware
cd qmk_firmware
util/new_keymap.sh lets_split [キーマップ名]
# キーマップを編集する　(サンプルが入ってるので、動作確認時には省略)
vim keyboards/lets_split/keymaps/[キーマップ名]/keymap.c
sudo make lets_split:[キーマップ名]
```

実行後、.hexファイルができているはず

※ キーマップの作り方についての詳しい情報はこちらが参考になりました
https://leico.github.io/TechnicalNote/QMK/key-customize



# 5, キーボードにファームウェアを書き込む
## ソフト・ツールを入れる
### AVRツール(ファームウェアを書き込むやつ)
windowsでは[AVRDUDESS](https://blog.zakkemble.net/avrdudess-a-gui-for-avrdude/)っていうツールを使います

![20170811220609.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/345734/c33a0027-0ebc-3cad-5e74-6417351c219e.png)

## 書き込む
書きを参考に、前項で作った.hexファイルを書き込みます
http://emizping.hatenablog.com/entry/2017/08/11/222147
違うキーボードの記事ですが、同じマイコン(pro micro)なので、設定方法などは同じですね

ProMicroに取り付けたスイッチを押してすぐにProgram!ボタンを押さないと、時間経過で接続切れちゃいますね

# 以上！
これで終わりです。
調達から完成まで大体1~2週間かかりました。

不明点あればコメントください。。。