🤖Have you ever tried Chat.M5Stack.com before asking??😎
    M5Stack Community
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    Emulate the R key on a Mac keyboard

    PROJECTS
    1
    2
    37
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      foufouner1977
      last edited by

      Hello,
      I would like to emulate the R key on a Mac keyboard using a button and an M5StickC PLUS2 ESP32.

      I asked my friend ChatGPT how to do it and this is what he told me

      I connected my M5StickC PLUS2 via USB to my Mac to connect it to my Arduino IDE.

      Capture d’écran 2025-10-18 à 16.59.43.png

      Only if I bring the code that ChatGPT generated for me.
      Any ideas?

      F 1 Reply Last reply Reply Quote 1
      • F
        foufouner1977 @foufouner1977
        last edited by foufouner1977

        Ok so if I try with my code

        #include <M5StickCPlus2.h>
        #include <BleKeyboard.h>
        
        BleKeyboard bleKeyboard("M5StickC_Keyboard", "M5Stack", 100);
        
        void setup() {
          M5.begin();
          Serial.begin(115200);
        
          bleKeyboard.begin();
          Serial.println("En attente de connexion Bluetooth...");
        }
        
        void loop() {
          M5.update();
        
          if (bleKeyboard.isConnected()) {
            // Si on appuie sur le bouton A du M5StickC
            if (M5.BtnA.wasPressed()) {
              Serial.println("Touche R envoyée !");
              bleKeyboard.press('r');
              delay(100);
              bleKeyboard.releaseAll();
            }
          }
        
          delay(10);
        }
        

        I have this error message

        c:\Users\Cl�ment\Documents\Arduino\libraries\ESP32_BLE_Keyboard\BleKeyboard.cpp: In member function 'void BleKeyboard::begin()':
        c:\Users\Cl�ment\Documents\Arduino\libraries\ESP32_BLE_Keyboard\BleKeyboard.cpp:106:19: error: cannot convert 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'String'
          106 |   BLEDevice::init(deviceName);
              |                   ^~~~~~~~~~
              |                   |
              |                   std::string {aka std::__cxx11::basic_string<char>}
        In file included from C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLEServer.h:26,
                         from C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLEService.h:25,
                         from C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLEHIDDevice.h:21,
                         from c:\Users\Cl�ment\Documents\Arduino\libraries\ESP32_BLE_Keyboard\BleKeyboard.h:24,
                         from c:\Users\Cl�ment\Documents\Arduino\libraries\ESP32_BLE_Keyboard\BleKeyboard.cpp:1:
        C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLEDevice.h:184:27: note:   initializing argument 1 of 'static void BLEDevice::init(String)'
          184 |   static void init(String deviceName);
              |                    ~~~~~~~^~~~~~~~~~
        c:\Users\Cl�ment\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\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLEHIDDevice.h:20:
        C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLECharacteristic.h:193:8: note: candidate: 'void BLECharacteristic::setValue(const uint8_t*, size_t)'
          193 |   void setValue(const uint8_t *data, size_t size);
              |        ^~~~~~~~
        C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLECharacteristic.h:193:8: note:   candidate expects 2 arguments, 1 provided
        C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLECharacteristic.h:194:8: note: candidate: 'void BLECharacteristic::setValue(const String&)'
          194 |   void setValue(const String &value);
              |        ^~~~~~~~
        C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLECharacteristic.h:194:31: note:   no known conversion for argument 1 from 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'const String&'
          194 |   void setValue(const String &value);
              |                 ~~~~~~~~~~~~~~^~~~~
        C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLECharacteristic.h:195:8: note: candidate: 'void BLECharacteristic::setValue(uint16_t)'
          195 |   void setValue(uint16_t data16);
              |        ^~~~~~~~
        C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLECharacteristic.h:195:26: note:   no known conversion for argument 1 from 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'uint16_t' {aka 'short unsigned int'}
          195 |   void setValue(uint16_t data16);
              |                 ~~~~~~~~~^~~~~~
        C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLECharacteristic.h:196:8: note: candidate: 'void BLECharacteristic::setValue(uint32_t)'
          196 |   void setValue(uint32_t data32);
              |        ^~~~~~~~
        C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLECharacteristic.h:196:26: note:   no known conversion for argument 1 from 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'uint32_t' {aka 'long unsigned int'}
          196 |   void setValue(uint32_t data32);
              |                 ~~~~~~~~~^~~~~~
        C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLECharacteristic.h:197:8: note: candidate: 'void BLECharacteristic::setValue(int)'
          197 |   void setValue(int data32);
              |        ^~~~~~~~
        C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLECharacteristic.h:197:21: note:   no known conversion for argument 1 from 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'int'
          197 |   void setValue(int data32);
              |                 ~~~~^~~~~~
        C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLECharacteristic.h:198:8: note: candidate: 'void BLECharacteristic::setValue(float)'
          198 |   void setValue(float data32);
              |        ^~~~~~~~
        C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLECharacteristic.h:198:23: note:   no known conversion for argument 1 from 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'float'
          198 |   void setValue(float data32);
              |                 ~~~~~~^~~~~~
        C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLECharacteristic.h:199:8: note: candidate: 'void BLECharacteristic::setValue(double)'
          199 |   void setValue(double data64);
              |        ^~~~~~~~
        C:\Users\Cl�ment\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.2\libraries\BLE\src/BLECharacteristic.h:199:24: note:   no known conversion for argument 1 from 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'double'
          199 |   void setValue(double data64);
              |                 ~~~~~~~^~~~~~
        grpc: error while marshaling: string field contains invalid UTF-8
        
        Compilation error: grpc: error while marshaling: string field contains invalid UTF-8
        

        My libraries
        Capture d’écran 2025-10-21 à 11.06.27.png

        Capture d’écran 2025-10-21 à 11.22.36.png

        1 Reply Last reply Reply Quote 0
        • First post
          Last post