West Gate Laboratory

人生を少しでも,面白く便利にするモノづくり

ESP32でBluetooth通信してるとASSERT_WARNが出る件

最近ESP-WROOM-32を買って弄っている。

ESP-WROOM-32にはBluetoothが搭載されているので、スマホなどBluetooth搭載機器と簡単に通信を行うことができる。

単純にBluetoothを試してみるだけなら、Arduino IDEファイル→スケッチ例→BluetoothSerial→SerialToSerialBTで手軽に通信することができる。

このスケッチ例を使って、ESP32とスマホとつないでBluetooth通信を試していたのだが、シリアルモニタにASSERT_WARN(1 9), in lc_task.c at line 5054というメッセージが定期的に生じる(ひどいと数秒に1回)。

別にメッセージが出るだけで、Bluetooth通信自体はできるのでいいっちゃいいのだが、かなり目障り。

f:id:kaname_m:20200120231420p:plain
Bluetooth通信時のシリアルモニタ。 一番下の行にASSERTメッセージが大量に。

対処方法

どうやら原因は使っていたノートPCのBluetoothドライバだったようだ。

自分のPCのデフォルトのドライバはRealtekのものだった。

f:id:kaname_m:20200120231423p:plain
デフォルトのBluetoothドライバ(赤枠)

こいつをWindows標準のドライバに変更すると症状が収まった。

ドライバを変更するには、デバイスマネージャーから件のドライバを右クリック→ドライバの更新→コンピューターを参照してドライバーソフトウェアを検索→コンピューター上の利用可能なドライバーの一覧から選択します をクリックする。

すると、以下の画面になるので、Generic Bluetooth Adapterを選択し、次へ、からインストールする。

f:id:kaname_m:20200120231427p:plain

バイスマネージャー上でドライバが切り替わっていればOKだ。これでASSERT_WARNメッセージは出なくなった。

f:id:kaname_m:20200120232421p:plain