Armadilloフォーラム

BLE5:Extended Advertising受信について

jobata

2021年3月25日 14時26分

お世話になっております。小幡と申します。

Extended Advertising受信機能を検討しており、マニュアルでExtended Advertising受信をご確認されている様でしたので
「ADV_EXT_IND」と「AUX_ADV_IND」の具体的な動作確認手順を教えて頂きたいです。
(たとえば、BlueZのどのコマンドで確認したか?)

■想定構成
Armadillo-640 + BT/THオプションモジュール(WLAN対応)
https://armadillo.atmark-techno.com/option-products/OP-A600-BTTHMOD-01

■マニュアル記載内容
Armadillo-640 製品マニュアル (Debian GNU/Linux 10 対応)
https://armadillo.atmark-techno.com/files/downloads/armadillo-640/docum…

18.7. Armadillo-600 シリーズ BT/TH オプションモジュール
P.185

LE Coded PHY からのアドバタイジングには 、 LE Advertising
Extensions 機能を利用します。LE Advertising Extensions で追加され
た 8 種類の PDU Type のうち、執筆時点で動作確認済みのものは次の通
りです。
  • ADV_EXT_IND
  • AUX_ADV_IND
コメント

at_akihito.irie

2021年3月26日 11時29分

入江です。

> Extended Advertising受信機能を検討しており、マニュアルでExtended Advertising受信をご確認されている様でしたので
> 「ADV_EXT_IND」と「AUX_ADV_IND」の具体的な動作確認手順を教えて頂きたいです。
> (たとえば、BlueZのどのコマンドで確認したか?)

当方では、アドバタイズ送信用のArmadillo-640と受信用のArmadillo-640を用
意し、送信側では

[armadillo]# hciconfig hci0 ext_leadv

受信側では

[armadillo]# hcitool ext_lescan --passive

を実行して動作確認を行っております。

上記2つのコマンドはLE Coded PHYを用いてアドバタイズメントパケットの送
受信を行うコマンドですので、このコマンドを用いて送受信ができたことを以っ
て「ADV_EXT_IND」及び「AUX_ADV_IND」の動作確認としています。

入江様

ご回答ありがとうございます。
実機確認時、参考にさせていただきます。

実機がとどきましたのでArmadilloでExtended Advertising受信を確認しましたが、
「LE Extended Scan ...」の表示後、何もコンソールで表示が変わらず受信ができていないようです。
手順としては、「armadillo-640_product_manual_ja-1.17.0.pdf 18.7」にて環境構築、
Armadillo起動後、rootでログインし、以下のコマンド入力をしました。
手順やソフト環境に問題ありますでしょうか?

root@armadillo:~# hcitool ext_lescan --passive
LE Extended Scan ...

念ため、Advertising受信はどうかと確認したところ
以下の様に送信BLE機器のBDアドレスが表示できました。

root@armadillo:~# hcitool lescan --passive
LE Scan ...
XX:XX:XX:XX:XX:XX (unknown)
XX:XX:XX:XX:XX:XX (unknown)
XX:XX:XX:XX:XX:XX (unknown)

□やりたい事
某BLEデバイスが送信する「Extended Advertising(ADV_EXT_IND、AUX_ADV_IND)」を
「Armadillo-640 + BT/THオプションモジュール(WLAN対応)」で受信し、電文情報を取得したい。

□Extended Advertising受信動作確認時のソフト環境

Debian GNU/Linux 9 (stretch)!
 ・ブートローダー
   u-boot-a600-console-uart3-v2018.03-at8.imx ※書込み済み
 ・Linux カーネル
   Linux version 4.14-at29  ※出荷時のまま
 ・BT/TH オプションモジュール用 Device Tree Blob
   armadillo-640_con9_thread-v4.14-at32.dtb ※書込み済み
 ・Debian GNU/Linux ルートファイルシステム
   ※出荷時のまま
 
 ・bluezのバージョン
   5.50-1~bpo9+4
 ・firmware-at-btのバージョン
   2.1.0

at_akihito.irie

2021年5月6日 14時30分

入江です。

Extended Advertisingを送出しているデバイスが正しく動作していることを確
認できますでしょうか(Armadillo以外のBT5対応デバイスでの受信等)。

また、複数台Armadillo-640+BT/THオプションモジュールをお持ちでしたら、
Armadillo間で送受信のテストを行うことで、Armadillo側のハードウェア不良
であるかどうかの切り分けが可能です。

以上、よろしくお願いいたします。

>Extended Advertisingを送出しているデバイスが正しく動作していることを確
>認できますでしょうか(Armadillo以外のBT5対応デバイスでの受信等)。

