ばぐとらぶごる

開発者もすなるぶろぐといふものを、エンバグ野郎もしてみむとてするなり。

Bluetooth接続のデバイスが勝手に切断される事象の解消方法

最近マウスをMicrosoft Bluetooth Mobile Mouse 3600に変えました。
Bluetooth 4.x(BLE)の超低消費電力の恩恵か、電池の持ちも割と良く、またノートPCのUSBポートを占有しなくなったのでゴキゲンです。

ただ不満が一つ。1時間ほど無操作で放置するとマウスが動かなくなる問題が。

おおかたUSBの省電力機能のせいだろうと思い、下記の手順を試し解決しました。

解消方法1

問題は解決したいが、省電力機能を全てOFFにはしたくない!というエコな方やモバイルな方向け。めんどくさい方。

バイスマネージャを開き、Bluetoothドングルを探し、選択


メーカー名やチップの型番らしきものが書いてあるものが対象です。
今回設定したのはBroadcom製ですが、別マシンでは「インテル ワイヤレス Bluetooth」などとなっていました。
Microsoft Bluetooth Enumeratorとか、汎用属性サービスとか、またBluetooth経由で接続済みのデバイスも入っていますが、それらは無視しましょう。

選択した状態のまま、表示をデバイス(接続別)に切り替える


問題のデバイスがどのようにつながっているかを調べます。
Bluetoothの場合はたとえ内蔵であってもUSB経由のパターンが多いようです。*1

"USB Host"とか"USBホスト"とか"UART Controller"とか書いてあるデバイスまでツリーを遡り、それぞれ全部についてプロパティを開く


Bluetoothドングル自身と、根元のUSBホスト/UARTコントローラに至るまでにつながるまでのデバイス全部について、右クリックしてプロパティを開いてください。
どこで止めればいいか分からないなら、とにかく木のように分岐して表示されるデバイス根元に至るまで全部を対象とし、そのうち「電源の管理」があるもの全てについて設定を繰り返してください。
今回はUSB Hubと本体、合計5つが対象でした。めんどくさい…

「電源の管理」タブの「電力の節約のために〜」をOFFする


この作業を上の手順で見つけ出したデバイス全てで繰り返してください。

Q.なんで根元まで全部繰り返さないと駄目なの?

A.Bluetoothバイスの省電力設定を切っただけだと問題は再現しました。根元までたぐらないといけないんじゃないかなと思い上記の手順で解決しました。
根元まで手繰って設定していない人のもとで、勝手に切断される事象が再現した報告もありますので、全部やらないとうまく解消しないのではないかと思います。

Q.ウチのはUSB経由じゃないんだけど?

A.Serial Bus UART Controllerとかいうものの下にぶらさがっていることもあるようです。
やることは同じなので、根元の親デバイスっぽい何かに至るまで全部この手順を繰り返してください。

解消方法2

とりあえず簡単な手順で解決したい方向け。かんたんな方。

といっても、書くのが面倒なので下記からぐぐってください。

Google検索/USBのセレクティブサスペンドを無効にする

一言で書くと「USBのセレクティブサスペンド機能を全停止」です。
全域にわたって省電力機能を止めてしまうのはなんだか微妙な気もしますが、確実ではあります。

応用

今回Bluetoothマウスの問題解消がメインでしたが、他のBluetooth接続デバイスや(キーボードとかスピーカーとか)、他にもUSB接続のデバイスすべてで(もしかしたら他のデバイスも)同様の手順が使えると思います。

マウスやキーボードがつながっているなら、省電力機能を自動でOFFにしてくれれば良い気もしますが、このへんは実装の難しさ等あるでしょうね。仕方ない。

*1:USBじゃない場合もありますがやることはおおむね同じです