<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Emulate the R key on a Mac keyboard]]></title><description><![CDATA[<p dir="auto">Hello,<br />
I would like to emulate the R key on a Mac keyboard using a button and an M5StickC PLUS2 ESP32.</p>
<p dir="auto">I asked my friend ChatGPT how to do it and this is what he <a href="https://chatgpt.com/share/68f34d05-0788-8005-94f3-e2ab2bd19f09" target="_blank" rel="noopener noreferrer nofollow ugc">told me</a></p>
<p dir="auto">I connected my M5StickC PLUS2 via USB to my Mac to connect it to my Arduino IDE.</p>
<p dir="auto"><img src="/assets/uploads/files/1760896164965-capture-d-e-cran-2025-10-18-a-16.59.43.png" alt="Capture d’écran 2025-10-18 à 16.59.43.png" class=" img-fluid img-markdown" /></p>
<p dir="auto">Only if I bring the code that ChatGPT generated for me.<br />
Any ideas?</p>
]]></description><link>https://community.m5stack.com/topic/7861/emulate-the-r-key-on-a-mac-keyboard</link><generator>RSS for Node</generator><lastBuildDate>Sun, 10 May 2026 16:59:26 GMT</lastBuildDate><atom:link href="https://community.m5stack.com/topic/7861.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 19 Oct 2025 17:49:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Emulate the R key on a Mac keyboard on Tue, 21 Oct 2025 09:28:10 GMT]]></title><description><![CDATA[<p dir="auto">Ok so if I try with my code</p>
<pre><code>#include &lt;M5StickCPlus2.h&gt;
#include &lt;BleKeyboard.h&gt;

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);
}
</code></pre>
<p dir="auto">I have this error message</p>
<pre><code>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&lt;char&gt;'} to 'String'
  106 |   BLEDevice::init(deviceName);
      |                   ^~~~~~~~~~
      |                   |
      |                   std::string {aka std::__cxx11::basic_string&lt;char&gt;}
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&amp;)'
  117 |   hid-&gt;manufacturer()-&gt;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&amp;)'
  194 |   void setValue(const String &amp;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&lt;char&gt;'} to 'const String&amp;'
  194 |   void setValue(const String &amp;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&lt;char&gt;'} 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&lt;char&gt;'} 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&lt;char&gt;'} 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&lt;char&gt;'} 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&lt;char&gt;'} 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
</code></pre>
<p dir="auto">My libraries<br />
<img src="/assets/uploads/files/1761038852860-capture-d-e-cran-2025-10-21-a-11.06.27.png" alt="Capture d’écran 2025-10-21 à 11.06.27.png" class=" img-fluid img-markdown" /></p>
<p dir="auto"><img src="/assets/uploads/files/1761038877984-capture-d-e-cran-2025-10-21-a-11.22.36.png" alt="Capture d’écran 2025-10-21 à 11.22.36.png" class=" img-fluid img-markdown" /></p>
]]></description><link>https://community.m5stack.com/post/30075</link><guid isPermaLink="true">https://community.m5stack.com/post/30075</guid><dc:creator><![CDATA[foufouner1977]]></dc:creator><pubDate>Tue, 21 Oct 2025 09:28:10 GMT</pubDate></item></channel></rss>