Armadilloフォーラム

突然bleのデータをスキャンできなくなる

inokuchi

2023年6月8日 10時05分

お世話になっております。
BLE Beaconのセンサーのデータをpythonのライブラリのbluepyを使い取得するシステムを製作しております。
このシステムを稼働させているとある日突然bluepyのスキャンできなくなり、データの取得が出来なくなりました。
(プログラム内でスキャンしたデータをそのままリストに入れるようにしていたが、そのリストが空になっていた。)
データが取得できなくなった時にbluetooth.serviceが動いていることは確認しました。
この状態で手を加えることなく稼働させていてもずっとデータが取れず、再起動をしたら下記エラーが発生しました(hci0のdown,up後に再起動)。
(エラー内容)Failed to execute management command 'le on' (code: 17, error: Invalid Index)
エラー発生後にもう一度再起動をするとエラーがなくなりデータが取れるようになっていました。

スキャンが出来なくなった時に下記コマンドを実行すると再度データが取れるようになったことも確認しております。
sudo hciconfig hci0 down
sudo hciconfig hci0 up

スキャンが出来なくなり、再起動したらエラーが出る原因についてご教示頂けますか。
syslogを添付いたしますが、他に必要な情報があればご回答頂きますと幸いです。
よろしくお願いいたします。

ファイル ファイルの説明
syslog.1.txt scan出来なくなった時のログ(21:00頃発生)
syslog.txt 再起動してエラーが出た時のログ
syslog.txt エラー発生後に再起動してデータが取れるようになった時のログ
コメント

at_syunya.ohshio

2023年6月20日 18時42分

大塩です。

返答が遅くなり申し訳ありません。

> BLE Beaconのセンサーのデータをpythonのライブラリのbluepyを使い取得するシステムを製作しております。
> このシステムを稼働させているとある日突然bluepyのスキャンできなくなり、データの取得が出来なくなりました。
> (プログラム内でスキャンしたデータをそのままリストに入れるようにしていたが、そのリストが空になっていた。)
> データが取得できなくなった時にbluetooth.serviceが動いていることは確認しました。

この現象につきまして、最初の稼働開始から長時間経過した際に発生したものでしょうか。
また、現象発生時にbluetooth.service をrestart させた場合、現象は回復するでしょうか。

以上です。

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

> この現象につきまして、最初の稼働開始から長時間経過した際に発生したものでしょうか。
> また、現象発生時にbluetooth.service をrestart させた場合、現象は回復するでしょうか。

最初の稼働開始から2,3週間後に発生しました。
そのあとは、1日後だったり1,2週間後だったりまばらに発生しています。
現象発生時にbluetooth.serviceをrestartさせたことがないのでわかりません。
同じ現象が再現できたら確認してみます。
この現象発生時にarmadilloに組み込まれているbluetoorhデバイスをhciconfigコマンドを使い、
down→upした時には、現象が回復することは確認済みです。

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

at_syunya.ohshio

2023年6月21日 11時09分

大塩です。

> 最初の稼働開始から2,3週間後に発生しました。
> そのあとは、1日後だったり1,2週間後だったりまばらに発生しています。
> 現象発生時にbluetooth.serviceをrestartさせたことがないのでわかりません。
> 同じ現象が再現できたら確認してみます。
> この現象発生時にarmadilloに組み込まれているbluetoorhデバイスをhciconfigコマンドを使い、
> down→upした時には、現象が回復することは確認済みです。

この現象につきまして、デバイスの再起動で回復しているため作成されたpythonアプリケーションが原因ではないように思えますが、まだ判断が付かないように見えます。
bluetooth.service
暫定対策としましては、現象発生時にbluetoorhデバイスの再起動(または、bluetooth.service の restart)を組み込んだうえでの長期動作確認をしていただければと思います。

以上です。

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

> この現象につきまして、デバイスの再起動で回復しているため作成されたpythonアプリケーションが原因ではないように思えますが、まだ判断が付かないように見えます。
> bluetooth.service
> 暫定対策としましては、現象発生時にbluetoorhデバイスの再起動(または、bluetooth.service の restart)を組み込んだうえでの長期動作確認をしていただければと思います。

正常にスキャンできているときに、bluetoothctlで直接bluetoothデバイスにスキャンの命令を出したときはセンサーのデータを取得できましたが、この現象が起こった時に同じくbluetoothctlでスキャンをしたら、取得したいセンサーのデータはおろか何1つ周りのbluetooth機器をスキャンすることが出来ませんでした。(スキャン試行回数30回ほど)
これはarmadilloに組み込まれているbluetoothデバイスが原因である可能性が高いといえないでしょうか。

現象が起こる原因がわからないため、まずは上記の暫定対策を実施して長期稼働をしてみたいと思います。

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

at_syunya.ohshio

2023年6月23日 10時59分

大塩です。

> 正常にスキャンできているときに、bluetoothctlで直接bluetoothデバイスにスキャンの命令を出したときはセンサーのデータを取得できましたが、この現象が起こった時に同じくbluetoothctlでスキャンをしたら、取得したいセンサーのデータはおろか何1つ周りのbluetooth機器をスキャンすることが出来ませんでした。(スキャン試行回数30回ほど)
> これはarmadilloに組み込まれているbluetoothデバイスが原因である可能性が高いといえないでしょうか。
> 現象が起こる原因がわからないため、まずは上記の暫定対策を実施して長期稼働をしてみたいと思います。

頂いた情報からアプリケーションが原因ではないと思われるため、こちらでも長期稼働による確認を行います。

以上です。

at_syunya.ohshio

2023年6月26日 10時24分

大塩です。
追記します。

BTモジュールのファームウェアのアップデートで動作が改善するかもしれません。
以下を参考にBT のファームウェアのバージョンを上げていただき、動作確認していただけますでしょうか。
https://armadillo.atmark-techno.com/blog/9492/3825

後々、上記作業を行わずに動作確認できるよう、ファームウェアをアップデート可能なパッケージを作成予定です。

また、上記ページの「ファームウェアのバージョンを確認する」を参考に、アップデート前のBTファームウェアバージョンをお教えいただけますと幸いです。

以上です。