2014年5月3日土曜日

プロファイルがHIDの時RN-42とOSX間で通信が途絶える件について

RN-42レポート

秋月で売っている安価なBluetoothモジュールについて記す。

もともとこのモジュールをなぜ手にしたかというと
HHKBを無線化したかったからである。
http://addsict.hatenablog.com/entry/2013/07/27/164647

HHKBは無線版が存在しない。
しかも最近公式から下記のような商品が出た。
http://www.pfu.fujitsu.com/direct/hhkb/detail_enebrick.html

違う…違う…
俺(ら)がほしいのはそれじゃない…。

というわけでGWだし、参考サイト見る限り2日で行けそうと思ったのでやってみたわけだ。

しかし、ここで使ってるBluetoothモジュールRN-42に問題が発生しどうも動かない。
というわけで、悪戦苦闘した結果を伝えたいと思う。

HHKBの無線化は参考サイト通りやるだけで動くようになる(RN-42は秋月の評価版を使用)
http://akizukidenshi.com/catalog/g/gK-07378/
とても素晴らしい。
ただし参考サイトで使っているモジュールはRN-42HIDというもので秋月では手に入らないものになっている。
それとArduinoからRN-42への入力は分圧しているが、
私の環境では分圧しちゃうと信号が届かないので分圧はしなかった。
データシート見る限り分圧しないとモジュールが壊れる気はする。
分圧版
http://secretbase-of-forest.blogspot.jp/2014/04/rn42bluetootharduinoandroid.html
非分圧版
http://benkyo-chu.blogspot.jp/2014/04/rn-42-bluetooth-bluetootharduinoled.html

私の環境で秋月のRN-42評価版を使用した場合に問題が起きるのは、
通信相手としてMBAを選択した場合だけであった。

Windows7とiPhone5では問題が起きず通信が途切れることはないのだが、
MBAとの通信でのみキーボードとの通信が5〜6秒ごとに途絶え、その間のタイプが無視されてしまっていた。

調べてみるとArduinoとHHKBには問題がなく、
RN-42とMBA(OSX 10.9.2)間でのやりとりに問題があるようであった。

このことはRN-42に電源供給のみで他の部品を接続していない状況で
MBAとペアリングを行い、挙動を確認することで判明した。

この組み合わせでも一定間隔でRN-42のLEDが消え、かつBluetoothの接続がMBA側で途切れていることが確認でき、通信→切断→再接続…を繰り返していた。
これはWindows7やiPhone5間ではない挙動であった。
柱上変圧器さんと同じ症状である。[RN-42-EK HID版だが]
(下記コメント欄)
https://www.youtube.com/watch?v=I2gzqrchnlQ


参考サイトの作者に問い合わせを行って見たところ、
やはりRN-42HID版を手に入れてやるのが良いとの助言。
また、OSX 10.9 Marvericksで、途切れる症状は出たことがないとのこと。
参考サイトで同じ症状が出ているもなかさん(下記コメント欄)とも連絡をとってみたところ、
http://addsict.hatenablog.com/entry/2013/08/18/170204
GalaxyNexus(Android)では症状が出ずに、
MBP(OSX)で同じ症状が出ていたとのこと。

RN-42評価版とOSXの組み合わせ(プロファイルはHID)で症状が出るみたい。
取り敢えずもうネット情報でも太刀打ち出来なくなったのでサポートに聞いてみることにする。

誰か何か知ってたら教えて。

参考までにRN-42の設定は下記である。
Mode = Pair
Profile= HID
HidFlags=200
Authen=1
PinCode=1234

3 件のコメント:

  1. はじめまして。ちょうど同じ所でつまずいている者です。その後経過がありましたら教えていただけないでしょうか。こちらの環境・症状は以下の通りです。

    MacBook Pro Retina 15inch OSX 10.11.4
    RN-42 (秋月にて購入: http://akizukidenshi.com/catalog/g/gM-08690/)
    ペアリングは出来ますが、接続すると一瞬繋がり、数秒後に途切れるという症状です。
    Mac側のログを見ると、

    Device Connected with address: xx-xx-xx-xx-xx-xx and classOfDevice 0x000540 and connectionHandle 0x000d
    HID Device connected isIncoming = 0, deviceClassMinor = 16, isPaired = 1, isConfigured = 1
    Setting BTCoex Config: enable_2G:1, profile_2g:0, enable_5G:1, profile_5G:0
    ignored is_io_service_close(0x1000004ad,IOHIDParamUserClient)
    :
    [IOBluetoothHIDDriver][waitForHandshake][xx-xx-xx-xx-xx-xx] Timeout waiting for handshake
    [IOBluetoothHIDDriver][interruptChannelOpeningWL] final device setup failed
    [IOBluetoothHIDDriver][interruptChannelOpeningWL] Forcing closeDownServices

    と出ています。

    返信削除
    返信
    1. >その後経過がありましたら教えていただけないでしょうか。
      最終的に問題が解決できなかったので諦めてしまいました…

      サポートからの回答では同現象が確認できなかったとのこと。
      以下原文
      I tried reproducing what you are seeing, but was unsuccessful. I only had access to a MAC with OSX 10.8.5, but it was able to successfully connect and stay connected. The only settings I used to configure the module were:
      $$$
      sf,1
      r,1

      $$$
      s~,6
      sm,6
      r,1

      Looking at our settings, the only difference looks to be the authentication, which I don't expect to make a difference. Please try using this configuration and confirm you are still seeing the disconnect issue.

      削除
    2. そうなんですね... ヒントを元にもう少し試行錯誤してみます。
      ご返信ありがとうございました!

      削除