ESP32S3とWinPCでBLE Uart通信不具合

2026.4.1 Coskx Lab  

ESP32S3とWinPC間のBLE Uart通信に不具合が起きています。確認出来ている状況をまとめます。

1 確認のために使用したもの

ESP32S3ではAruduinoIDEにて2つのUARTテストプログラム(BLEペリフェラル)を作っています。
いずれもセキュリティに関して何も設定していないものです。
(1)AruduinoIDEのESP32配下のUARTサンプルプログラム
(2)NimBLE-Arduino/h2zeroで公開されているNimBLEのサンプルプログラムを元に作成したUARTプログラム

なお,コンパイルの時のボードライブラリは「esp32/Espressif Systems 3.2.1」と「esp32/Espressif Systems 3.3.7」も2つを採用していて,次の3つをの状態をテストしています。
(1A)AruduinoIDEのESP32配下のUARTサンプルプログラム(esp32/Espressif Systems 3.3.7でコンパイル)
(1B)AruduinoIDEのESP32配下のUARTサンプルプログラム(esp32/Espressif Systems 3.2.1でコンパイル)
(2)NimBLEのUARTサンプルプログラム(esp32/Espressif Systems 3.3.7でコンパイル)

ESP32S3のUARTテストプログラム(BLEペリフェラル)と接続するBLEセントラルは次のものを使用しています。
(IA)Androidでアプリ「Serial Bluetooth Terminal」を利用
(IB)Androidでアプリ「Bluefruit Connect」を利用
(IC)Androidでアプリ「nRF Connect for Mobile」で接続テスト
(IIA)WindowsPCでアプリ「BLE-Serial-Terminal」(Github healthywalk/BLE-Serial-Terminal)
(IIB)WindowsPCでアプリ「Bluetooth LE Explorer」(Microsoft Store)で接続テス

2 確認結果

2.1 ESP32S3側(ペリフェラル):(1A) AruduinoIDEのESP32配下のUARTサンプルプログラム(esp32/Espressif Systems 3.3.7でコンパイル)

BLEセントラル テスト結果
(IA)Android「Serial Bluetooth Terminal」 問題なく接続し,交信可能
(IB)Android「Bluefruit Connect」 問題なく接続し,交信可能
(IC)Android「nRF Connect for Mobile」 問題なく接続を確認
(IIA)WindowsPC「BLE-Serial-Terminal」 接続できない*1
(IIB)WindowsPC「Bluetooth LE Explorer」 接続できない*2

*1 「BLE-Serial-Terminal」をconnectの状態にしても,ESP32はcallbackのonConnectが起動しない。
 「BLE-Serial-Terminal」はconnect状態になっている
 「BLE-Serial-Terminal」が文字列を送信すると,ESP32は受信するが,connectedCount = 0となっている
 ESP32が文字列を送信しても,「BLE-Serial-Terminal」は受信しない(送信していないと考えられる)
 「BLE-Serial-Terminal」をdisconnectの状態にすると,ESP32はcallbackのonDisconnectが起動する

*2 「Bluetooth LE Explorer」をconnectの状態にしても,ESP32はcallbackのonConnectが起動しない
 「Bluetooth LE Explorer」はconnect状態になっている
 「Bluetooth LE Explorer」を終了するとと,ESP32はcallbackのonDisconnectが起動する

2.2 ESP32S3側(ペリフェラル):(1B) AruduinoIDEのESP32配下のUARTサンプルプログラム(esp32/Espressif Systems 3.2.1でコンパイル)

BLEセントラル テスト結果
(IA)Android「Serial Bluetooth Terminal」 問題なく接続し,交信可能
(IB)Android「Bluefruit Connect」 問題なく接続し,交信可能
(IC)Android「nRF Connect for Mobile」 問題なく接続を確認
(IIA)WindowsPC「BLE-Serial-Terminal」 問題なく接続し,交信可能
(IIB)WindowsPC「Bluetooth LE Explorer」 問題なく接続を確認

2.3 ESP32S3側(ペリフェラル):(2) NimBLEのUARTサンプルプログラム(esp32/Espressif Systems 3.3.7でコンパイル)

BLEセントラル テスト結果
(IA)Android「Serial Bluetooth Terminal」 問題なく接続し,交信可能
(IB)Android「Bluefruit Connect」 問題なく接続し,交信可能
(IC)Android「nRF Connect for Mobile」 問題なく接続を確認
(IIA)WindowsPC「BLE-Serial-Terminal」 問題なく接続し,交信可能
(IIB)WindowsPC「Bluetooth LE Explorer」/td> 問題なく接続を確認

3 まとめ

(1)ボードライブラリesp32/Espressif Systems 3.2.1を使用したBLE UARTプログラム(ペリフェラル)はandoroidおよびWindowsPCと接続でき,問題なく交信できる。
(2)ボードライブラリesp32/Espressif Systems 3.3.7を使用したBLE UARTプログラム(ペリフェラル)はandoroidとは接続でき問題なく交信できるが,WindowsPCとは接続できない。
(3)ボードライブラリesp32/Espressif Systems 3.2.1を使用したNimBLE UARTプログラム(ペリフェラル)はandoroidおよびWindowsPCと接続でき,問題なく交信できる。

ボードライブラリesp32/Espressif Systems 3.2.1を使用したBLE UARTプログラム(ペリフェラル)とWindowsPCのConnect手続きに問題があり,どちらが問題を含んでいるのかまではわからない。