XD60キットで親指シフトキーボードを作る

![82353179_3617272921634666_1234622656640910854_o.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543598/4b443faa-cb9f-00c5-8cf7-1824a1800e89.jpeg)
##親指シフト使いの苦悩

* 生産終了してしまった純正キーボードの確保に奔走する
* 左右の親指でなんとか別のキーを押せるような配置のJISキーボードを頑張って探す
* OSがバージョンアップするたびに、ソフトがちゃんと動くか心配になる

キーボードを自作すればこんな悩みともおさらばだ！

本稿ではXD60という中華キーボードキットを使った親指シフトキーボードの制作に的を絞って、ハードウェア・ソフトウェアの両面から解説する。

##対象
富士通の開発した[親指シフト](https://ja.wikipedia.org/wiki/%E8%A6%AA%E6%8C%87%E3%82%B7%E3%83%95%E3%83%88)入力を使って日本語を入力している人。
PCの操作に多少あかるい。
ハンダゴテを最低限使える。(細かい半田付けは一切不要。)

##方針

自作キーボードと言っても、**自分で部品から設計する必要はない**。自作PCと同じで、**既成部品を買ってきて組み立てればOK**。

* 自作キーボードのキットを買ってきて、組み立てる。
* 組み立てたキーボードに、QMK firmwareを書き込む。キーボード内で親指シフト入力をローマ字に変換して出力できる。
* PCやMac上で、配列変換ソフトウェアは使わない。

##完成予想図
親指シフトに使う場合、今現在、通販で入手可能なキットの中では、XD60 VER3.0が使いやすい。
以下のようなキーボードを組み立てることができる。
![keyboard-layout(15).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543598/83b284aa-55d5-90dc-1480-e7407179ff23.png)


以下のような特徴をもつキーボードとなる。

* 日本語入力はNICOLA-A規格
    * ANSI配列をベースとした親指シフト配列の標準規格。
    * 右手小指の右側のキーに後退キーを割り当てることができる。
* 英数モードはANSI配列
    * 長期的に部品の入手が容易。
    * 親指シフトを使わない人でも普通の英語キーボードとして使うことができる。
    * Enter, 右Shiftなどが右手小指の近くに配置されている。右手小指が楽。
* 60%キーボード
    * F1～F12や矢印キーなどは、Fnキーとセットで打鍵する。HHKBのような思想のキーボード。
    * Fnキー＋親指キーを変換・無変換に割り当てて、日本語入力特有の多くの機能を楽に使うことができる。
    * 矢印キーを追加することも可能。

##予算
どこで何を買うかにもよるが、最低15000円程度は必要だろう。

##通販サイト
* [AliExpress](https://www.aliexpress.com/)
    * 英語。
    * 送料無料。
    * 普通郵便で送られてくるせいか、届くまでに時間がかかる。
* [淘宝 (taobao)](https://world.taobao.com/)
    * 中国語。
    * 品揃えが豊富で入手困難なキット等もある。安い。特にキーキャップの品揃えが素晴らしい。
    * 送料がかかるが、まとめて国際発送してもらえるので高くはない。速い。数日で届く。

以下ではAliExpressで購入するリンクを示すが、中国語ができるなら淘宝で買うほうが良い。

##買うものリスト
* [基板(PCB) XD60 Ver3.0](https://www.aliexpress.com/item/32814945677.html)
    * スイッチを読み取ってUSBの信号に変換する基板。
    * **単品買い推奨。** 商品リンクでは、キットでまとめ買いできるようになっているが、親指シフトに使いづらい部品が付いてきてしまう。スイッチはまとめて買っても良いかも。(Kit 10)
* [プレート Carbon Fiber Plate for XD60](https://www.aliexpress.com/item/32923055703.html)
    * キースイッチを決まった位置に固定する部品。
    * 親指キーを左右分割して実装する場合、XD60キットのプレートでは駄目。この別売りプレートを買う。
    * 2.25uと2uの2種類があり、標準的な配列は2.25u。右シフトを詰めて矢印キーを導入する場合、2u版を選択してもよい。(ここでは解説しない)
* [ケース](https://www.aliexpress.com/wholesale?SearchText=gh60+case)
    * キーボードを収める箱。好きな色・材質・形状が選べる。
    * 中華の60% Keyboardキットはみんな共通のケースが使える。GH60用ケースは何でも使える。
    * XD60キット付属のプラスチックケースは$5程度のショボいものなので避けたほうが無難。
* [スタビライザー](https://www.aliexpress.com/item/32864774665.html)
    * シフトキーやスペースキーなど、幅広のキーに取り付ける部品。
    * PCB用スタビライザーと、プレート用スタビライザーの2種類があるけど、XD60ではPCB用を使う。
    * 上記の配列なら2uスタビライザー4つ、3uスタビライザー2つ必要。
* [スイッチ](https://www.aliexpress.com/item/4001111706889.html)
    * 上記の配列なら62個必要。
    * 打鍵感の違いで色分けされている。
    * ドイツのCherryや、中国のGateron, Kailhなどが人気。Outemuなど安価なスイッチもある。
* キーキャップ [kprepublic Cherry profile Dye-sub Keycap Set Thick PBT](https://www.aliexpress.com/item/32835265683.html)
    * XD60で親指シフトする場合、通常の60%キーボード用のセットに加え、追加で3U(キー3個分の幅)のスペースのキーキャップを2つ購入する必要がある。3UのスペースバーはFILCO Minilaというキーボードで採用されている。
    * 3Uをセットと別で買う場合、色味が微妙に違ってしまう場合があるので注意。
    * [この](https://www.aliexpress.com/item/32835265683.html)セットならば Base, Mod, Mod-Pro, 2 x Spacebar を購入するとよいだろう。
* USBケーブル (Type-C)
* 半田ごて、半田
    * 細かい作業は不要なので、使ったことなくても挑戦してみてもよいと思う。
    * 60W級の比較的強めの半田ごてだと作業しやすい。

## 組み立て
* PCBが届いたらまずはUSBケーブルを挿して動作確認。スイッチのパターンをピンセットなどでショートさせてちゃんとキーが入力されるか確認。

* 部品実装面
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543598/3fac9717-7cb1-4945-e704-01e910707e87.png)

* スタビライザーを取り付け
    * 工具不要。ぷちぷちと差し込むだけ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543598/38d9841f-81e9-2f61-746c-5e7f72024df6.png)
一番手前の親指キーに対応するスタビライザーは、他のと前後逆に取り付けることに注意。

* プレートにスイッチを差し込み、PCBの対応する穴に通す。スイッチ→プレート→PCBの並び。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543598/6a7633e2-4e95-f8bd-4c3b-2c86a6c23706.png)

* スイッチを通し終わったら、裏面に半田を流す。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543598/57597158-eb6b-9253-f528-cfe2f25f942a.png)
すっごく汚いけどこの程度しかハンダごてを使いこなせなくとも、容易に組み立てられる。

* 部品実装完了状態。Fnキーには軽いタッチの赤軸スイッチを割り当てた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543598/a4f800b9-821c-062c-a8c4-5b54789fd004.png)

* ケースに入れて、ネジをしめる。
* キーキャップを取り付ける。
* 組み立ててそのままでは、親指シフトキーボードとしては使えないが、キーを押してみて一通り反応するか確認。

## 既製ファームウェアの書き込み
いよいよ親指シフト化となる。

* [QMK Toolbox](https://github.com/qmk/qmk_toolbox) というソフトウェアをインストール。
* 親指シフト入力をローマ字に変換するカスタムファームウェアを書き込む
    * [このリンク](https://github.com/sadaoikebe/qmk_firmware/blob/master/keyboards/xiudi/xd60/keymaps/nicola/xiudi_xd60_rev3_nicola.hex) を開いて, Raw ボタンを右クリックして、ファイルにセーブ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543598/9770a8f7-b664-1ada-cb77-feb5cbb43d49.png)
    * USB cableをキーボードから抜いておく
    * スペース + Bを押したままUSB cableをキーボードに挿すと、DFU deviceが接続される。キーボードとしては使えず、ファームウェアを書き込む状態。
    * QMK toolboxを起動すると、DFU device connectedという黄色い表示が見えるはず。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543598/bdb4ab51-ede6-e061-88b8-68419d7fb9d9.png)
    * hex fileを選択して Open、「Flash」ボタンを押す。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543598/18fc07a5-7381-a78c-c701-af666845d63b.png)
    * 書き込み完了すれば親指シフトキーボードとして動作開始する。

## 既製ファームウェアの使い方
QMK firmwareを使えば高度なカスタマイズが可能だけど、上記のファームウェアを使う場合の使い方を以下で解説する。

このキーボード、見た目は ANSI 配列だけど、WindowsやIMEなどの設定はJISキーボードとして設定する。また、ローマ字入力を選択する。すなわち、

* 従来JISキーボードを使っていた人は、ソフトウェアの設定は変更しないでいいだろう。
* 従来ANSIキーボードを使っていた人は、IMEなどの設定を変更して、JISキーボードを使うように変更する。
* 従来親指シフトキーボードを使っていた人は、配列変換などのドライバーソフトウェアをオフにする。また、IMEの設定などで、ローマ字入力を選択する必要があるだろう。

コンパクトなキーボードなので、多くの機能はHHKB等と同様、Fnキー併用押しが必要となる。  

![keyboard-layout(13).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543598/4f60dbb5-f9b7-2c9e-8e39-6db4174c1598.png)

Fnキーは2つある。一番左下のキーと、右下の右から2番目のキー。
IMEのOFF・ONは Fn + 親指左・親指右 で操作する。これらのキーはそれぞれ 無変換・変換 に割り当てられている。

|押下|出力| 思想 |
|---|---|---|
|Fn + 親指左| 無変換・英数状態に遷移 | 純正親指シフトキーボードに近い使い勝手を想定 |
|Fn + 親指右| 変換・親指シフト状態に遷移 | 純正親指シフトキーボードに近い使い勝手を想定 |
|Fn + HJKL| ←↓↑→ | vi に準ずる |
|Fn + U / I | PgDn / PgUp | J/K と同様の向き |
|Fn + Y / O | Home / End | H/L と同様の向き (テキスト編集の際) |
|Fn + Backspace | Del | |
|Fn + '| Del | |
|Fn + P | Print Screen | |
|Fn + ] | Pause | |
|Fn + 1~12| F1 ~ F12 | HHKB に準ずる |

(注) Scroll Lock は誤入力防止のため削除してある

## ファームウェアのカスタマイズ方法
上記のデフォルトファームウェアからレイアウトを変更したい場合は、QMKファームウェアをカスタマイズすることができる。

[QMKのセットアップガイド](https://docs.qmk.fm/#/newbs_getting_started)通りに、開発環境を導入する。Windows、Mac、Linuxのどれかが必要。WindowsならばQMK MSYSというソフトウェアをインストールするだけでよい。

* [リポジトリ](https://github.com/sadaoikebe/qmk_firmware)のクローン

```
git clone --recurse-submodules https://github.com/sadaoikebe/qmk_firmware.git
```
* キーマップの書き換え
    * keyboards/xiudi/xd60/keymaps/nicola/keymap.c を編集
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/543598/913ffcd1-de98-209c-2d22-19c2bf8e6468.png)
    * FNキーの場所や、矢印キーの割り当てなどは好みに応じて変えたほうが良いだろう。

* ビルド

```
qmk compile -kb xiudi/xd60/rev3 -km nicola
```
* DFUで書き込み

ファームウェアを書き換えるには、上記と同じで、キーボードをDFU状態で接続しておく。(Space + B を押しながらUSBケーブルを挿す)

```
qmk flash -kb xiudi/xd60/rev3 -km nicola
```

## トラブルが発生した場合
何か問題が発生したり、わからないことがあったりしたらqiitaもしくはfacebookで私に質問してください。
お使いの環境でうまく動かなかった場合などでも、報告いただければできる範囲で対処いたします。
質問してくださることによって、本稿の品質が上がり、親指シフト使いの将来の助けになります。


以上