ブログ

Armadillo-IoT A6E Cat.M1モデル:Bluetooth USBアダプタを動作させてみた

at_takuma.fukuda
2022年11月11日 9時01分

Armadillo-IoT A6EにはWLAN+BTコンボモジュールが搭載されたモデルがあり、
BLE通信機能を持った機器などと通信させることが出来ます。

ただし、Cat.M1モデルにはWLAN+BTコンボモジュールは搭載されておりません。
Cat.M1モデルでBLEセンサ等とのと通信機能を追加するような場合は、
BT通信モジュールを搭載した基板をピンヘッダに接続して機能拡張するか、
USB接続可能なBluetoothアダプタなどを使用することでBLE通信に対応可能となります。
下記のTP-link製Bluetooth USBアダプタをArmadillo-IoT A6Eに接続してBLE機器との通信を確認してみました。
UB400 Bluetooth 4.0 ナノUSBアダプター

確認手順

USBアダプタを接続し、正常に認識されるとと以下のように表示される

[armadillo ~]# [ 1836.773812] usb 1-1: new full-speed USB device number 3 using ci_hdrc
[ 1837.023828] usb 1-1: device no response, device descriptor read/64, error -71
[ 1837.508019] Bluetooth: hci0: unexpected event for opcode 0x0000

BLE通信を行うためのコンテナを作成し、通信に必要なパッケージをインストールする

[armadillo ~]# podman run -it --net=host --cap-add=NET_ADMIN docker.io/alpine /bin/sh

bluez dbusをインストール
[container ~]# apk update
[container ~]# apk add bluez dbus

必要なサービスを有効化する

dbusを有効化
[container ~]# /usr/bin/dbus-daemon --system

bluetoothを有効化
[container ~]# /usr/lib/bluetooth/bluetoothd &

動作を確認する。scan onを実行し、周囲のBLE機器のアドバタイジングパケットが表示されれば正常に動作している

blutoothctl実行
[container ~]# bluetoothctl
[bluetoothctl ~]# scan on

*参考情報
bluetoothctlではなくbluez-btmgmtを使用した場合も同様の事が可能です。

[container ~]# apk add bluez-btmgmt
[container ~]# btmgmt
[mgmt]# info
Index list with 1 item
hci0:   Primary controller
        addr 00:1A:7D:DA:71:15 version 6 manufacturer 10 class 0x000000
        supported settings: powered connectable fast-connectable discoverable bondable link-security ssp br/edr hs le advertising secure-conn debug-keys privacy static-addr phy-configuration
        current settings: br/edr
        name TP-Link Bluetooth Adapter
        short name

*hci0選択→電源ON→LE on→周辺デバイス検索
[mgmt]# select hci0
[hci0]# power on
[hci0]# le on
[hci0]# find