Compiler-problem with XIAO_ESP32C3

Hi,

I cannot compile the test code from “Bluetooth Usage on Seeed Studio XIAO ESP32C3 - Seeed Wiki”, I get this error message:

################################################################
Arduino: 1.8.10 (Windows 10), Board: “XIAO_ESP32C3, Enabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 160MHz (WiFi), QIO, 80MHz, 4MB (32Mb), 921600, None, Disabled”

In file included from C:\Users\fil15\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.7\libraries\BLE\src/BLECharacteristic.h:17,
from C:\Users\fil15\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.7\libraries\BLE\src/BLEService.h:15,
from C:\Users\fil15\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.7\libraries\BLE\src/BLEClient.h:20,
from C:\Users\fil15\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.7\libraries\BLE\src/BLEUtils.h:16,
from C:\Users\fil15\AppData\Local\Temp\arduino_modified_sketch_207590\BLE_server.ino:2:
C:\Users\fil15\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.7\libraries\BLE\src/BLEDescriptor.h:25:7: error: redefinition of ‘class BLEDescriptor’
class BLEDescriptor {
^~~~~~~~~~~~~
In file included from C:\Users\fil15\Documents\Arduino\libraries\ArduinoBLE\src/BLECharacteristic.h:25,
from C:\Users\fil15\Documents\Arduino\libraries\ArduinoBLE\src/BLEService.h:23,
from C:\Users\fil15\Documents\Arduino\libraries\ArduinoBLE\src/BLEDevice.h:25,
from C:\Users\fil15\AppData\Local\Temp\arduino_modified_sketch_207590\BLE_server.ino:1:
C:\Users\fil15\Documents\Arduino\libraries\ArduinoBLE\src/BLEDescriptor.h:28:7: note: previous definition of ‘class BLEDescriptor’
class BLEDescriptor {
^~~~~~~~~~~~~
In file included from C:\Users\fil15\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.7\libraries\BLE\src/BLEService.h:15,
from C:\Users\fil15\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.7\libraries\BLE\src/BLEClient.h:20,
from C:\Users\fil15\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.7\libraries\BLE\src/BLEUtils.h:16,
from C:\Users\fil15\AppData\Local\Temp\arduino_modified_sketch_207590\BLE_server.ino:2:
C:\Users\fil15\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.7\libraries\BLE\src/BLECharacteristic.h:53:7: error: redefinition of ‘class BLECharacteristic’
class BLECharacteristic {
^~~~~~~~~~~~~~~~~
In file included from C:\Users\fil15\Documents\Arduino\libraries\ArduinoBLE\src/BLEService.h:23,
from C:\Users\fil15\Documents\Arduino\libraries\ArduinoBLE\src/BLEDevice.h:25,
from C:\Users\fil15\AppData\Local\Temp\arduino_modified_sketch_207590\BLE_server.ino:1:
C:\Users\fil15\Documents\Arduino\libraries\ArduinoBLE\src/BLECharacteristic.h:45:7: note: previous definition of ‘class BLECharacteristic’
class BLECharacteristic {
^~~~~~~~~~~~~~~~~
In file included from C:\Users\fil15\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.7\libraries\BLE\src/BLEClient.h:20,
from C:\Users\fil15\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.7\libraries\BLE\src/BLEUtils.h:16,
from C:\Users\fil15\AppData\Local\Temp\arduino_modified_sketch_207590\BLE_server.ino:2:
C:\Users\fil15\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.7\libraries\BLE\src/BLEService.h:49:7: error: redefinition of ‘class BLEService’
class BLEService {
^~~~~~~~~~
In file included from C:\Users\fil15\Documents\Arduino\libraries\ArduinoBLE\src/BLEDevice.h:25,
from C:\Users\fil15\AppData\Local\Temp\arduino_modified_sketch_207590\BLE_server.ino:1:
C:\Users\fil15\Documents\Arduino\libraries\ArduinoBLE\src/BLEService.h:28:7: note: previous definition of ‘class BLEService’
class BLEService {
^~~~~~~~~~
C:\Users\fil15\AppData\Local\Temp\arduino_modified_sketch_207590\BLE_server.ino: In member function ‘virtual void MyCallbacks::onWrite(BLECharacteristic*)’:
BLE_server:14:44: error: ‘class BLECharacteristic’ has no member named ‘getValue’; did you mean ‘setValue’?
std::string value = pCharacteristic->getValue();
^~~~~~~~
setValue
C:\Users\fil15\AppData\Local\Temp\arduino_modified_sketch_207590\BLE_server.ino: In function ‘void setup()’:
BLE_server:31:14: error: ‘init’ is not a member of ‘BLEDevice’
BLEDevice::init(“MyESP32”);
^~~~
BLE_server:32:35: error: ‘createServer’ is not a member of ‘BLEDevice’
BLEServer *pServer = BLEDevice::createServer();
^~~~~~~~~~~~
BLE_server:36:50: error: ‘class BLEService’ has no member named ‘createCharacteristic’; did you mean ‘addCharacteristic’?
BLECharacteristic *pCharacteristic = pService->createCharacteristic(
^~~~~~~~~~~~~~~~~~~~
addCharacteristic
BLE_server:38:61: error: ‘PROPERTY_READ’ is not a member of ‘BLECharacteristic’
BLECharacteristic::PROPERTY_READ |
^~~~~~~~~~~~~
BLE_server:39:61: error: ‘PROPERTY_WRITE’ is not a member of ‘BLECharacteristic’
BLECharacteristic::PROPERTY_WRITE
^~~~~~~~~~~~~~
BLE_server:42:20: error: ‘class BLECharacteristic’ has no member named ‘setCallbacks’
pCharacteristic->setCallbacks(new MyCallbacks());
^~~~~~~~~~~~
BLE_server:45:13: error: ‘class BLEService’ has no member named ‘start’
pService->start();
^~~~~
Mehrere Bibliotheken wurden für “BLEUtils.h” gefunden
Benutzt: C:\Users\fil15\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.7\libraries\BLE
Mehrere Bibliotheken wurden für “BLEDevice.h” gefunden
Benutzt: C:\Users\fil15\Documents\Arduino\libraries\ArduinoBLE
Nicht benutzt: C:\Users\fil15\Documents\Arduino\libraries\ArduinoBLE-master
Nicht benutzt: C:\Users\fil15\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.7\libraries\BLE
exit status 1
‘class BLECharacteristic’ has no member named ‘getValue’; did you mean ‘setValue’?
################################################################

How can I solve the problem?
Thanks for the help

Do you have the library “ArduinoBLE 1.3.2” installed on your PC?
If so, you may be able to compile it by changing to “ArduinoBLE 1.3.1”.

2 Likes

Thank you msfujino!
That was it, with version 1.3.1 it works.

But don’t understand why, because the library ArduinoBLE is not used in the sketch at all.
Only this library is used in the sketch:
#include <BLEDevice.h>
#include <BLEUtils.h>
#include <BLEServer.h>