-
Notifications
You must be signed in to change notification settings - Fork 531
Description
I had a working code in Arduino IDE 1.8.x , and at one point it stopped compiling.
Apparently some libraries would not work anymore and I had to move to 2.x . However, the existing code was failing to compile, and I decided to try a fresh machine - to no avail. So I tried again, and this time checked the instructions from scratch and found out that the example for the library will not compile.
Steps to reproduce error:
- install fresh windows 11
- install Aduino IDE 2.3.4 (latest as of March 10 2025)
- Add "https://dl.espressif.com/dl/package_esp32_index.json" to File-Preferences-Settings-Additional boards manager URLs field.
- In the Boards Manager, install "esp32 by Espressif Systems" version 3.1.1
- Download latest zip (version=0.3.2) from https://github.com/T-vK/ESP32-BLE-Keyboard/tree/master
- File - Examples - ESP32 BLE Keyvoard - SendKeyStrokes
- Select Port and Board
- Upload
- Error
Here is the error log:
c:\Users\User\Documents\Arduino\libraries\ESP32_BLE_Keyboard\BleKeyboard.cpp: In member function 'void BleKeyboard::begin()':
c:\Users\User\Documents\Arduino\libraries\ESP32_BLE_Keyboard\BleKeyboard.cpp:106:19: error: cannot convert 'std::string' {aka 'std::__cxx11::basic_string'} to 'String'
106 | BLEDevice::init(deviceName);
| ^~~~~~~~~~
| |
| std::string {aka std::__cxx11::basic_string}
In file included from c:\Users\User\Documents\Arduino\libraries\ESP32_BLE_Keyboard\BleKeyboard.cpp:9:
C:\Users\User\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.1\libraries\BLE\src/BLEDevice.h:41:27: note: initializing argument 1 of 'static void BLEDevice::init(String)'
41 | static void init(String deviceName); // Initialize the local BLE environment.
| ~~~~~~~^~~~~~~~~~
c:\Users\User\Documents\Arduino\libraries\ESP32_BLE_Keyboard\BleKeyboard.cpp:117:32: error: no matching function for call to 'BLECharacteristic::setValue(std::string&)'
117 | hid->manufacturer()->setValue(deviceManufacturer);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
In file included from C:\Users\User\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.1\libraries\BLE\src/BLEHIDDevice.h:17,
from c:\Users\User\Documents\Arduino\libraries\ESP32_BLE_Keyboard\BleKeyboard.h:24,
from c:\Users\User\Documents\Arduino\libraries\ESP32_BLE_Keyboard\BleKeyboard.cpp:1:
C:\Users\User\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.1\libraries\BLE\src/BLECharacteristic.h:83:8: note: candidate: 'void BLECharacteristic::setValue(double&)'
83 | void setValue(double &data64);
| ^~~~~~~~
C:\Users\User\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.1\libraries\BLE\src/BLECharacteristic.h:83:25: note: no known conversion for argument 1 from 'std::string' {aka 'std::__cxx11::basic_string'} to 'double&'
83 | void setValue(double &data64);
| ~~~~~~~~^~~~~~
C:\Users\User\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.1\libraries\BLE\src/BLECharacteristic.h:82:8: note: candidate: 'void BLECharacteristic::setValue(float&)'
82 | void setValue(float &data32);
| ^~~~~~~~
C:\Users\User\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.1\libraries\BLE\src/BLECharacteristic.h:82:24: note: no known conversion for argument 1 from 'std::string' {aka 'std::__cxx11::basic_string'} to 'float&'
82 | void setValue(float &data32);
| ~~~~~~~^~~~~~
C:\Users\User\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.1\libraries\BLE\src/BLECharacteristic.h:81:8: note: candidate: 'void BLECharacteristic::setValue(int&)'
81 | void setValue(int &data32);
| ^~~~~~~~
C:\Users\User\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.1\libraries\BLE\src/BLECharacteristic.h:81:22: note: no known conversion for argument 1 from 'std::string' {aka 'std::__cxx11::basic_string'} to 'int&'
81 | void setValue(int &data32);
| ~~~~~^~~~~~
C:\Users\User\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.1\libraries\BLE\src/BLECharacteristic.h:80:8: note: candidate: 'void BLECharacteristic::setValue(uint32_t&)'
80 | void setValue(uint32_t &data32);
| ^~~~~~~~
C:\Users\User\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.1\libraries\BLE\src/BLECharacteristic.h:80:27: note: no known conversion for argument 1 from 'std::string' {aka 'std::__cxx11::basic_string'} to 'uint32_t&' {aka 'long unsigned int&'}
80 | void setValue(uint32_t &data32);
| ~~~~~~~~~~^~~~~~
C:\Users\User\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.1\libraries\BLE\src/BLECharacteristic.h:79:8: note: candidate: 'void BLECharacteristic::setValue(uint16_t&)'
79 | void setValue(uint16_t &data16);
| ^~~~~~~~
C:\Users\User\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.1\libraries\BLE\src/BLECharacteristic.h:79:27: note: no known conversion for argument 1 from 'std::string' {aka 'std::__cxx11::basic_string'} to 'uint16_t&' {aka 'short unsigned int&'}
79 | void setValue(uint16_t &data16);
| ~~~~~~~~~~^~~~~~
C:\Users\User\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.1\libraries\BLE\src/BLECharacteristic.h:77:8: note: candidate: 'void BLECharacteristic::setValue(uint8_t*, size_t)'
77 | void setValue(uint8_t *data, size_t size);
| ^~~~~~~~
C:\Users\User\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.1\libraries\BLE\src/BLECharacteristic.h:77:8: note: candidate expects 2 arguments, 1 provided
C:\Users\User\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.1\libraries\BLE\src/BLECharacteristic.h:78:8: note: candidate: 'void BLECharacteristic::setValue(String)'
78 | void setValue(String value);
| ^~~~~~~~
C:\Users\User\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.1\libraries\BLE\src/BLECharacteristic.h:78:24: note: no known conversion for argument 1 from 'std::string' {aka 'std::__cxx11::basic_string'} to 'String'
78 | void setValue(String value);
| ~~~~~~~^~~~~
exit status 1
Compilation error: exit status 1