某BLE送信デバイスの開発元からお借りたExtended Advertising受信デバイスでは、
Extended Advertising(ADV_EXT_IND、AUX_ADV_IND)の電文を取得できていますので
動作していると判断しています。

今回、Armadillo-640 製品マニュアルと以下の情報により、BlueZのコマンドを使用して確認しました。
ext_lescanサブコマンドをデバックをする方法やBlueZのコマンド以外でExtended Advertising受信を確認する手段等ございますでしょうか?
※受信はしているが、ext_lescanサブコマンドで想定しているデータ形式でない為、読み捨てているケースも0ではないと思っています。

https://armadillo.atmark-techno.com/news/20200717/software-update-a600
 BlueZ (5.50-1~bpo9+3)
  hcitoolコマンドにext_lescanサブコマンドを追加
  hciconfigコマンドにext_leadv/ext_noleadvサブコマンドを追加

>また、複数台Armadillo-640+BT/THオプションモジュールをお持ちでしたら、
>Armadillo間で送受信のテストを行うことで、Armadillo側のハードウェア不良
>であるかどうかの切り分けが可能です。

Armadillo-640+BT/THオプションモジュールが1台しか無いため、
Advertising受信を確認することでArmadillo側のハードウェア不良を確認したつもりです
(Advertising受信はできました)
Advertising受信だけでは、ハードウェア不良の確認として不足でしょうか?

お世話になっております。

重ねての質問で申し訳ございません。
大変申し訳ございませんが、「2021年5月6日 16時28分」の投稿よりもまずこちらを確認させてください。

質問①
 「2021年4月30日 18時31分」」投稿の「Extended Advertising受信動作確認時のソフト環境」は、
 問題ありませんでしょうか?

質問②
 「2021年4月30日 18時31分」」投稿の手順は、問題ありませんでしょうか?
 ※640起動後に「hcitool ext_lescan --passive」を入力するのみ
 
質問③
 ~~~~やりたいこと~~~~
 某BLEデバイスが送信する「Extended Advertising(ADV_EXT_IND、AUX_ADV_IND)」を
 「Armadillo-640 + BT/THオプションモジュール(WLAN対応)」で受信し、AUX_ADV_INDの電文情報を取得したい。
 ~~~~~~~~~~~~~~~~~~~~
 上記、やりたい事を実現するための手段をご教示ください。
 BT/THオプションモジュールのBTモジュール(EYSKBNZWB)は、USB接続で640と接続していると思います。
 そのため、BlueZ を使用せず、640からのUSB通信コマンド発行により、BTモジュール(EYSKBNZWB)を制御する方法もあるかと思います。
 アプリケーションノートなどございませんでしょうか?

at_akihito.irie

2021年5月7日 14時56分

入江です。

> 質問①
>  「2021年4月30日 18時31分」」投稿の「Extended Advertising受信動作確認時のソフト環境」は、
>  問題ありませんでしょうか?

問題ありません。

> 質問②
>  「2021年4月30日 18時31分」」投稿の手順は、問題ありませんでしょうか?
>  ※640起動後に「hcitool ext_lescan --passive」を入力するのみ

アドバタイズ送出側のデバイスが、passive scan可能なものであれば手順に問
題ありません。
ご使用の送出側のデバイスは常にアドバタイズPDUを出し続けているものでしょ
うか。ご確認ください。

> 質問③
>  ~~~~やりたいこと~~~~
>  某BLEデバイスが送信する「Extended Advertising(ADV_EXT_IND、AUX_ADV_IND)」を
>  「Armadillo-640 + BT/THオプションモジュール(WLAN対応)」で受信し、AUX_ADV_INDの電文情報を取得したい。
>  ~~~~~~~~~~~~~~~~~~~~
>  上記、やりたい事を実現するための手段をご教示ください。
>  BT/THオプションモジュールのBTモジュール(EYSKBNZWB)は、USB接続で640と接続していると思います。
>  そのため、BlueZ を使用せず、640からのUSB通信コマンド発行により、BTモジュール(EYSKBNZWB)を制御する方法もあるかと思います。
>  アプリケーションノートなどございませんでしょうか?

申し訳ございませんが、現時点でBTに関してご紹介できるアプリケーションノー
トはございません。

USB Host(Armadillo)からは、EYSKBNZWBはUSB HCIとして認識されます。
EYSKBNZWBで動作しているソフトウェアのソースはgithubで公開していますの
で、そちらをご参照ください。
https://github.com/atmark-techno/zephyr

> 質問①
ご回答ありがとうございました。
問題無しとの事で安心しました。

> 質問②
1秒間隔で「Extended Advertising(ADV_EXT_IND、AUX_ADV_IND)」を出しています。
※某BLE送信デバイスの開発元からお借りたExtended Advertising受信デバイスを同時起動にて受信確認済み

