見出し画像

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

BLE Micro Proとは自作キーボードをbluetoothを用いて無線化できる凄いarduinoです。
遊舎工房という自作キーボーダーの聖地で手に入れました。

ではいきなり条件から。

人間:中華キーボードpcbにQMKfirmwareで書き込んだことがある(PCにはqmkのビルド環境ができている)。プログラミングは殆どわからない
環境:win10とmsys2
つくりたいもの:一体型のキーボードをBLE MICRO PROで無線化する

こちらのように、BLE Micro Proを作られた方が導入から書き込み方法まで纏めて頂いているのですが、cdとmakeしかわかっていない私では四苦八苦。
説明書: https://github.com/sekigon-gonnoc/BLE-Micro-Pro

というわけで、素人が躓いたところ纏めです。


1、BLE用のqmkを用意する
いままでつかっていたQMKfirmwareとはフォルダを分けたほうがお勧めとのことで、分けました。

msys2でcdを使い、BLE用QMKfirmwareフォルダを置きたい場所へ

これを打ち込む
$ git clone -b nrf52 https://github.com/sekigon-gonnoc/qmk_firmware.git ble_micro_pro
最後の「ble_micro_pro」の部分はBLE用のqmkのフォルダ名になります。だから好きな文字列で良いです。


2、nRF5_SDK_15.0.0_a53641aを指定する

説明書のページからNRFSDK15をダウンロードして解凍、nRF5_SDK_15.0.0_a53641aという名前のフォルダができるので、解りやすいところにフォルダを作って入れておく。
c:¥直下にdevって名前のフォルダーを作って入れました。

msys2でこれを打ち込む。
$ export NRFSDK15_ROOT=/c/dev/nRF5_SDK_15.0.0_a53641a

どうやら、msys2ではc:\とか書いちゃダメとのこと。
そして、必ずフルパスでうつこと。
一時間くらい費やして解決。


3、鬼門「~/qmk_util」に置く

説明書のページからnrfutil.exeをダウンロードして解凍。

解りやすい場所へ置く。c:¥直下にでも。

迷ったのはここ。
windows上で「qmk_util」というフォルダを検索しても出てこない。
「qmk_utils」というフォルダをいろんなところに作って試してみてもエラー
そもそも~/ってなんなのだ。

$ cd ~/
~/という謎のディレクトリがあることを知る

$ dir
現在のディレクトリを見るとqmk_utilsというディレクトリを見つける。
utilじゃなくてutilsだけど、気にせず進める。

$ cd qmk_utils
$dir
なにやら設定ファイルらしきものがたくさんあるので、ここにnrfutil.exeを入れてみる。

$ mv /c/nrfutil.exe ~/qmk_utils
c:¥nrfutil.exeを移動する。

OK!


4、ビルドするときのエラー

さっそくビルド
$ make ble_micro_test:default:nrfutil

(OK連発キタコレ!ここまでで4時間くらいかかった)

と思ったらこんなエラーが発生
Error: No such command "usb_serial".
make[1]: *** [tmk_core/nrf.mk:923: nrfutil] エラー 2
Make finished with errors
make: *** [Makefile:544: ble_micro_test:default:nrfutil] エラー 1

説明書のページにUSBシリアルのエラーに該当。
atomを開く。

qmk/tmk_core/nrf.mkの862行目に行く。
目的のこの文章がない。
$(NRFUTIL) dfu usb_serial -pkg $(TARGET).zip -p $$USB; \
ひたすら探す。

しばらく探して検索掛ければいいじゃないかと気付く
検索したら1か所該当(930行目くらいにあった)

$(NRFUTIL) dfu usb-serial -pkg $(TARGET).zip -p $$USB; \
に書き換える


というわけで、書き込みOK!

追って、キーマップを作っていきましょう~

ちぎっては投げ、ちぎっては投げ、試行錯誤を繰り返して、楽しかったり上手く行ったところを書いていたりします。 貴重なサポートを頂けますと、なおさら色んなことを試して書きます!