言葉にしないと伝わらない。文字にしないと残らない。

Caravelle BLE ファームウェア書き込み環境編:ble pro microの環境設定について

この記事をシェアする

f:id:Ziddorie:20210515165519j:plain

ぶっちゃけ組みたてよりもこっちのほうがしんどかったかも。

 BLE Pro Microの環境構築=地獄

前回の記事でCaravelle BLEを組み立てたことを記事にしました。

www.nenzop.net

ですが自作キーボードでは、物理的な組み立て以外にも自分だけのキーマップを書き込むファームウェアの環境を設定する必要があります。

今までのファームウェアはQMK Firmwareを使っていたのですが、BLE Pro Microは一筋縄では行かなく地獄を見ました。

 

最悪このキーボードを手放すかくらいの絶望度だったので、今後こういった絶望感を味合わないように、この記事を残します。

MacかWindowsか、それが問題だ

わたしはMacユーザだったのですが、それが運命を左右するほど苦労するほどの分岐点でした。

結果から言うとWindowsユーザのほうが環境構築が楽です。わたしは結局Macでは環境構築を作り上げることができませんでした。

Macでファームウェアの書き込み環境を整えようと思ったのですが、結局Macに最初からインストールされているPythonのバージョンと自分でインストールしたPythonのバージョンが競争してどうしても環境を整えることができませんでした。

 

ということで、ここではWindowsユーザに向けて環境設定方法を記述しますが、Macユーザの皆様はなんとかしてWindows環境を整えるか、がんばってPythonの環境を何とかすることをオススメします。

 

Windowsの場合、ファームウェアの書き込み環境を整えるのは、今となってはかなり容易でした。

一時は普段使っていないWindowsPCを持ち出すくらいだったのですが、先駆者様の素晴らしいTweet(後述)により、BLE Pro Microのファームウェア書き込み環境を整えることができました。

 

具体的なファームウェア書き込みの手段

ググりまくっていて見つけたのが、この美しく輝くツイートでした。

Macでの環境構築に死ぬほど手間取ったので、ここまで簡潔に環境構築フローをまとめているMouse_Bさんが神様に見えました。

このツイートをまとめるとこのような感じです。(Mouse_Bさんのツイートを引用)

  1. MSYS2をインストール
  2. 無印MSYS2を起動し、アプデ
  3. qmk_FirmwareをDL(Caravelle-BLEはhttps://github.com/sekigon-gonnoc/qmk_firmware/tree/nrf52 を使うので、このURLに飛んで、緑色の「Code」から「Download ZIP」
  4. qmk_Firmware(qmk_firmware-nrf52)をC直下に展開
  5. 無印MSYS2でcd /c/qmk_firmware-nrf52を打つ(※以下無印MSYS2で作業している場合は※を)
  6.  ./util/msys2_install.shを打つ(※)
    これで基本的な環境構築は終了。
  7. make git-submoduleを打つ(※)→成功は⑩、失敗は⑧に
  8. ARMツールチェーン(https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads)をインストール
  9. MSYS2のインストール先(デフォルトでC:\msys64)にある「home/ユーザ名」の中にある「.bashrc」にexport GNU_BD='/C/Program Files (x86)/GNU Arm Embedded Toolchain/10 2020-q4-major'(GNU以下は変わるかも)とexport PATH=${GNU_BD}/bin:$PATHを追記。
  10. NRFSDK v12.3.0(https://nordicsemi.com/Software-and-Tools/Software/nRF5-SDK/Download)をDL(バージョン注意)
  11. NRFSDK v12.3.0をC直下に展開
  12. MSYS2のインストール先(デフォルトでC:\msys64)にある「home/ユーザ名」の中にある「.bashrc」にexport NRFSDK12_ROOT= /c/nRF5_SDK_12.3.0_d7731adを追記
  13. nrfutil.exe(https://github.com/NordicSemiconductor/pc-nrfutil/releases)をDLし、C直下に移動
  14. dirを打つ(※)
  15. qmk_utilsが表示されたら、cd qmk_untilsを打つ(※)
  16. mv /c/nrfutil.exe ~/qmk_utilsを打つ(※)
    これで環境構築は終了
  17. make caravelle_ble/master:default:dfu_bleを打つ(※)
  18. make caravelle_ble/slave:default:dfu_bleを打つ(※)
    これでファームウェアのビルドが終了

本当にこの手順を踏むだけファームウェアの書き込み環境が整い、ビルドすることができました。

Q.神様を見たことがある?
A.Twitterでみた

 

大変わかりやすい解説なので、補足は必要ないかもしれないですが、9の手順のexport PATH=${GNU_BD}/bin:$PATHはそのまま入力しましょう。

${GNU_BD}部分は自分の環境のパスかと思って直接パスを書いたのですが、それでは動きませんでした。

Caravelle BLEへの書き込み手段

Caravelle BLEは完全無線キーボードですので、USBポートすら持ちません。

組み立てて思ったのですが、ちとピーキーすぎる仕様ですね。

だからスマートフォンかタブレットを利用してファームを書き込みます。

 

ここまで来てしまえば後はビルドガイドの通りなので、躓くことはありませんでした。

github.com

自作キーボードは組み上がって完成ではない!

自作キーボードは組み立てるのも楽しいですが、物理的に動作して完成ではありません。

自分の使いやすいキーマップにしてこそ真の完成を見ます。

 

キーマップを煮込むことで作業効率が何倍にもあがます。

少ないキー数でもフルサイズキーボードの入力速度と全く変わらないどころか、指の動作が少なくて済むので、高速に入力できます。

 

だからこそキーマップを書き込むファームウェアの環境構築は本当に大事。

QMK Firmwareの構築よりも難しかったble pro microのファーム書き込み環境の構築ですが、上記の方法で行きました。

同じような悩みをもつble pro microユーザの一助になれば幸いです!