SwitchBotAPI-BLEやBluetooth機器連携をしたくて購入。
主に自宅IoTシステムの構築用として使います。
送信出力の高いClass 1を選択しました。
悩んだ末に自作NASへ導入し、仮想環境でBluetoothを利用することにしました。
所詮イメージ画像
外箱
内容物
外箱のようにUSBの平たい部分からアンテナがL字に曲がるわけではなく。
上記の状態でL字に曲がる。
そのため、設置場所によってはアンテナを曲げることが出来ないケースがある。
聞いたことないチップ、カニではない模様
※Windowsでは使用しません。Linuxのみです。
ひとまずデバイスの調査から。
■USBデバイス情報
# lsusb -v
Bus 009 Device 002: ID 33fa:0010 USB2.0-BT
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 224 Wireless
bDeviceSubClass 1 Radio Frequency
bDeviceProtocol 1 Bluetooth
bMaxPacketSize0 64
idVendor 0x33fa
idProduct 0x0010
bcdDevice 88.91
iManufacturer 0
iProduct 2 USB2.0-BT
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x00b1
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0000 1x 0 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0000 1x 0 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0009 1x 9 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0009 1x 9 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 2
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0011 1x 17 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0011 1x 17 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 3
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0019 1x 25 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0019 1x 25 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 4
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0021 1x 33 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0021 1x 33 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 5
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0031 1x 49 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0031 1x 49 bytes
bInterval 1
Device Status: 0x0000
(Bus Powered)
■現在のBluetooth状態
# hciconfig
hci0: Type: Primary Bus: USB
BD Address: xx:xx:xx:xx:xx:xx ACL MTU: 0:0 SCO MTU: 0:0
DOWN
RX bytes:165 acl:0 sco:0 events:9 errors:0
TX bytes:273 acl:0 sco:0 commands:10 errors:0
DOWNが気になった。
デバイスを起動しようと思って下記コマンドを実行しても、駄目だった。
# hciconfig hci0 up
Can't init device hci0: Connection timed out (110)
# rfkill list
0: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
# hciconfig hci0 down
# rmmod btusb
# modprobe btusb
# hciconfig hci0 up
Can't init device hci0: Connection timed out (110)
ここまでの参考情報:
https://arimasou16.com/blog/2021/04/09/00384/
販売店の情報からチップ名を入手。
チップ名:BARROT BR8654A02
もしかしてドライバーというかLinuxカーネルが対応出来ていない?
# dmesg | grep hci0
[ 1212.607336] Bluetooth: hci0: Opcode 0x1005 failed: -110
[ 1212.607338] Bluetooth: hci0: command 0x1005 tx timeout
[ 1213.554142] debugfs: File 'dut_mode' in directory 'hci0' already present!
[ 1215.647313] Bluetooth: hci0: command 0x1005 tx timeout
[ 1215.647316] Bluetooth: hci0: Opcode 0x1005 failed: -110
下記情報から「bluetooth-next」を使えばいけるかも?な情報がありました。でもカーネルの再コンパイルは敷居が高いなぁ。
https://gist.github.com/nevack/6b36b82d715dc025163d9e9124840a07?permalink_comment_id=4032039
改めて、最新デバイスとか知らないチップはLinuxで使いにくいことがよくわかりました。
★2024-03-10追記
カーネルビルドに時間かかったが「bluetooth-next」を導入した。
結果はNG。
「bluetooth-next」のBARROT チップはBluetooth 4.0 のものしか対応してなさそうでした。
https://github.com/bluez/bluetooth-next/blob/master/drivers/bluetooth/btusb.c
カニなどの有名チップを指定して探さないとな・・・。
-
購入金額
1,426円
-
購入日
2024年02月26日
-
購入場所
AliExpress
ZIGSOWにログインするとコメントやこのアイテムを持っているユーザー全員に質問できます。