Caravelle-BLEのビルドログ

f:id:yt3trees:20210117113258j:plain

これまで使った自作キーボード

自作キーボードにはまってからは40%キーボードばかり使っています。

買ったもの

組み立て

ビルドガイド通りに組み立てれば特に問題ないです。

ほぼダイオードレスで、キースイッチを直に基盤にはんだ付けするタイプなので組み立て自体は意外と楽でした。

インサートをケースに熱圧入する作業、初めてするのですが結構楽しいですね、これ。 ミスると終わりなので慎重に作業しました。 github.com

キースイッチのカスタム

はめるキースイッチは買ったままではなく分解してカスタムしました。

音の良いと言われるGateron Ink BlackスイッチをKrytox GPL 205とKrytox GPL 105でLubeし、スプリングは重すぎず軽すぎずの63.5gに交換しました。

せっかくなのでついでにフィルムも挟みました。

フィルムありなしの違いはあんまり分かってないんですが、コトコト寄りに音が近づくようです。

ビルド・ファームウェアの書き込み

nrf52対応のリポジトリがあるのでそれをクローンします。
GitHub - sekigon-gonnoc/qmk_firmware at nrf52

msys2を使ってビルドしますが、BLE用に環境を整えてあげる必要があります。

BLE用の環境構築

このあたりはビルドガイドに一部載っていない内容もあるので軽くメモ。

NRFSDK v12.3.0を取得し適当なフォルダに展開します。
例:C直下にdevフォルダを作ってそこに展開

環境変数を設定する

msys2で以下を入力し、環境変数を設定します。

export NRFSDK15_ROOT=/c/dev/nRF5_SDK_12.3.0_d7731ad
//フォルダは展開した場所を指定する。

ここ1点注意なのが、フォルダパスは\でつなぐ形ではなく、/で入力する必要があります。

当然ながらC:\~~だとビルドする際エラーになります。
(私はこれを見落とし、30分ほど無駄に悩みました。。)

nrfutilを設定

nrfutil.exeをダウンロードし、~/qmk_utilに保存します。

ビルドガイド上では上記のように書かれているのですが、私はそもそもqmk_utilの場所が分かりませんでした。

Google先生に聞いたところ以下の記事を見つけました。

BLE Micro ProのQMKfirmware書き込みで躓いたところ纏め|BITLOP|note

何でも、~というフォルダの配下にqmk_utilsがあるんですね。以下をmsys2で入力してフォルダに移動します。

cd ~/qmk_utils

で、以下を入力してnfrutil.exeをqmk_utilsに移動させます。

mv /c/nrfutil.exe ~/qmk_utils

これで環境構築は完了です。

ファームウェアを書き込む

ファームウェアの書き込みはビルドガイド通りに進めれば特に問題ありませんでした。

masterとslave分の両方をビルドしてスマートフォンから書き込みます。

私はデフォルトのファームウェアでも十分使いやすいのですが、慣れているものに書き換えました。

RaiseとLowerをそれぞれ入力したときにF13とF16が入力されるようにキーマップを書いています。
GoogleIMEでF13とF16で日本語切り替えできるように設定することで、
LowerのタップでIMEオフ、RaiseのタップでIMEオンの動きができます。
(参考:QMK Firmware で Raise/Lower と変換/無変換を同じキーに割り当てる - Okapies' Archive)

ラグを感じたら

ファームウェアをcaravelle-bleに書き込み後、入力にラグを感じる場合はconfig.hの以下のパラメータを調整すると良いようです。
(ビルドガイドより引用)

  • BLE_NUS_MIN_INTERVAL 左右間の通信間隔の最小値(ms) 下げるとマスタとスレーブ間の遅延が減るものの、消費電力が増える。デフォルトは20 (2020/07/27以前は30)
  • BLE_NUS_MAX_INTERVAL 左右間の通信間隔の最大値(ms) 下げるとマスタとスレーブ間の遅延が減るものの、消費電力が増える。デフォルトは50 (2020/07/27以前は30)
  • BLE_HID_MAX_INTERVAL 端末との通信間隔の最大値(ms) 下げると端末とマスタ間の遅延が減るものの、消費電力が増える。デフォルトは60 (2020/07/27以前は90)
  • BLE_HID_SLAVE_LATENCY 端末との通信パラメータ 下げると通信頻度が増えるが、消費電力が増える。HID_INTERVALに反比例させると良い? デフォルトは3 (2020/07/27以前は4)

私の環境ではslave側に少し遅延を感じたので調整しました。

調整するとかなり改善できました。消費電力は上がるようですが、ここは快適さ重視ですね。

#define BLE_NUS_MIN_INTERVAL 10
#define BLE_NUS_MAX_INTERVAL 30
#define BLE_HID_MAX_INTERVAL 40
#define BLE_SLAVE_LATENCY 3

まとめ

ビルドに少し手間取りましたが無事組立完了。

ざっくり、キースイッチのカスタムに3時間。組み立てとファームウェアの書き込みに5時間くらいだったかなと思います。

思った以上に時間かかりましたが楽しかったです。

打鍵感はかなり感触がよく、マウント方式とケース設計でこれだけ差が出るものだと驚きました。

これだけ楽しめてキットの価格が1万5千円なのが素晴らしいですね。
製作者様に感謝です。

以上です。