初めての自作キーボード　Mint60制作

![2018-10-16 13.30.17.jpg](https://qiita-image-store.s3.amazonaws.com/0/49885/8ff498f9-2735-1980-fc33-4e7c1817a61c.jpeg)

はじめまして。
先日Mint60というキーボードを作ったので制作過程の記録です。

# 準備したもの
- Mint60スターターキット (キットの内容は[ゆかり屋様](http://eucalyn.hatenadiary.jp/entry/about-mint60-01)を御覧ください)
- はんだこて (こて台、はんだ等)
- 工具 (ドライバー、ニッパー等)
- ブレッドボード (あると便利です)

# 組み立て
基本的にはゆかり屋様の[手順](http://eucalyn.hatenadiary.jp/entry/how-to-build-mint60)通りです。
![2018-10-15 20.44.02.jpg](https://qiita-image-store.s3.amazonaws.com/0/49885/ae0b9e45-eb05-1aeb-06c0-47180dd591c3.jpeg)
![2018-10-15 22.13.34.jpg](https://qiita-image-store.s3.amazonaws.com/0/49885/5654a9be-a2c8-16ce-cf27-462717310996.jpeg)

JP1ショート
![2018-10-15 22.39.56.jpg](https://qiita-image-store.s3.amazonaws.com/0/49885/49197a5d-b518-3365-79ed-b796c4dca2a1.jpeg)
![2018-10-15 22.40.43.jpg](https://qiita-image-store.s3.amazonaws.com/0/49885/71683cc9-cfbf-91c4-419f-c9531a1e647d.jpeg)

コネクタとスイッチ
![2018-10-15 22.47.05.jpg](https://qiita-image-store.s3.amazonaws.com/0/49885/f6ed4624-6774-ff0b-3c43-32bb950642d2.jpeg)
![2018-10-15 22.51.33.jpg](https://qiita-image-store.s3.amazonaws.com/0/49885/7b4d36db-4eca-27e9-d28f-9a52b591e282.jpeg)

ProMicro用ピンヘッダ
![2018-10-15 22.55.45.jpg](https://qiita-image-store.s3.amazonaws.com/0/49885/85f0373c-df12-0bce-52f5-41ce2acf9425.jpeg)
![2018-10-15 23.00.55.jpg](https://qiita-image-store.s3.amazonaws.com/0/49885/5d318191-9375-db68-8d82-5114c9fbd774.jpeg)
![2018-10-15 23.06.48.jpg](https://qiita-image-store.s3.amazonaws.com/0/49885/16e83cac-021d-6aa6-1f2f-f7c9c2958030.jpeg)
![2018-10-16 00.38.37.jpg](https://qiita-image-store.s3.amazonaws.com/0/49885/bccac6c4-3ae8-cd40-858d-59f82b0feec5.jpeg)

# キー配列について
スターターキットだとデフォルトでファームが焼いてあるのですが、
私はこれまでHHKB愛用者だったのでなるべく近い配列したかったので
QMK Firmwareのビルド環境を整えてカスタマイズしました。
作業にあたり[こちらのサイト様](http://www.urong-answer.org/2018/08/changed-keymap-for-mint60/)が参考になりました。

HHKBの配列に近くなるようAltやFnキーの位置を変更。PrintScreenは個人的な趣味です。
上矢印キーの左については特に割り当てるキーが思いつかなかったので、重複しますがバックスラッシュを入れておきました。

```keymap.c
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  [0] = LAYOUT( \
    KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,      KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,    KC_BSPC,  \
    KC_TAB,    KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,      KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC, KC_BSLS,  \
    KC_LCTL,     KC_A,    KC_S,    KC_D,    KC_F,    KC_G,      KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT,        KC_ENT,   \
    KC_LSFT,       KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,      KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_BSLS,   KC_UP,  KC_RSFT,   \
    KC_ESC,    MO(1),    KC_LALT,    KC_LGUI,    KC_SPC,        KC_SPC, KC_RALT,  MO(1),               KC_LEFT,KC_DOWN,KC_RGHT \
  ),
  [1] = LAYOUT( \
    KC_ESC,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,     KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,    KC_DEL, \
    RGB_TOG,   RGBRST,  RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX,   XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCREEN, XXXXXXX, XXXXXXX, XXXXXXX, \
    XXXXXXX,     RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX,   XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,        XXXXXXX, \
    _______,       XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,   XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, KC_PGUP, _______, \
    XXXXXXX,   _______,    _______,    _______,    XXXXXXX,       XXXXXXX, XXXXXXX, XXXXXXX,                   KC_HOME, KC_PGDN, KC_END \
  )
};
```

ファイルができたらmakeします。
![make.jpg](https://qiita-image-store.s3.amazonaws.com/0/49885/27feb340-4d9e-61dc-62b4-4215a6b53093.jpeg)

あとはQMKToolで書き込んで完成！
![qmktool.jpg](https://qiita-image-store.s3.amazonaws.com/0/49885/6672b115-c0ab-9ac6-bd31-b7440641127c.jpeg)

# 感想
初めての自作キーボードで少々の失敗はあったものの、結構うまくできたんでないかなと思います。
(スタビライザーを1つ入れ忘れたりアクリル部品を折ってしまった。。。)
はんだ付けも最初は感覚がわからず結構反応が悪いキーがあったりしたけど
感覚がわかればササッと修正できました。

もう1セットキットを購入してあるので、次はもっとうまく作れると思います。


※2018/10/18追記
キー配置を更にHHKBに近づけました。

```keymap.c
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  [0] = LAYOUT( \
    KC_ESC,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,      KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,    KC_BSPC,  \
    KC_TAB,    KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,      KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC, KC_BSLS,  \
    KC_LCTL,     KC_A,    KC_S,    KC_D,    KC_F,    KC_G,      KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT,        KC_ENT,   \
    KC_LSFT,       KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,      KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_GRV,   KC_UP,  KC_RSFT,   \
    MO(1),    LALT(KC_GRV),    KC_LGUI,    KC_LALT,    KC_SPC,        KC_SPC, KC_RALT,  MO(1),               KC_LEFT,KC_DOWN,KC_RGHT \
  ),
  [1] = LAYOUT( \
    KC_ESC,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,     KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,    KC_DEL, \
    RGB_TOG,   RGBRST,  RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX,   XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCREEN, XXXXXXX, XXXXXXX, XXXXXXX, \
    XXXXXXX,     RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX,   XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,        XXXXXXX, \
    _______,       XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,   XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, KC_PGUP, _______, \
    XXXXXXX,   _______,    _______,    _______,    XXXXXXX,       XXXXXXX, XXXXXXX, XXXXXXX,                   KC_HOME, KC_PGDN, KC_END \
  )
};
```