Open3
Bluetooth LEに対応したUSBアダプタの調査

簡単には:
- Windows上でBluetoothデバイスを使いたい → 何でも良い。Windows10以降はMS以外のBluetoothスタックはほぼ使えなくなったので、どれを選んでも差が無い。箱なりWeb上のカタログ見て選べばOK。 Amazonは技適が無い製品を普通に売っている ので、合法的に使用したければ日本のメーカーかTP-Linkを選ぶ。
- まず、自分のPCが最初からBluetoothに対応していないか確認すること。Windowsは2つ以上のBluetoothホストを接続すると正常に動作しなくなる。
- マイコンとかに接続してBluetoothホストとして使いたい → Bluetooth 4.0 の製品を選ぶ。Bluetooth 5の製品はRealtek製であることが多く、ファームウェアをロードしないと電波が出ない。
以下は今でも入手できてCSR(現 Qualcomm)のチップなのである程度おすすめ。
ただし、これらは Bluetooth LE 4.0なので、最近のデバイスの機能をまったく活用できない 。2M phyやLongRangeのような機能にはBluetooth 5が必要になる。よって、Windows上でしか使わないなら素直にある程度新しい製品を買っておいた方が良い。

使用チップ
いろいろ買ったけど、基本的にはCSRとRealtekの2択で、Bluetooth 4.0であればCSR、Bluetooth 5であればRealtekという分れ方になった。 ...手元にはBroadcomとかRealtekのBluetooth 2.x/3.xデバイスもあるけど割愛。もうLEじゃないBluetoothとかほぼ使わないし。。
製品 | VID | PID | USB名称 | 備考 |
---|---|---|---|---|
バッファロー BSBT5D200 | 0x0411 | 0x0374 | Realtek Bluetooth Radio | たぶんRTL8761Bだがbtstackで動作する組合せを発見できず |
バッファロー BSHSBD08 | 0x0a12 | 0x0001 | CSR8510 Nanosira M2272 | btstackで動作確認 |
elecom LBT-PCSCU01D | 0x0a12 | 0x0001 | CSR8510 A10 | btstackで動作確認 |
0x0a12 0x0001 の組合せは、CSRのUSBデバイス全てで Bluetooth 1.xの時代から 共通になっていて、別途デバイスのバージョンを確認したり、LMP version等からデバイスが対応しているBluetooth世代を検出してやる必要がある。

デバイスデスクリプタ
BSHSBD04
これはLEに対応していない。
Bus 001 Device 064: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 224 Wireless
bDeviceSubClass 1 Radio Frequency
bDeviceProtocol 1 Bluetooth
bMaxPacketSize0 64
idVendor 0x0a12 Cambridge Silicon Radio, Ltd
idProduct 0x0001 Bluetooth Dongle (HCI mode)
bcdDevice 52.76
iManufacturer 0
iProduct 0
iSerial 0
bNumConfigurations 1
BSHSBD08
Bus 001 Device 010: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 224 Wireless
bDeviceSubClass 1 Radio Frequency
bDeviceProtocol 1 Bluetooth
bMaxPacketSize0 64
idVendor 0x0a12 Cambridge Silicon Radio, Ltd
idProduct 0x0001 Bluetooth Dongle (HCI mode)
bcdDevice 75.58
iManufacturer 0
iProduct 2 CSR8510 Nanosira M2272
iSerial 0
bNumConfigurations 1
LBT-PCSCU01D
Bus 001 Device 065: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 224 Wireless
bDeviceSubClass 1 Radio Frequency
bDeviceProtocol 1 Bluetooth
bMaxPacketSize0 64
idVendor 0x0a12 Cambridge Silicon Radio, Ltd
idProduct 0x0001 Bluetooth Dongle (HCI mode)
bcdDevice 88.91
iManufacturer 0
iProduct 2 CSR8510 A10
iSerial 0
bNumConfigurations 1
BSBT5D200
シリアルは伏せた。CSRのデバイスと異なり、VID:PIDはOEMのものを使用させているようだ。
Bus 001 Device 017: ID 0411:0374 BUFFALO INC. (formerly MelCo., Inc.)
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 224 Wireless
bDeviceSubClass 1 Radio Frequency
bDeviceProtocol 1 Bluetooth
bMaxPacketSize0 64
idVendor 0x0411 BUFFALO INC. (formerly MelCo., Inc.)
idProduct 0x0374
bcdDevice 2.00
iManufacturer 1 Realtek
iProduct 2 Bluetooth Radio
iSerial 3 (※ ここに本物のシリアルが入る)
bNumConfigurations 1