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

![IMG_20231231_175759.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1750353/2bf9a30f-45ef-2406-b6c1-7a1cdecbe24e.jpeg)
自作キーボード3号機
# 分割式キーボードは親指シフトに最適
[別稿で初めての自作キーボードを紹介（自作キーボード1号機）](https://qiita.com/keyoshizawa/items/4217ae6cdc4b860fd9fc "XD60キットで親指シフトキーボードを作る（矢印キー付き）")、その際は一つのキーボードのスペースキーが２等分に割れたキーボードを作成し、親指シフト化をした。
その後、自作キーボードの紹介ページを色々と見ているとキーボード自体が分割されているものがあることがわかり、特に従来のスペースバー周りが親指シフトに適していることに着目し、自作を考えた。
分割キーボードの候補としては、
・Corne Cherry
・7skb, 7spro, 7promax
・Mint60
・guide68
などが挙げられるがCorne Cherryはカラムスタッガードのため除外（運指に自信がない）、7skb, 7spro, 7promax系は矢印キーがデフォルトレイアウトで配置できないので除外、guide68はMint60に無いケースや無線が別売りで用意されていること、また、最近になってダイオードがオンボード化されたのが大きく、guide68に決定した。逆にMint60の利点は、guide68よりも早期に販売され、販売個数も多いことから、多くのQMKファームウェア事例が参考になることである。
# 対象
親指シフト入力のキーボードを自作したい人。
ハンダごてを多少使える（細かいハンダづけは不要）
# 完成予想図
guide68のレイアウトを元に、QMK Firmwareにより下図のようなキーボードを組み立てることができる。

![KLE_guide68_nicola.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1750353/6aa5d123-66f1-6880-36fa-87b8d62d6d75.png)

以下のような特徴を持つキーボードとなる。
- 日本語入力はNICOLA-A規格
    - ANSI配列をベースとした親指シフト配列の標準規格。
    - 右手小指の右側のキーに後退キーを割り当てている。
- 英数モードはANSI配列
    - 長期的に部品の入手が容易。
    - 最近では、サリチル酸さんがJIS配列のキーキャップacid_capsを販売しているのでそちらを選択しても良いと思う。
    - 親指シフトを使わない人でも普通の英語キーボードとして使うことができる。
    - Enter, 右Shiftなどが右手小指近くに配置されている。右手小指が楽。
- 60%キーボード
    - F1～F12などは、Fnキーとセットで打鍵する。HHKBのような思想のキーボード。
- 分割キーボード
    - 左右のキーボードはTRSケーブルで接続されており、このケーブルの長さの範囲で左右離したり、左右で角度をつけて設置が可能。これが非常に快適。

# 費用
自作3号機で総額約22,000円。キーキャップとルブに拘らなければそこまで高くならない。
# 買うものリスト
- Guide68キーボードキット　8,300円（送料込）
    - BOOTHという個人通販用サイトにサリチル酸さんが出店している。ここでキットを注文した。
    - 但し数に限りがあるようで流通数は少ない。

![IMG_20231224_202415.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1750353/54d1877b-5558-16cc-df52-f7bf7ef24f63.jpeg)
キット構成品：基板（上面）
![IMG_20231224_202438.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1750353/33255c7e-81d4-3867-d477-f21be20b29c9.jpeg)
キット構成品：基板（底面）
![IMG_20231224_202456.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1750353/b659ed47-6120-72d9-5be5-f3a48bf38ac3.jpeg)
ダイオードは基板に実装済み（製作時間が大幅に削減された。ありがたい）
![IMG_20231224_202543.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1750353/22d48f78-296f-dee1-759f-3d713c22cd32.jpeg)
スイッチプレート（上面）
![IMG_20231224_202638.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1750353/ec416016-cedf-6e21-aaaa-81f0f91e7b04.jpeg)
ボトムプレート（上面）
![IMG_20231224_202655.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1750353/7fec110f-06b1-0a59-4980-7eba393e7fc6.jpeg)
ボトムプレート（底面）無線に対応したボタン電池ソケット用接点が用意されている。
![IMG_20231224_202743.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1750353/4ec28b20-15c6-7793-e10c-48013de004e0.jpeg)
カバープレート
![IMG_20231224_202923.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1750353/63597107-914e-f9b8-5c41-66b2f0dd0c53.jpeg)
ProMicro
guide68の基板に不備があったとのことで、サービスでコネクタがUSB-Cとなっていた。
![IMG_20231224_204112.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1750353/8472a368-eec8-a37f-30af-0fb8b9772de6.jpeg)

- 以下　遊舎工房にて調達
![IMG_20231224_203336.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1750353/e9519a23-78d8-9996-32ea-7ea09958e123.jpeg)
LED（右はすでに2個使っているので残り8個となっている）

- 以下AliExpressにて調達
    - キースイッチ　AliExpress Gateron Silent Switch Red 65PCS 4,186円。
![IMG_20231224_203721.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1750353/633b13f0-6079-a5db-ac67-214137707c41.jpeg)
右上がGateron Silent Red, 左側のソケットが四角いのがKailh Red, 下のケースが黒いのがGateron Red
    - guide68キーボードはスイッチが68個必要で、3個足らないが、1個余分に入っており66個、他に自作2号機で使用したKailh Redスイッチが余っていたのでそちらで2個充当した。
    - キーキャップ　AliExpress Nautilus All in One 6,264円。
    ![IMG_20231219_213502.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1750353/7c24cc60-b2ae-319e-710d-fecbe4065922.jpeg)
![IMG_20231219_213604.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1750353/72c7600a-9950-e3b2-e2f7-fd5202167db2.jpeg)
![IMG_20231219_213705.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1750353/2f8e85b2-65b6-4b5c-1a73-751b2c5f819f.jpeg)


爽やかな青い色と黄色、水色のダブルショットの文字に一目惚れした。フルキーボードのキーを揃えた高価品だが、キーを色々と交換して遊んだりしたいし、何よりキーの色が揃わないのは全くもって間抜けな感じがするのでどうしても避けたかった。材質はキーキャップとして最高品質のpbtダブルショット。
    - ルブ AliExpress Krytox GPL105 10g 1,215円 液体で粘度のあるキースプリング用の潤滑油。樹脂部のグリスタイプのGPL205G0は前回購入済みのものを使用。
    - LED 遊舎工房 SK6812MINI-E（10個入り）¥385 送料¥550。米粒のように小さいが、RGBを全色発色可能のスゴイやつ。guide68では12個のLEDが必要だが、これも前回の自作2号機で余ったLEDで補充した。
![IMG_20231230_145905.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1750353/9534a9bf-cabb-3cee-0770-7d82451c532e.jpeg)
SK6812MINI-E
ダイオードがオンボード化された最新版のguide68では、ハンダづけの最高難度は、このLEDを基板にハンダづけすること。これができればスイッチのハンダづけは簡単にできるだろう。なお、細かすぎてこのLEDを付ける自信がない、またはそもそもLEDは必要がない方は、このハードルを回避することができる。
- ケース
ケースは今回考えず、guide68標準の基板に直接ゴム足をつける方式とした。

# 組み立て
- guide68キットの組み立てについては、本家[サリチル酸さんのビルドガイド](https://salicylic-acid3.hatenablog.com/entry/guide68-build-guide "自作キーボードキット『Guide68』ビルドガイド")を参照。
- Pro MicroへのRemapを使用したフォームウェアの書き込みもビルドガイドの通りにやっておけば、通常の英語キーボードとして機能する。
- 親指シフトのファームウェアへの書き換えは後述する。
- 以下、本家ビルドガイドに加えて手を入れた部分を解説する。

![IMG_20231230_164734.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1750353/ccac6e50-05a6-dd2e-d996-3b735c017f0c.jpeg)
LEDをハンダづけ
![IMG_20231230_172530.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1750353/0cd375d5-fd20-e3be-a441-dbecd6b9ab82.jpeg)
スタビライザーにルブKrytox GLP205G0を塗布。ちょっと塗り過ぎ。

- スイッチにルブを塗布する。
![IMG_20231230_204943.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1750353/1e97ae8c-6562-526f-a1c8-f7a9792762d0.jpeg)
ルブGPL205G0に、GateronとKailh用のスイッチオープナーが付属しており、これが大変役立った。
![IMG_20231230_205036.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1750353/4ba3829f-0410-f7cc-5b3b-06a43a740d87.jpeg)

![IMG_20231230_205048.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1750353/959f2afc-0d8a-040f-ce18-e94569bd7f15.jpeg)

![IMG_20231230_205600.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1750353/8e2b8575-2e71-933c-7cdb-833a099ee4fa.jpeg)
![IMG_20231230_210327.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1750353/12bc9581-8fea-354c-c921-aa0e10495a88.jpeg)
スプリングをジプロックの袋に入れ、ルブGPL105を数滴滴下し、シャカシャカ振って馴染ませる。
![IMG_20231231_114605.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1750353/7ab423a7-5b17-1d4f-71fc-a60b1c2c175b.jpeg)
スイッチを配置したところ。大部分はGateon Silent Redだが、66個しか無かったので、左上のESCキー、右上から1段下のバックスラッシュキーのみKailh REDとした。
- ハンダづけが終わったら、スペーサーで各プレートを組み上げて、最後にゴム足を貼り付ける。
- キーキャップを付けて完成。
:::note warn
分割キーボードの場合、左右のキーボードを繋ぐTRSケーブルの抜き差しはUSBケーブルを外した状態で（通電の無い状態で）行うこと。Pro Microが壊れる恐れがあります。
:::
![IMG_20230412_214347.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1750353/6286c475-17b9-b41b-ee5e-17192e8ff925.jpeg)
自作キーボード2号機
# 親指シフトファームウェアの書き込み
いよいよ親指シフト化となる。

- ファームウェアをキーボードにロードするためのソフトウェア[QMK Toolbox](https://github.com/qmk/qmk_toolbox)をインストールする。
- [親指シフトを可能とするファームウェアはここ](https://github.com/kyoshiza/qmk_firmware/blob/guide68_1/guide68_nicola_2401082113(a2j).hex)

![github_guide68_nicola_2401082113(a2j).hex.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1750353/597f46b6-29ff-aea5-813b-66cb690f0f3f.png)
- 上のリンクを開いて、「Raw」ボタンを右クリックして、自分のPCのフォルダにダウンロード。
- 私がguide68を親指シフトにカスタマイズしたファームウェアをGithubに公開した。将来的にアップデートされる（したいと思う）。
- ファームウェアをキーボードに書き込む。
![qmk_Toolbox.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1750353/b07ae7e8-9783-399d-c625-2f9957d3841f.png)
- リセットボタンを押して書き込みモードにする。
:::note info
guide68リセット方法
以下、誰も教えてくれないが、色々なページを見て自ら学習したこと（guide68ビルドガイドには記載されていなかった）。
- 分割キーボードの左側はESCキーを押しながらUSBコネクタを挿入すると、シリアルポートにDFUデバイスが現れる。
- もう一つの方法としては、分割左右キーボード共に、底面のリセットボタンを２回連続して押すと、シリアルポートにDFUデバイスが現れる。
:::
- 書き込みモードになると、黄色い文字で、「DFU device connected」と表示される。この状態ではキーボードとしては使えず、ファームウェアを書き込む状態。
- Openを押して先程自分のPCにダウンロードしたファイル（hex file）を指定して、「Flash」ボタンをクリックすると、書き込みが始まる。
:::note warn
分割キーボードの場合、Pro Microは左右のキーボードに一つずつあるので、左右それぞれのPro Microに対して、同一のファームウェアを書き込むこと。ファームウェアを書き込むときは、左右キーボードを接続しているTRSケーブルは外しておくことが望ましい。
:::
- 書き込み終了すれば親指シフトキーボードとして動作開始する。

## このファームウェアの使い方
QMK firmwareを使えば、自分好みの高度なカスタマイズが可能だが、上記のファームウェアを使う場合の使い方を以下に解説する。

このキーボード、見た目はANSI配列だけど、WindowsやIMEなどの設定は、JISキーボードとして設定している。また、親指シフトモードにしても、PCにはローマ字で送出される。すなわち、
- 従来からJISキーボードを使っている人は、ソフトウェアの設定変更はしなくて良い。
- 従来ANSI(US)キーボードを使っていた人は、IMEなどの設定を変更して、JISキーボードを使うように変更することが必要。
- 従来親指シフトキーボードを使っていた人は、配列変換などのドライバーソフトウェア（やまぶき等）をオフにする。また、IMEの設定などで、ローマ字入力を選択する必要がある。
コンバクトなキーボードなので、多くの機能はHHKB等と同様、Fnキー併用押しが必要となる。

![KLE_guide68_nicola.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1750353/92687dba-5011-52d8-8727-f3ce6d7657e1.png)
Fnキーは左下と右下配置。Pgup, Pgdown, Home, End等は右下のFnキーを押しながら矢印キーを押すことによって片手のみで可能。
IMEのON・OFFはFn+親指右・親指左で操作する。これらのキーはそれぞれ変換・無変換に割り当てられている。
| 押下 | 出力 | 思想 |
|:-:|:-:|:-:|
| Fn+親指右  | 変換・親指シフト状態に遷移  | 純正親指シフトキーボードに近い使い勝手を想定  |
| Fn+親指左  | 無変換・英数状態に遷移  | 純正親指シフトキーボードに近い使い勝手を想定  | 
| Fn+ ←/↓/↑/→| Home /PgDn / PgUp /End| 矢印キーと同様の向き  |
| Fn+ HJKL  | ←↓↑→  | viに準じる  |
| Fn+ U / I  | PgDn / PgUp | J/K と同様の向き  |
| Fn+ Y / O  | Home / End  | H/L と同様の向き(テキスト編集の際)  |
| Fn+ BS  | 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のいずれかのOS上で動作可能。WindowsならばQMK SYSというソフトウェアをインストールするだけでよい。

- [リポジトリ](https://github.com/kyoshiza/qmk_firmware)のクローン
~~~diff_c
git clone -b guide68_1 --recurse-submodules https://github.com/kyoshiza/qmk_firmware.git
~~~

 - qmk_firmwareは基本的にGitHubの機能を使って各ユーザーのファームウェアのカスタマイズを管理する。GitHubのディレクトリ構造を見ると、多くの初期のユーザーが各自のカスタマイズをコミットしているが、現在では多分それよりも遥かにかなり多くのユーザーが、本番のGitHubの中のqmk_firmwareを直接コミットせず、qmk_firmwareを自分のGitHubにクローン（コピー）して公開するスタイルが主流となっているようだ。
 
- キーマップの書き換え
    -- keyboards/guide68/keymaps/nicola/keymap.c を編集
    -- Fnキーの場所や、矢印キーの割り当てなどは好みに応じて変えたほうが良いだろう。
    -- RGB_で始まるキー割当は、Fnキーと同時押しによって、キーボード分割面の12個のLEDの発光モードを設定する。
![keymap_c.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1750353/28dd0ad6-9637-43fe-3513-99e65f2d3f43.png)
- ビルド
~~~diff_c
qmk compile -kb guide68 -km nicola
~~~
:::note warn
- エラーが発生する場合
エラーが発生してお困りの方は、私に直接ご質問をお願いします。
Git Hubの私のQMK_firmwareをguide68用に更新する必要があります。
    - LEDの制御周りでエラーが発生する場合があります。本家qmk_firmwareのリポジトリをクローンして、私のQMK_firmwareの更新ファイルを移す必要があります。結構大変な作業となるのでおうちゃくして作業を進めていません。申し訳ありません。
:::

- DFUで書き込み
ファームウェアを書き換えるには、上記と同じように、キーボードをDFU（書き換え可能な）状態で接続しておく。（キーボードの裏側にあるリセットスイッチを押す）
~~~diff_c
qmk flash -kb guide68 -km nicola
~~~

## 付加機能　LEDの光らせ方
- この基板(PCB) guide68には、オプション機能として、LEDがキーボード分割面に12個ついており、RGB（フルカラー）の出力が可能となっている。現在は、親指シフトモードで緑色、英数モードで青色として、視認性を向上させている。（現在のところ、左側キーボードのみ色の変色が可能で、右側キーボードは反映されていません。）
- また、Fn+X等のキー押下により、LEDの発光方法を変更することができる。
詳細は、QMK Firmwareの[RGB Lighting](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_rgblight.md "RGB Lighting")を参照してください。

## 解決事項
- 私は元々、[@sadaoikebe](https://qiita.com/sadaoikebe/items/c856c563a286c7f5b471)様のページを参考にしてこのキーボードを製作したが、記号の入力が、キーキャップのアサインと実際に入力される記号とがどうしても合わないという事象が発生しており、今でも解決していない。例えば、シフトを押しながら「２」キーを押すと、キーキャップの表記は「@」のはずだが、「"」が入力されてしまう。
- 私の解決方法としては、Windows 10の設定⇒時刻と言語⇒言語⇒優先する言語（言語の追加）で英語（米語）をインストールし、日本語と英語とそれぞれのキーボードを使えるようにしたあと、通常の運用方法として、Alt+Shiftで日本語から英語にキーボードのモードを変えるという操作をしている。このAlt+ShiftがQMKで親指シフトモードに入るとき、出るときに登録できれば完璧なのだが、そのアサインの方法がわからない。私のQMKに関する知識が未熟なところ。
:::note info
2024/1/8 上記不具合が完全に解消された。QMKのプログラムを修正することで、[ANSI (US)配列用のキーコードをJIS (JP)配列用キーコードに変換する](https://github.com/m47ch4n/qmk-translate-ansi-to-jis/blob/main/README.md "qmk-translate-ansi-to-jis")することが可能となり、実装し完全に英語キーボードの表記どおりに入力することができるようになった。
:::

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

以上