chakokuのブログ(rev4)

テック・コミック・ごくまれにチャリ

M5 Stick CがBLE Advertisingしている時のパケット

MicroPythonを使ってM5 Stick Cを BLE Keyboard風にしたてようとしたものの、成功せずに原因調査中。Arduino版のNimBLEだと動作したので、パケットに違いがあるのかを見るため、BLE Snifferでキャプチャしてみた。その時の結果は以下
(もう面倒なので、固有アドレスとか消さずに掲示します)

iPADから使う場合も、M5からペアリング要求して、iPAD画面でペアリングを許可する処理をしており、キーボードとして使うには、ペアリングが必須なのかもしれない。詳細わかっていませんが。

ESP32版のMicroPythonではParingメソッドが実装されていない。NimBLE版で実装しているSTM32とかなら実装されているらしい。

iOS/iPadにしても最低ペアリングしてくれないとキーボード入力なんて危なくて受け付けられないと設計されていても納得できる。多分ペアリングがないのが入力できない原因だろう。。と安直に決めつけてみる。 STM32でBLEが動かせるボードがあれば切り分けもできそうですが。。

■追記
CircuitPythonのBLEだったら動くのでは?と思い、マイコンボード「Adafruit Feather nRF52840 Express」を発注した。iOSとも接続できまーすと宣伝しているので。。MicroPython版のBLEではずっと手こずっていて、目的と手段が入れ替わっている。目の前の事にこだわり、目的地がつど変わる・・・。

■追記
NimBLE Keyboard Sample で、SecurityAuth(BLE_SM_PAIR_AUTHREQ_BOND)を
実行しているとの説明
https://github.com/palette-system/az-macro/wiki/NimBLE-Keyboard-Sample


https://github.com/h2zero/NimBLE-Arduino
https://github.com/wakwak-koba/ESP32-NimBLE-Keyboard/blob/master/BleKeyboard.cpp