Open3

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

okuokuokuoku

簡単には:

  • Windows上でBluetoothデバイスを使いたい → 何でも良い。Windows10以降はMS以外のBluetoothスタックはほぼ使えなくなったので、どれを選んでも差が無い。箱なりWeb上のカタログ見て選べばOK。 Amazonは技適が無い製品を普通に売っている ので、合法的に使用したければ日本のメーカーかTP-Linkを選ぶ。
    • まず、自分のPCが最初からBluetoothに対応していないか確認すること。Windowsは2つ以上のBluetoothホストを接続すると正常に動作しなくなる。
  • マイコンとかに接続してBluetoothホストとして使いたい → Bluetooth 4.0 の製品を選ぶ。Bluetooth 5の製品はRealtek製であることが多く、ファームウェアをロードしないと電波が出ない。

以下は今でも入手できてCSR(現 Qualcomm)のチップなのである程度おすすめ。

https://www.buffalo.jp/product/detail/bsbt4d200bk.html

https://www.elecom.co.jp/products/LBT-UAN05C2.html

ただし、これらは Bluetooth LE 4.0なので、最近のデバイスの機能をまったく活用できない 。2M phyやLongRangeのような機能にはBluetooth 5が必要になる。よって、Windows上でしか使わないなら素直にある程度新しい製品を買っておいた方が良い。

okuokuokuoku

使用チップ

いろいろ買ったけど、基本的には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世代を検出してやる必要がある。

https://zenn.dev/okuoku/scraps/5dacca78c4bfba

okuokuokuoku

デバイスデスクリプタ

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