y.hara
2021年7月16日 12時36分
お世話になっております。
Armadillo X1標準のAEH-AR9462をBLEのセントラルとして動作させています。ここでペリフェラルとのBLEの接続時間を短縮
するためにConnection Intervalのデフォルト値を変更したいのですが可能でしょうか?
各種ブログ等から/sys/kernel/debug/bluetooth/conn_min_interval、conn_max_intervalを変更してみましたが、
Connection Iintervalの数値は変わりませんでした(BLEのSnifferで数値を確認しています)。
よろしくお願いいたします。
コメント
y.hara
アットマークテクノ 入江様
ご確認ありがとうございます。
> 入江です。
>
> 当方で以下の環境にてテストを行いましたが、Armadillo-X1で設定した
> Connection Intervalが正しく適用されているようでした。
>
> - Armadillo-X1(セントラル)
> - Armadillo-640+BT/THオプションモジュール(ペリフェラル)
> - nRF52840 dongle (BLE Sniffer)
> https://www.nordicsemi.com/Products/Development-hardware/nRF52840-Dongle
> https://www.nordicsemi.com/Products/Development-tools/nrf-sniffer-for-b…
>
> Connection Intervalを設定後、Armadillo-X1からArmadillo-640にConnectし、
> BLE SnifferにてConnection Intervalを調べました。
> 結果、設定したConnection Intervalのminとmaxの値の間に収まっていました。
>
> お客様の環境で具体的にどのような値に設定し、どのような手順で測定したか
> など詳細を頂けると、何かわかるかも知れません。
>
> 以上、よろしくお願いいたします。
>
★Connection Intervalを30ms程度にするために、minには24、maxには30を設定しました。
手順はArmadilloを起動後に/sys/kernel/debug/bluetooth/hci0/conn_min(max)_intervalを変更し
ペリフェラルと接続しています。SnifferはnRF52840ベースの太陽誘電モジュール(EBSKJN)を使用して
います。
Armadillo X1を起動後とIntervalを変更時のX1接続のコンソールの内容と、それぞれのBLE接続時の
Snifferで取得したCONNECT_INDのPDUの内容を添付いたします。
CONNECT_INDのConnection Intervalはどちらも67.5msで変化していないようにみえます。
変更できないことについて指摘を頂けると助かります。
ファイル | ファイルの説明 |
---|---|
X1_CONNECT_IND_20210720.txt | Snifferで取得したInterval変更前と変更後のBLE接続時のCONNECT INDとなります。 |
X1コンソール_20210720.txt | Armadillo接続のコンソールの内容でInterval変更前と変更後の画面です。 |
at_akihito.irie
y.hara
アットマークテクノ 入江様
お世話になっております。
前回添付させて頂いたデータはCONNECT_INDとSniffer上で表示されていますが、
PDU Type(b3b2b1b0)=0101なので、Armadillo-X1がConnect時にペリフェラルに対して
送信するCONNECT_REQに該当いたします。Snifferの表示内容をそのまま記載したため
混乱させてしまい失礼しました。
> 入江です。
>
> 1点確認なのですが、Armadillo-X1がConnect時にペリフェラルに対して送信す
> るCONNECT_REQ内のConnection Intervalも同様に変化しない状況でしょうか。
>
> ご確認よろしくお願いいたします。
>
at_akihito.irie
入江です。
> 前回添付させて頂いたデータはCONNECT_INDとSniffer上で表示されていますが、
> PDU Type(b3b2b1b0)=0101なので、Armadillo-X1がConnect時にペリフェラルに対して
> 送信するCONNECT_REQに該当いたします。Snifferの表示内容をそのまま記載したため
> 混乱させてしまい失礼しました。
承知しました。
つまり、Connect前にArmadillo-X1が要求するIntervalがもう設定した値になっ
ていないということですね。
またしても確認していただきたいのですが、Intervalの設定後に一度対向のデ
バイスとのペアリング情報を削除し、再度ペアリング・connectを行った上で
BLE SnifferにてIntervalの値を確認していただけますでしょうか。
// Connection Interval設定 [armadillo]# echo 24 > /sys/kernel/debug/bluetooth/hci0/conn_min_interval [armadillo]# cat /sys/kernel/debug/bluetooth/hci0/conn_min_interval 24 [armadillo]# echo 30 > /sys/kernel/debug/bluetooth/hci0/conn_max_interval [armadillo]# cat /sys/kernel/debug/bluetooth/hci0/conn_max_interval 30 // ペアリング情報を削除 [armadillo]# bluetoothctl [bluetooth]# paired-devices //ペアリング済みのデバイス一覧を表示 Device AA:AA:AA:AA:AA:AA target // 対向機(ペリフェラル)のBDアドレス [bluetooth]# remove AA:AA:AA:AA:AA:AA //指定したBDアドレスのデバイスを切断し、ペアリング情報を削除 : (省略) Device has been removed // 再度対象のデバイスを探す [bluetooth]# scan on [NEW] Device AA:AA:AA:AA:AA:AA target [bluetooth]# scan off [bluetooth]# pair AA:AA:AA:AA:AA:AA //ペアリング、connect
y.hara
アットマークテクノ 入江様
平素お世話になっております。
ご教授頂いた手順でConnection Intervalを変更したところ、connect時のInterval値が30(=37.5ms)に変更できました。
/sys/kernel/debug/bluetooth/・・・・の変更が反映されるのは、パラメータの設定後に登録したリモートデバイスのみと
いうことなのですね。
お忙しいところ、いろいろ助言をしていただきありがとうございました。
> 入江です。
>
> > 前回添付させて頂いたデータはCONNECT_INDとSniffer上で表示されていますが、
> > PDU Type(b3b2b1b0)=0101なので、Armadillo-X1がConnect時にペリフェラルに対して
> > 送信するCONNECT_REQに該当いたします。Snifferの表示内容をそのまま記載したため
> > 混乱させてしまい失礼しました。
>
> 承知しました。
> つまり、Connect前にArmadillo-X1が要求するIntervalがもう設定した値になっ
> ていないということですね。
>
> またしても確認していただきたいのですが、Intervalの設定後に一度対向のデ
> バイスとのペアリング情報を削除し、再度ペアリング・connectを行った上で
> BLE SnifferにてIntervalの値を確認していただけますでしょうか。
>
>
> // Connection Interval設定 > [armadillo]# echo 24 > /sys/kernel/debug/bluetooth/hci0/conn_min_interval > [armadillo]# cat /sys/kernel/debug/bluetooth/hci0/conn_min_interval > 24 > [armadillo]# echo 30 > /sys/kernel/debug/bluetooth/hci0/conn_max_interval > [armadillo]# cat /sys/kernel/debug/bluetooth/hci0/conn_max_interval > 30 > > // ペアリング情報を削除 > [armadillo]# bluetoothctl > [bluetooth]# paired-devices //ペアリング済みのデバイス一覧を表示 > Device AA:AA:AA:AA:AA:AA target // 対向機(ペリフェラル)のBDアドレス > [bluetooth]# remove AA:AA:AA:AA:AA:AA //指定したBDアドレスのデバイスを切断し、ペアリング情報を削除 > : (省略) > Device has been removed > > // 再度対象のデバイスを探す > [bluetooth]# scan on > [NEW] Device AA:AA:AA:AA:AA:AA target > [bluetooth]# scan off > [bluetooth]# pair AA:AA:AA:AA:AA:AA //ペアリング、connect >
>
at_akihito.irie
2021年7月20日 10時36分
入江です。
当方で以下の環境にてテストを行いましたが、Armadillo-X1で設定した
Connection Intervalが正しく適用されているようでした。
- Armadillo-X1(セントラル)
- Armadillo-640+BT/THオプションモジュール(ペリフェラル)
- nRF52840 dongle (BLE Sniffer)
https://www.nordicsemi.com/Products/Development-hardware/nRF52840-Dongle
https://www.nordicsemi.com/Products/Development-tools/nrf-sniffer-for-b…
Connection Intervalを設定後、Armadillo-X1からArmadillo-640にConnectし、
BLE SnifferにてConnection Intervalを調べました。
結果、設定したConnection Intervalのminとmaxの値の間に収まっていました。
お客様の環境で具体的にどのような値に設定し、どのような手順で測定したか
など詳細を頂けると、何かわかるかも知れません。
以上、よろしくお願いいたします。