> 質問③
>USB Host(Armadillo)からは、EYSKBNZWBはUSB HCIとして認識されます。
ありがとうございます。

HCI(Host Controller Interface)との事で、以下のコマンドを実行してみましたが、「LE Extended Scan ...」の表示以降は、
hcidumpでもHCIのやり取りが無い状態です(「hcitool lescan」では、やり取りはありました)

root@armadillo:~# hcidump -R &
[1] 574
HCI sniffer - Bluetooth packet analyzer ver 5.50
device: hci0 snap_len: 1500 filter: 0xffffffff
root@armadillo:~# hcitool ext_lescan
< 01 41 20 08 00 00 04 01 10 00 10 00
> 04 0E 04 01 41 20 00
< 01 42 20 06 01 01 00 00 00 00
> 04 0E 04 01 42 20 00
LE Extended Scan ...

他に確認するべきこと や やりたい事「AUX_ADV_INDの電文情報を取得」の実現方法をご教示お願いできないでしょうか?

at_akihito.irie

2021年5月11日 11時01分

> > 質問②
> 1秒間隔で「Extended
> Advertising(ADV_EXT_IND、AUX_ADV_IND)」を出しています。
> ※某BLE送信デバイスの開発元からお借りたExtended
> Advertising受信デバイスを同時起動にて受信確認済み

上記、AUX_SCAN_REQ無しに常時Advertisingを出しているという理解で良いでしょうか。

> > 質問③
> >USB Host(Armadillo)からは、EYSKBNZWBはUSB
> HCIとして認識されます。
> ありがとうございます。
>
> HCI(Host Controller
> Interface)との事で、以下のコマンドを実行してみましたが、「LE
> Extended Scan ...」の表示以降は、
> hcidumpでもHCIのやり取りが無い状態です(「hcitool
> lescan」では、やり取りはありました)

全く受信できないということは、通信方式等に違いがあるのかもしれません。

BT/THオプションモジュールでLE Long Range機能を利用する場合、以下の制限があります。

- LE Coded PHYのみに対応しています
-- LE 1M PHYおよびLE 2M PHYに非対応です
- LE Coded PHYの符号化方式はS=8のみ対応しています
-- S=2は非対応です

某BLE送信デバイスの通信方式をご確認ください。

> > 質問②
> 上記、AUX_SCAN_REQ無しに常時Advertisingを出しているという理解で良いでしょうか。

確認しました。常時Advertisingです。

> > 質問③
> 全く受信できないということは、通信方式等に違いがあるのかもしれません。

確認しました。「LE 1M PHYでの送信」との事です。(これが原因の様です)
LE 1M PHYは非対応だと思いますが、「LE 1M PHY」を受信するための
対応案はございますでしょうか?(HCIコマンドで設定を変更するなど、、、)

at_akihito.irie

2021年5月12日 10時03分

> LE 1M PHYは非対応だと思いますが、「LE 1M PHY」を受信するための
> 対応案はございますでしょうか?(HCIコマンドで設定を変更するなど、、、)

BT/THオプションモジュールのファームウェアを変更する必要があります。ソー
スは先にもお送りしましたが、次の通りです。

https://github.com/atmark-techno/zephyr

こちらでは1M PHYを利用したExtended Advertising送受信を行った実績はあり
ませんが、Coded PHYを固定で使うようになっている箇所を1M PHYに置き変え
ることで動作するようになると思います。

「1M PHY」はBluetooth認証上、必須機能との情報もあるようです。
BT/THオプションモジュールのファームウェア変更は可能でしょうか?

at_akihito.irie

2021年5月13日 13時13分

> 「1M PHY」はBluetooth認証上、必須機能との情報もあるようです。

BT/THオプションモジュールは、Bluetoothの認証を取得していません。

LE Long Range機能を利用するBlueZのコマンドでLE 1M PHY/LE 2M PHYに非対
応であったり、LE Advertising Extensionsで追加されたPDU Typeの全ての動
作確認がなされていません。

詳しくは以下をご参照ください。

https://manual.atmark-techno.com/armadillo-640/armadillo-640_product_ma…

> BT/THオプションモジュールのファームウェア変更は可能でしょうか?

技術的には可能です。

> > BT/THオプションモジュールのファームウェア変更は可能でしょうか?
>
> 技術的には可能です。

上記、「1M PHY」対応をして頂けないでしょうか?
こちら、案件情報にてお伝えしておりますが、すでに受注、スタートしており、切羽詰まった状態となっています。
また、対応可能な場合、どの程度お時間を要しますでしょうか?