yfuku blog

自作キーボードブログと化していますが、ソフトウェアエンジニアリングのことも書いていきたい。

Claw44の無線化対応ログ(BLE Micro Pro)

自作キーボードで使用するProMicroをBLE Micro ProというBluetooh化をサポートするキットに乗せかえると無線化を実現できます。
Claw44でBLE Micro Proを使えるようにしたログになります。
(以下、BMPと略すことがあります)

よく理解できていない部分もあるので、間違いや誤解を招くような表記があれば教えていただけると助かります。

参考

ファームウェア書込み環境の構築

BLE Micro ProでErgoDash miniをワイヤレス化する - LOGを参考にMacに構築しました。

実装

必要な部品

動作確認

  • ble_micro_testで書き込みテストしてみる
make ble_micro_test:nrfutil
〜〜〜〜〜〜〜〜〜〜〜〜
Detecting USB port, put your controller into dfu-mode now..................
  • .......が出てきたら、GNDとBOOTをピンセットなどでショートさせながら
    • f:id:yfuku:20190626115818j:plain:w300
  • USBをつなぐ
    • f:id:yfuku:20190626115837j:plain:w300
  • (自分はもげ防止にマグネットケーブルを使用しています)
  • こんな感じで表示されればOK
Detected controller on USB port at /dev/tty.usbmodemD8301B29CF3D1
Programming Started
  [####################################]  100%
Device programmed.

スプリングピンヘッダ(コンスルー)

  • 動作確認できたので、まずはスプリングピンヘッダをつけます。
  • BMP側もスプリングヘッダピン対応されているので、はんだ付けは不要らしいです。
  • 基本的にProMicroと扱いは同じなので、取り付ける向きはhelixのビルドガイド を参考にさせていただきました。
  • ProMicroと違い、電源供給用のピン(BAT,GND)がありますが、これは電池基板に繋げるのでスプリングピンヘッダは刺さないでください。(BMP対応している基板では13ピンのスプリングピンヘッダを使って刺すこともありますがClaw44では刺しません)

f:id:yfuku:20190626123614j:plain:w300

電池基板

部品の取り付け

  • 全体としてはこんな感じです
    • f:id:yfuku:20190626124136j:plain:w500
  • ダイオード
    • 片側に盛りハンダをする
      • f:id:yfuku:20190626124606j:plain:w300
    • ダイオードは向きがあるので注意。白線のある方を白丸側にする。(見にくい場合はスマホのライトとかで光を当てるとわかりやすいです。)
      • f:id:yfuku:20190626125611j:plain:w300
    • 盛りハンダを利用してダイオードをはんだづけ
      • f:id:yfuku:20190626231732j:plain:w300
    • もう片方もはんだ付け。浮かないように両側をはんだして密着させる。
      • f:id:yfuku:20190626231900j:plain:w300
  • スイッチ
    • 穴があって、ピタッとハマるのでわかりやすいと思います。各パッドをはんだ付け。
      • f:id:yfuku:20190626125847j:plain:w300
  • コンデンサ
    • コンデンサは向きがありません
    • 盛りはんだをして
      • f:id:yfuku:20190626130051j:plain:w300
    • ダイオードと同様にはんだ付けします
      • f:id:yfuku:20190626130208j:plain:w300
  • 電池ホルダ
    • 乗っけて
      • f:id:yfuku:20190626130303j:plain:w300
    • 裏側の各パッドをはんだ付け
      • f:id:yfuku:20190626130442j:plain:w300
  • 絶縁
    • BMPと接触する部分はこのままだとショートするので、ビニールテープか何かで絶縁します。カプトンテープなど薄いものだと揺れた時にうるさいので、少し厚めでショックを吸収してくれるものが良いと思います。
      • f:id:yfuku:20190626130653j:plain:w300

BMPと合体

  • 今回はどのご家庭にもあるProMicroに付属しているピンヘッダを使ってみました。(もう少し低いものの方がジャストフィットするので、可能であれば秋月電子などで買うと良いと思います)
  • ピンヘッダを切り出す
    • f:id:yfuku:20190626131356j:plain:w300
  • BMPに取り付ける
    • f:id:yfuku:20190626134705j:plain:w300
  • 電池基板を乗せる
    • f:id:yfuku:20190626134711j:plain:w300
  • はんだ付けする
    • f:id:yfuku:20190626134716j:plain:w300
  • 反対側もはんだ付け
    • f:id:yfuku:20190626134722j:plain:w300
  • 不要な足を切る
    • f:id:yfuku:20190626134735j:plain:w300
  • 電池の通り道は邪魔にならないように深く切る
    • f:id:yfuku:20190626134729j:plain:w300
  • 電池を入れる
    • f:id:yfuku:20190626134742j:plain:w300
  • ピンヘッダ側が浮いているので、やはりもう少し短い方が良さそうですね
    • f:id:yfuku:20190626134747j:plain:w300
  • Claw44に取り付ける
    • f:id:yfuku:20190626144207j:plain:w300

※他に良いやり方などあったら教えてください〜

ファームウェアの書込み

  • Claw44用のファームを書き込んでいきます。ProMicroと違い左右でコマンドが違います。
  • BMPのスイッチを切っておきます。白丸から離すように動かす。(ONだとエラーになるっぽい?)
    • f:id:yfuku:20190626232641j:plain:w400
  • コマンドを実行
# Master側(左手)
make claw44_ble/master:default:nrfutil
# Slave側(右手)
make claw44_ble/slave:default:nrfutil

Detecting USB port, put your controller into dfu-mode now............
  • ......が出てきたら、今度はリセットボタンが使えるのでリセットボタンを押しながらUSB接続をする。 f:id:yfuku:20190626145531j:plain
  • こんな感じに表示されればOK
Detected controller on USB port at /dev/tty.usbmodemF442CED82A821
Programming Started
  [####################################]  100%
Device programmed.

ペアリング

  • 左右間のペアリング
    • まずは左右のBMP同士をペアリングします。左右のBMPのスイッチを入れると自動的にペアリングされます
  • PCとのペアリング
    • keymapでアサインしたAD_WO_Lを押すとペアリングモードに入ります。
    • Claw44のdefaultの場合、下記のようにレイヤーを切り替えて左上のキーを押します。
      • f:id:yfuku:20190626152608p:plain:w300
  • Bluetoothの設定にClaw44が出てくるので接続します
    • f:id:yfuku:20190626154120p:plain:w300

BMPの調整

通信間隔などを調整することができるので、これによって遅延を最小限になるように調整していきます。
良い感じの設定が見つかったらまた追記します。

ProMicroプレート

  • ProMicroプレートのスペーサーを11〜12mmくらいの物を用意すれば今までのようにプレートをつけることができます。

f:id:yfuku:20190626155341j:plain