<?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[Arduino ]]></title><description><![CDATA[M5Stack is programmable with the Arduino IDE. Here you can troubleshoot your issues and share Arduino code and libraries ]]></description><link>https://community.m5stack.com/category/6</link><generator>RSS for Node</generator><lastBuildDate>Mon, 16 Mar 2026 14:27:42 GMT</lastBuildDate><atom:link href="https://community.m5stack.com/category/6.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 06 Mar 2026 16:14:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[M5Dial Example App - Home Assistant, RSS News and OpenWeatherMap]]></title><description><![CDATA[<p dir="auto">7e5ce5b2-8d9d-48f9-ae34-7fa5884c1e12-image.png</p>
]]></description><link>https://community.m5stack.com/topic/8113/m5dial-example-app-home-assistant-rss-news-and-openweathermap</link><guid isPermaLink="true">https://community.m5stack.com/topic/8113/m5dial-example-app-home-assistant-rss-news-and-openweathermap</guid><dc:creator><![CDATA[PaulMcGuinness_UK]]></dc:creator><pubDate>Fri, 06 Mar 2026 16:14:26 GMT</pubDate></item><item><title><![CDATA[M5Stack Core&#x2F;Basic board management package mirror]]></title><description><![CDATA[<p dir="auto">Hi!</p>
<p dir="auto">I am having troubles downloading board management package from Arduino IDE latest version.<br />
Takes ages and ends to fail.</p>
<p dir="auto">I am also unable to download from Baidu, even with a translator I have tried everything.</p>
<p dir="auto">Is there any other mirror available for Arduino board management package?</p>
<p dir="auto">Any help appreciated!</p>
]]></description><link>https://community.m5stack.com/topic/8035/m5stack-core-basic-board-management-package-mirror</link><guid isPermaLink="true">https://community.m5stack.com/topic/8035/m5stack-core-basic-board-management-package-mirror</guid><dc:creator><![CDATA[AIS_TELECOM]]></dc:creator><pubDate>Thu, 22 Jan 2026 14:15:01 GMT</pubDate></item><item><title><![CDATA[M5Stack CoreS3 SE + COMMU display problem when replugging USB]]></title><description><![CDATA[<p dir="auto">it was caused by the CS of the LAN Module13.2. switching the jumper to the alternate position fixed the problem...</p>
<p dir="auto">so far these seem to work (CoreS3 SE+COMMU+Lan Module13.2+DIN Base):</p>
int  cs_pin  = 13; // jumper right
int rst_pin = 0; // jumper left 
int  int_pin = 10;// jumper left

]]></description><link>https://community.m5stack.com/topic/8001/m5stack-cores3-se-commu-display-problem-when-replugging-usb</link><guid isPermaLink="true">https://community.m5stack.com/topic/8001/m5stack-cores3-se-commu-display-problem-when-replugging-usb</guid><dc:creator><![CDATA[frank_b]]></dc:creator><pubDate>Thu, 08 Jan 2026 16:49:38 GMT</pubDate></item><item><title><![CDATA[Tab5 I2C on Arduino works, same code does not work on PlatformIO]]></title><description><![CDATA[<p dir="auto">Update on this one:<br />
Changing to other pins for external I2C makes it work for both Arduino and PlatformIO.<br />
So with arduino you can lay external I2C over the internal I2C, but in PlatformIO that does not work. Anybody an idea why not?</p>
]]></description><link>https://community.m5stack.com/topic/7997/tab5-i2c-on-arduino-works-same-code-does-not-work-on-platformio</link><guid isPermaLink="true">https://community.m5stack.com/topic/7997/tab5-i2c-on-arduino-works-same-code-does-not-work-on-platformio</guid><dc:creator><![CDATA[tonaug58]]></dc:creator><pubDate>Mon, 05 Jan 2026 12:02:58 GMT</pubDate></item><item><title><![CDATA[Scan using M5 Unified for IC2 devices for a M5Dial fails]]></title><description><![CDATA[<p dir="auto">Hello <a class="mention plugin-mentions-user plugin-mentions-a" href="https://community.m5stack.com/uid/409634">@VashJuan</a></p>
<p dir="auto">well, it looks to me that none of the listed devices are actually I2C devices.</p>

Grove Temp. Sensor: has an analog out pin (the other is NC) which means it directly sends an analog value
Grove Wireless Mod: has RX and TX which means it has an UART interface
Buzzer: well, my guess would be that it is not I2C either

<p dir="auto">Thanks<br />
Felix</p>
]]></description><link>https://community.m5stack.com/topic/7955/scan-using-m5-unified-for-ic2-devices-for-a-m5dial-fails</link><guid isPermaLink="true">https://community.m5stack.com/topic/7955/scan-using-m5-unified-for-ic2-devices-for-a-m5dial-fails</guid><dc:creator><![CDATA[felmue]]></dc:creator><pubDate>Sat, 20 Dec 2025 02:57:50 GMT</pubDate></item><item><title><![CDATA[Tab5 Display Power Save]]></title><description><![CDATA[<p dir="auto">Apparently M5.Display.powerSaveOn() reduces the RGB color space to just a few base colors, I suppose to save PSRAM bandwith and power. As a result all your colors are way off when powersave is on.</p>
]]></description><link>https://community.m5stack.com/topic/7916/tab5-display-power-save</link><guid isPermaLink="true">https://community.m5stack.com/topic/7916/tab5-display-power-save</guid><dc:creator><![CDATA[dheijl]]></dc:creator><pubDate>Thu, 27 Nov 2025 19:58:19 GMT</pubDate></item><item><title><![CDATA[Tab5: Arduino configTime and configTzTime return the wrong date and time (way off)]]></title><description><![CDATA[<p dir="auto">The configTime() or configTzTime() functions do not return errors but the returned date and time are way off: up to 2 days in the future and totally wrong time too.</p>
<p dir="auto">The esp32 code shown in <a href="https://www.makerguides.com/how-to-synchronize-esp32-clock-with-sntp-server/" target="_blank" rel="noopener noreferrer nofollow ugc">this makernote</a> works without fail on the same Tab5 device.</p>
<p dir="auto">my platformio.ini:</p>
<pre><code>[env:esp32p4_pioarduino]
platform = https://github.com/pioarduino/platform-espressif32.git#54.03.21
upload_speed = 1500000
monitor_speed = 115200
build_type = debug
framework = arduino
board = esp32-p4-evboard
board_build.mcu = esp32p4
board_build.flash_mode = qio
board_build.partitions = default_16MB.csv
board_build.filesystem = spiffs
build_flags = 
	-DBOARD_HAS_PSRAM
	-DCORE_DEBUG_LEVEL=5
	-DARDUINO_USB_CDC_ON_BOOT=1
	-DARDUINO_USB_MODE=1
lib_deps = 
	https://github.com/M5Stack/M5Unified.git
	https://github.com/M5Stack/M5GFX.git

</code></pre>
<p dir="auto">Other Arduino stuff is broken too: after wakeup from lightsleep the display does not work properly half of the time: the cursor position is sometimes totally off, or sometimes it does not wake at all. I suppose the display needs a hardware reset via a GPIO, but can't find any mention of this in the docs.</p>
<p dir="auto">But the hardware is very nice indeed. Especially the undocumented coin battery backup for the RTC is a nice surprise!</p>
]]></description><link>https://community.m5stack.com/topic/7900/tab5-arduino-configtime-and-configtztime-return-the-wrong-date-and-time-way-off</link><guid isPermaLink="true">https://community.m5stack.com/topic/7900/tab5-arduino-configtime-and-configtztime-return-the-wrong-date-and-time-way-off</guid><dc:creator><![CDATA[dheijl]]></dc:creator><pubDate>Wed, 19 Nov 2025 13:42:50 GMT</pubDate></item><item><title><![CDATA[esp32&#x2F;rom&#x2F;rtc.h No such file or directory]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://community.m5stack.com/uid/244069">@scroggyg</a> The file exists, could the path length be too long?<br />
C:\Users\xxxxxxxxxxxxxx\xxxxxxxxxxxxxx\Documents\Arduino\hardware\espressif\esp32\tools\sdk\esp32s3\include\esp_rom\include\esp32\rom</p>
]]></description><link>https://community.m5stack.com/topic/7874/esp32-rom-rtc-h-no-such-file-or-directory</link><guid isPermaLink="true">https://community.m5stack.com/topic/7874/esp32-rom-rtc-h-no-such-file-or-directory</guid><dc:creator><![CDATA[scroggyg]]></dc:creator><pubDate>Mon, 03 Nov 2025 12:37:45 GMT</pubDate></item><item><title><![CDATA[Display png from sd with tab5]]></title><description><![CDATA[<p dir="auto">I'm looking for an example how to display a png from the sd card to the TAB5. Someone have some experiace with this topic.</p>
<p dir="auto">Cheers,<br />
Jan</p>
]]></description><link>https://community.m5stack.com/topic/7828/display-png-from-sd-with-tab5</link><guid isPermaLink="true">https://community.m5stack.com/topic/7828/display-png-from-sd-with-tab5</guid><dc:creator><![CDATA[Powersoft]]></dc:creator><pubDate>Sat, 20 Sep 2025 09:15:31 GMT</pubDate></item><item><title><![CDATA[Visual Code and M5StamPLC with new M5Unified]]></title><description><![CDATA[<p dir="auto">Hello,</p>
<p dir="auto">I've gotten a little closer to the problem. First, I performed a full clean in Visual Studio using platformio AND deactivated the entry for M5Unified. The new M5Unified@0.2.8 continued to load:</p>

Processing m5stampplc-test (platform: espressif32; board: esp32-s3-devkitc-1; framework: arduino)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Library Manager: Installing git+https://github.com/m5stack/M5StamPLC
git version 2.43.0
Cloning into '/Users/myname/.platformio/.cache/tmp/pkg-installing-pmi7_zhl'...
remote: Enumerating objects: 70, done.
remote: Counting objects: 100% (70/70), done.
remote: Compressing objects: 100% (57/57), done.
remote: Total 70 (delta 4), reused 29 (delta 1), pack-reused 0 (from 0)
Receiving objects: 100% (70/70), 80.39 KiB | 2.77 MiB/s, done.
Resolving deltas: 100% (4/4), done.
Library Manager: M5StamPLC@1.0.0+sha.1021da5 has been installed!
Library Manager: Resolving dependencies...
Library Manager: Installing M5Unified @ *
Unpacking  [####################################]  100%
Library Manager: M5Unified@0.2.8 has been installed!
Library Manager: Resolving dependencies...
Library Manager: Installing M5GFX @ &gt;=0.2.10
Unpacking  [####################################]  100%
Library Manager: M5GFX@0.2.10 has been installed!

<p dir="auto">A look at the library.json revealed the challenge in my opinion: dependencies to "M5Unified" - No specific version of M5Unified, always the latest!</p>

    "name": "M5StamPLC",
    "description": "Library for M5StamPLC",
    "keywords": "M5Stack,M5StamPLC",
    "authors": {
        "name": "M5Stack"
    },
    "repository": {
        "type": "git",
        "url": "https://github.com/M5Stack/M5StamPLC.git"
    },
    "dependencies": {
        "M5Unified": "*",
        "M5GFX": "*"
    },
    "version": "1.0.0",
    "frameworks": "arduino",
    "platforms": "espressif32"
}

<p dir="auto">Before I copy and adapt everything locally, it would certainly be helpful to adapt this. In my opinion, there must be an M5StamPLC version 1.0.1 with the new features, and the old version M5StamPLC 1.0.0 must use M5Unified version 0.2.7. Who (from M5Stack) can help me?</p>
]]></description><link>https://community.m5stack.com/topic/7799/visual-code-and-m5stamplc-with-new-m5unified</link><guid isPermaLink="true">https://community.m5stack.com/topic/7799/visual-code-and-m5stamplc-with-new-m5unified</guid><dc:creator><![CDATA[GermanSheepDog]]></dc:creator><pubDate>Thu, 04 Sep 2025 18:57:50 GMT</pubDate></item><item><title><![CDATA[M5TAB5]]></title><description><![CDATA[<p dir="auto">Hello <a class="mention plugin-mentions-user plugin-mentions-a" href="https://community.m5stack.com/uid/1718">@Powersoft</a></p>
<p dir="auto">please have a look at my M5Tab5 library (unofficial) <a href="https://github.com/felmue/M5Tab5/blob/main/src/M5Tab5.cpp#L48" target="_blank" rel="noopener noreferrer nofollow ugc">here</a>.</p>
<p dir="auto">Thanks<br />
Felix</p>
]]></description><link>https://community.m5stack.com/topic/7790/m5tab5</link><guid isPermaLink="true">https://community.m5stack.com/topic/7790/m5tab5</guid><dc:creator><![CDATA[felmue]]></dc:creator><pubDate>Fri, 29 Aug 2025 08:02:26 GMT</pubDate></item><item><title><![CDATA[ESP-Now-Serial-Bridge on M5Atom S3]]></title><description><![CDATA[<p dir="auto">Hi,<br />
First Post so be gentle please :)<br />
I’m trying to get this code to work on a M5Atom S3 with Arduino IDE.</p>
<pre><code>/*********************************************************************************
 * ESP-Now-Serial-Bridge
 *
 * ESP32 based serial bridge for transmitting serial data between two boards
 *
 * The primary purpose of this sketch was to enable a MAVLink serial connection,
 *   which I successfully tested at 57600 bps.  In theory, much faster buad rates
 *   should work fine, but I have not tested faster than 115200.
 *
 * Range is easily better than regular WiFi, however an external antenna may be
 *   required for truly long range messaging, to combat obstacles/walls, and/or
 *   to achieve success in an area saturated with 2.4GHz traffic.
 * 
 * I made heavy use of compiler macros to keep the sketch compact/efficient.
 *
 * To find the MAC address of each board, uncomment the #define DEBUG line, 
 *   and monitor serial output on boot.  Set the OPPOSITE board's IP address
 *   as the value for RECVR_MAC in the macros at the top of the sketch.
 *   
 * The BLINK_ON_* macros should be somewhat self-explanatory.  If your board has a built-in
 *   LED (or you choose to wire an external one), it can indicate ESP-Now activity as
 *   defined by the macros you choose to enable.
 *
 * When uploading the sketch, be sure to define BOARD1 or BOARD2 as appropriate
 *   before compiling.
 *
 * -- Yuri - Sep 2021
 *
 * Based this example - https://randomnerdtutorials.com/esp-now-two-way-communication-esp32/
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files.
 *
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
*********************************************************************************/

#include &lt;esp_now.h&gt;
#include &lt;WiFi.h&gt;
#include &lt;esp_wifi.h&gt;

#define BOARD1 // BOARD1 or BOARD2

#ifdef BOARD1
#define RECVR_MAC {0x94, 0xB9, 0x7E, 0xD9, 0xDD, 0xD4}  // replace with your board's address
//#define BLINK_ON_SEND
//#define BLINK_ON_SEND_SUCCESS
#define BLINK_ON_RECV
#else
#define RECVR_MAC {0x94, 0xB9, 0x7E, 0xE4, 0x8D, 0xFC}  // replace with your board's address
//#define BLINK_ON_SEND
#define BLINK_ON_SEND_SUCCESS
//#define BLINK_ON_RECV
#endif

#define WIFI_CHAN  13 // 12-13 only legal in US in lower power mode, do not use 14
#define BAUD_RATE  115200
#define TX_PIN     1 // default UART0 is pin 1 (shared by USB)
#define RX_PIN     3 // default UART0 is pin 3 (shared by USB)
#define SER_PARAMS SERIAL_8N1 // SERIAL_8N1: start/stop bits, no parity

#define BUFFER_SIZE 250 // max of 250 bytes
//#define DEBUG // for additional serial messages (may interfere with other messages)

#ifndef LED_BUILTIN
#define LED_BUILTIN 2  // some boards don't have an LED or have it connected elsewhere
#endif

const uint8_t broadcastAddress[] = RECVR_MAC;
// wait for double the time between bytes at this serial baud rate before sending a packet
// this *should* allow for complete packet forming when using packetized serial comms
const uint32_t timeout_micros = (int)(1.0 / BAUD_RATE * 1E6) * 20;

uint8_t buf_recv[BUFFER_SIZE];
uint8_t buf_send[BUFFER_SIZE];
uint8_t buf_size = 0;
uint32_t send_timeout = 0;

esp_now_peer_info_t peerInfo;  // scope workaround for arduino-esp32 v2.0.1

#if defined(DEBUG) || defined(BLINK_ON_SEND_SUCCESS)
uint8_t led_status = 0;
void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) {
  #ifdef DEBUG
  if (status == ESP_NOW_SEND_SUCCESS) {
    Serial.println("Send success");
  } else {
  Serial.println("Send failed");
  }
  #endif

  #ifdef BLINK_ON_SEND_SUCCESS
  if (status == ESP_NOW_SEND_SUCCESS) {
    led_status = ~led_status;
    // this function happens too fast to register a blink
    // instead, we latch on/off as data is successfully sent
    digitalWrite(LED_BUILTIN, led_status);
    return;
  }
  // turn off the LED if send fails
  led_status = 0;
  digitalWrite(LED_BUILTIN, led_status);
  #endif
}
#endif

void OnDataRecv(const uint8_t * mac, const uint8_t *incomingData, int len) {
  #ifdef BLINK_ON_RECV
  digitalWrite(LED_BUILTIN, HIGH);
  #endif
  memcpy(&amp;buf_recv, incomingData, sizeof(buf_recv));
  Serial.write(buf_recv, len);
  #ifdef BLINK_ON_RECV
  digitalWrite(LED_BUILTIN, LOW);
  #endif
  #ifdef DEBUG
  Serial.print("\n Bytes received: ");
  Serial.println(len);
  #endif
}
 
void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.begin(BAUD_RATE, SER_PARAMS, RX_PIN, TX_PIN);
  Serial.println(send_timeout);
  WiFi.mode(WIFI_STA);

  #ifdef DEBUG
  Serial.print("ESP32 MAC Address: ");
  Serial.println(WiFi.macAddress());
  #endif
  
  if (esp_wifi_set_channel(WIFI_CHAN, WIFI_SECOND_CHAN_NONE) != ESP_OK) {
    #ifdef DEBUG
    Serial.println("Error changing WiFi channel");
    #endif
    return;
  }

  if (esp_now_init() != ESP_OK) {
    #ifdef DEBUG
    Serial.println("Error initializing ESP-NOW");
    #endif
    return;
  }

  #if defined(DEBUG) || defined(BLINK_ON_SEND_SUCCESS)
  esp_now_register_send_cb(OnDataSent);
  #endif
  
  // esp_now_peer_info_t peerInfo;  // scope workaround for arduino-esp32 v2.0.1
  memcpy(peerInfo.peer_addr, broadcastAddress, 6);
  peerInfo.channel = WIFI_CHAN;  
  peerInfo.encrypt = false;

  if (esp_now_add_peer(&amp;peerInfo) != ESP_OK){
    #ifdef DEBUG
    Serial.println("Failed to add peer");
    #endif
    return;
  }

  esp_now_register_recv_cb(OnDataRecv);
}

void loop() {

  // read up to BUFFER_SIZE from serial port
  if (Serial.available()) {
    while (Serial.available() &amp;&amp; buf_size &lt; BUFFER_SIZE) {
      buf_send[buf_size] = Serial.read();
      send_timeout = micros() + timeout_micros;
      buf_size++;
    }
  }

  // send buffer contents when full or timeout has elapsed
  if (buf_size == BUFFER_SIZE || (buf_size &gt; 0 &amp;&amp; micros() &gt;= send_timeout)) {
    #ifdef BLINK_ON_SEND
    digitalWrite(LED_BUILTIN, HIGH);
    #endif
    esp_err_t result = esp_now_send(broadcastAddress, (uint8_t *) &amp;buf_send, buf_size);
    buf_size = 0;
    #ifdef DEBUG
    if (result == ESP_OK) {
      Serial.println("Sent!");
    }
    else {
      Serial.println("Send error");
    }
    #endif
    #ifdef BLINK_ON_SEND
    digitalWrite(LED_BUILTIN, LOW);
    #endif
  }

}
</code></pre>
<p dir="auto">In the compilation i get this error, can someone help me?</p>
<pre><code>/private/var/folders/x9/48x6g6gs41n1h1yplgqqpvy00000gn/T/.arduinoIDE-unsaved2025728-672-1wfntf6.6pf8/ESP_NOW_Serial/ESP_NOW_Serial.ino: In function 'void setup()':
/private/var/folders/x9/48x6g6gs41n1h1yplgqqpvy00000gn/T/.arduinoIDE-unsaved2025728-672-1wfntf6.6pf8/ESP_NOW_Serial/ESP_NOW_Serial.ino:124:15: error: no matching function for call to 'HWCDC::begin(int, SerialConfig, int, int)'
  124 |   Serial.begin(BAUD_RATE, SER_PARAMS, RX_PIN, TX_PIN);
In file included from /Users/lb/Library/Arduino15/packages/esp32/hardware/esp32/3.3.0/cores/esp32/HardwareSerial.h:53,
                 from /Users/lb/Library/Arduino15/packages/esp32/hardware/esp32/3.3.0/cores/esp32/Arduino.h:202,
                 from /Users/lb/Library/Caches/arduino/sketches/F8F106E4318284D476156997E0306F8D/sketch/ESP_NOW_Serial.ino.cpp:1:
/Users/lb/Library/Arduino15/packages/esp32/hardware/esp32/3.3.0/cores/esp32/HWCDC.h:61:8: note: candidate: 'void HWCDC::begin(long unsigned int)'
   61 |   void begin(unsigned long baud = 0);
      |        ^~~~~
/Users/lb/Library/Arduino15/packages/esp32/hardware/esp32/3.3.0/cores/esp32/HWCDC.h:61:8: note:   candidate expects 1 argument, 4 provided
/private/var/folders/x9/48x6g6gs41n1h1yplgqqpvy00000gn/T/.arduinoIDE-unsaved2025728-672-1wfntf6.6pf8/ESP_NOW_Serial/ESP_NOW_Serial.ino:163:28: error: invalid conversion from 'void (*)(const uint8_t*, const uint8_t*, int)' {aka 'void (*)(const unsigned char*, const unsigned char*, int)'} to 'esp_now_recv_cb_t' {aka 'void (*)(const esp_now_recv_info*, const unsigned char*, int)'} [-fpermissive]
  163 |   esp_now_register_recv_cb(OnDataRecv);
      |                            ^~~~~~~~~~
      |                            |
      |                            void (*)(const uint8_t*, const uint8_t*, int) {aka void (*)(const unsigned char*, const unsigned char*, int)}
In file included from /private/var/folders/x9/48x6g6gs41n1h1yplgqqpvy00000gn/T/.arduinoIDE-unsaved2025728-672-1wfntf6.6pf8/ESP_NOW_Serial/ESP_NOW_Serial.ino:38:
/Users/lb/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-b66b5448-v1/esp32s3/include/esp_wifi/include/esp_now.h:164:54: note:   initializing argument 1 of 'esp_err_t esp_now_register_recv_cb(esp_now_recv_cb_t)'
  164 | esp_err_t esp_now_register_recv_cb(esp_now_recv_cb_t cb);
      |                                    ~~~~~~~~~~~~~~~~~~^~
exit status 1

Compilation error: no matching function for call to 'HWCDC::begin(int, SerialConfig, int, int)'
</code></pre>
<p dir="auto">Thanks in advance</p>
]]></description><link>https://community.m5stack.com/topic/7789/esp-now-serial-bridge-on-m5atom-s3</link><guid isPermaLink="true">https://community.m5stack.com/topic/7789/esp-now-serial-bridge-on-m5atom-s3</guid><dc:creator><![CDATA[lbarreiro]]></dc:creator><pubDate>Thu, 28 Aug 2025 10:51:12 GMT</pubDate></item><item><title><![CDATA[M5StamPLC can&#x27;t connect in Arduino IDE]]></title><description><![CDATA[<p dir="auto">I solved it. My usb c cable was junk.</p>
]]></description><link>https://community.m5stack.com/topic/7787/m5stamplc-can-t-connect-in-arduino-ide</link><guid isPermaLink="true">https://community.m5stack.com/topic/7787/m5stamplc-can-t-connect-in-arduino-ide</guid><dc:creator><![CDATA[tpkoIt]]></dc:creator><pubDate>Wed, 27 Aug 2025 14:19:47 GMT</pubDate></item><item><title><![CDATA[Visual Code and M5StamPLC]]></title><description><![CDATA[<p dir="auto">Hello <a class="mention plugin-mentions-user plugin-mentions-a" href="https://community.m5stack.com/uid/4037">@felmue</a>,</p>
<p dir="auto">yes, I did, but I didn't see this part:</p>
[env:m5stack-stamp-s3]
platform = espressif32
board = esp32-s3-devkitc-1
framework = arduino
upload_speed = 1500000
build_flags =
    -DESP32S3
    -DCORE_DEBUG_LEVEL=5
    -DARDUINO_USB_CDC_ON_BOOT=1
    -DARDUINO_USB_MODE=1
lib_deps =
    M5StamPLC=https://github.com/m5stack/M5StamPLC
    M5Unified=https://github.com/m5stack/M5Unified

<p dir="auto">Thanks, I will try it.</p>
]]></description><link>https://community.m5stack.com/topic/7784/visual-code-and-m5stamplc</link><guid isPermaLink="true">https://community.m5stack.com/topic/7784/visual-code-and-m5stamplc</guid><dc:creator><![CDATA[GermanSheepDog]]></dc:creator><pubDate>Tue, 26 Aug 2025 09:11:22 GMT</pubDate></item><item><title><![CDATA[I2c failure with MPU6050 component]]></title><description><![CDATA[<p dir="auto">More information</p>
<p dir="auto">If I use M5Unified.h and then a begin of M5.begin(), the data is all zeros. If I take out the begin, then the data is correct. There must be something in the M5Unified that is restarting the Wire or taking over the I2C bus.</p>
<p dir="auto">How can I correct this. It is a show stopper. If I can find a solution, then I will have to discard the M5Stack basic and go to a regular ESP32.</p>
]]></description><link>https://community.m5stack.com/topic/7734/i2c-failure-with-mpu6050-component</link><guid isPermaLink="true">https://community.m5stack.com/topic/7734/i2c-failure-with-mpu6050-component</guid><dc:creator><![CDATA[Grandpa-G]]></dc:creator><pubDate>Sun, 03 Aug 2025 15:10:40 GMT</pubDate></item><item><title><![CDATA[M5StamPLC and the Backlight]]></title><description><![CDATA[<p dir="auto">Hello <a class="mention plugin-mentions-user plugin-mentions-a" href="https://community.m5stack.com/uid/4037">@felmue</a>,</p>
<p dir="auto">thank you very much for your quick support, it really helped me.</p>
<p dir="auto">It didn't work in my "big" program, but I wrote a small test program, and it fully meets the requirements:</p>
#include &lt;M5StamPLC.h&gt;       

void my_set_backlight(bool o) {
  PI4IOE5V6408_Class p;
  p.setDirection(7, true);  // false input, true output
  p.digitalWrite(7, !o);    // false on, true off
}

void printAndWait(String s) {
  M5StamPLC.Display.println(" " + s);
  delay(4000);
}

void setup() {
  Serial.begin(115200);
  M5StamPLC.begin(); 
  M5StamPLC.Display.setTextSize(3);
}

void loop() {
  M5StamPLC.Display.fillScreen(TFT_BLACK);
  M5StamPLC.Display.setCursor(0, 10);
  printAndWait("Test 1");
  printAndWait("Test 2");
  my_set_backlight(false);
  printAndWait("Test 3");
  my_set_backlight(true);
  printAndWait("Test 4");
}

<p dir="auto">You can see it not only in the dark screen, but also in the power consumption, which is reduced by about 20%.</p>
<p dir="auto">I suspect that in my "big" program, someone is turning the lights back on (and working against me).</p>
<p dir="auto">Best regards,<br />
Uwe</p>
]]></description><link>https://community.m5stack.com/topic/7724/m5stamplc-and-the-backlight</link><guid isPermaLink="true">https://community.m5stack.com/topic/7724/m5stamplc-and-the-backlight</guid><dc:creator><![CDATA[GermanSheepDog]]></dc:creator><pubDate>Wed, 30 Jul 2025 12:41:15 GMT</pubDate></item><item><title><![CDATA[core2 not working]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://community.m5stack.com/uid/268756">@jbruggem</a> Your first post shows that</p>

you haven't configured Arduino to configure code for the M5Stack Core2 which uses a different core and pin config to a base esp32.
The example you are using is not an M5Stack demo,
Arduino is missing Libraries.

<p dir="auto">All these errors point back to not have the M5Stack Core2 board type selected.</p>
]]></description><link>https://community.m5stack.com/topic/7634/core2-not-working</link><guid isPermaLink="true">https://community.m5stack.com/topic/7634/core2-not-working</guid><dc:creator><![CDATA[ajb2k3]]></dc:creator><pubDate>Tue, 24 Jun 2025 12:54:01 GMT</pubDate></item><item><title><![CDATA[M5StamPLC and Serial1]]></title><description><![CDATA[<p dir="auto">The issue you're experiencing with the M5StamPLC.begin() function interfering with Serial1 is likely due to the library initializing or reconfiguring the hardware UART pins used by Serial1. Here's how you can resolve it:<br />
Solution:</p>
<p dir="auto">Check Pin Mapping:</p>
<p dir="auto">Ensure that the pins you're using for Serial1 (RX_PIN and TX_PIN) are not being reconfigured by the M5StamPLC.begin() function. The M5StamPLC library might initialize its own UART or other peripherals on the same pins.</p>
<p dir="auto">Explicitly Reinitialize Serial1 After M5StamPLC.begin():</p>
<p dir="auto">Call Serial1.begin() again after M5StamPLC.begin() to ensure the UART settings are restored:void setup() {<br />
M5StamPLC.begin();<br />
Serial1.begin(38400, SERIAL_8N1, RX_PIN, TX_PIN);<br />
}</p>
<p dir="auto">Use Alternative UART Pins:</p>
<p dir="auto">If the issue persists, try using a different UART (e.g., Serial2) if your hardware supports it. For example:Serial2.begin(38400, SERIAL_8N1, RX_PIN_2, TX_PIN_2);</p>
<p dir="auto">Review M5StamPLC Library Documentation:</p>
<p dir="auto">The M5StamPLC library might have specific requirements or conflicts with certain pins. Refer to the official documentation for details.</p>
<p dir="auto">Debugging:</p>
<p dir="auto">Add debug prints to verify if Serial1 is being initialized correctly:void setup() {<br />
Serial.begin(115200); // For debugging<br />
M5StamPLC.begin();<br />
Serial1.begin(38400, SERIAL_8N1, RX_PIN, TX_PIN);<br />
Serial.println("Serial1 initialized");<br />
}</p>
<p dir="auto">Additional Notes:</p>
<p dir="auto">If the problem is related to the M5StamPLC library's internal UART configuration, you may need to modify the library or contact M5Stack support (<a href="mailto:support@m5stack.com" target="_blank" rel="noopener noreferrer nofollow ugc">support@m5stack.com</a>) for further assistance.</p>
<p dir="auto"><a href="https://chat.m5stack.com/" target="_blank" rel="noopener noreferrer nofollow ugc">https://chat.m5stack.com/</a></p>
]]></description><link>https://community.m5stack.com/topic/7638/m5stamplc-and-serial1</link><guid isPermaLink="true">https://community.m5stack.com/topic/7638/m5stamplc-and-serial1</guid><dc:creator><![CDATA[yuyun2000]]></dc:creator><pubDate>Mon, 23 Jun 2025 18:42:18 GMT</pubDate></item><item><title><![CDATA[SizeOf Structure M5Stack Core2 vs NANO]]></title><description><![CDATA[<p dir="auto">yuyun2000,</p>
<p dir="auto">I wasn't able to get my structure to pass correctly.  I ended up not only changing the double to a float, but I also changed it to another uint16_t.  There was still a 1 byte difference in the sizes of the structure (Nano was 13, M5Stack was 14).  I added the "uint8_t pad1" to the Nano so it was then 14 also.  The comms routines that I have now shows that they both return a 0 (successful) but the data doesn't come across like it does with the Nano to Nano testing.</p>
<p dir="auto">I've decided to give up on sending the Structure and just assemble the data into a String Array and send that.   I have it working as a String, but I'm changing it over to use a null terminated Character Array.</p>
<p dir="auto">Thanks Anyway, it was fun trying!</p>
<p dir="auto">Sir Michael</p>
]]></description><link>https://community.m5stack.com/topic/7632/sizeof-structure-m5stack-core2-vs-nano</link><guid isPermaLink="true">https://community.m5stack.com/topic/7632/sizeof-structure-m5stack-core2-vs-nano</guid><dc:creator><![CDATA[SirMichael]]></dc:creator><pubDate>Sat, 21 Jun 2025 22:28:29 GMT</pubDate></item><item><title><![CDATA[M5 Dial V1.1 CAN bus]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://community.m5stack.com/uid/259432">@davidrubixbattery</a><br />
The compilation errors you're encountering are related to the ESP32CAN library in the Arduino IDE. Specifically, the errors indicate that certain registers and definitions (DPORT_PERIP_CLK_EN_REG, CAN_TX_IDX, CAN_RX_IDX, and ETS_CAN_INTR_SOURCE) are not declared in the current version of the ESP32 Arduino core library you're using.<br />
Steps to Resolve the Issue:</p>
<p dir="auto">Update the ESP32 Arduino Core:</p>
<p dir="auto">Ensure you are using the latest version of the ESP32 Arduino core. Open the Arduino IDE, go to Tools &gt; Board &gt; Boards Manager, search for "esp32", and update to the latest version.</p>
<p dir="auto">Check the ESP32CAN Library:</p>
<p dir="auto">The ESP32CAN library might not be compatible with the latest ESP32 Arduino core. Try using the M5Stack CAN library instead, as it is tailored for M5Stack products.</p>
<p dir="auto">Alternative Library:</p>
<p dir="auto">If the issue persists, consider using the ESP32 TWAI (CAN) API directly in your Arduino sketch. The TWAI API is the newer and recommended way to handle CAN communication on ESP32.</p>
<p dir="auto">Verify Hardware Connections:</p>
<p dir="auto">Ensure the Dial and Isolated CAN bus unit are correctly connected to the specified port (Port A) and that the pins are properly configured in your code.</p>
<p dir="auto">Example Code for M5Stack CAN:<br />
Here’s a basic example for initializing CAN on an M5Stack device:<br />
#include &lt;M5Stack.h&gt;<br />
#include "esp32_can.h"</p>
<p dir="auto">void setup() {<br />
M5.begin();<br />
CAN_init(0, GPIO_NUM_5, GPIO_NUM_4); // Example pins for CAN TX and RX<br />
}</p>
<p dir="auto">void loop() {<br />
// Your CAN communication logic here<br />
}</p>
<p dir="auto">Additional Resources:</p>
<p dir="auto">M5Stack CAN Unit Documentation<br />
ESP32 TWAI API Reference</p>
<p dir="auto"><a href="https://chat.m5stack.com/" target="_blank" rel="noopener noreferrer nofollow ugc">https://chat.m5stack.com/</a></p>
]]></description><link>https://community.m5stack.com/topic/7624/m5-dial-v1-1-can-bus</link><guid isPermaLink="true">https://community.m5stack.com/topic/7624/m5-dial-v1-1-can-bus</guid><dc:creator><![CDATA[yuyun2000]]></dc:creator><pubDate>Wed, 18 Jun 2025 16:16:07 GMT</pubDate></item><item><title><![CDATA[⚠️ HELP: LVGL on M5Stack CoreS3 not detecting touch events ⚠️]]></title><description><![CDATA[<p dir="auto">Hello community,</p>
<p dir="auto">I'm trying to integrate LVGL 9.3.0 with the touch screen on M5Stack CoreS3, but I'm facing an issue: touch events are not being registered correctly in LVGL, even though the touch screen works fine when tested using M5Stack's official example code.</p>
<p dir="auto">📌 Software versions I'm using: ✅ M5Stack CoreS3 (ESP32-S3-based hardware) ✅ LVGL version: 9.3.0 ✅ M5Unified library version: Latest available version (checked via Arduino IDE) ✅ LovyanGFX library version: Latest available version ✅ Arduino IDE version: 1.8.19 ✅ ESP32 Board Support Package: Latest version installed via Board Manager</p>
<p dir="auto">📌 What I’ve tested so far: ✅ The touch screen works correctly using CoreS3.Touch.getDetail(). ✅ LVGL is not detecting touches, suggesting a possible misconfiguration in lv_indev_t. ✅ I've implemented synchronization with CoreS3.update(), but LVGL still does not process touch events.</p>
<p dir="auto">📜 Current code I'm using:</p>
<pre><code class="language-cpp">#include &lt;M5CoreS3.h&gt;
#include &lt;lvgl.h&gt;

// 🛠 Screen instance
M5GFX display;

// 🛠 Callback function for display update in LVGL
void flush_cb(lv_display_t *disp_drv, const lv_area_t *area, uint8_t *color_p) {
    display.pushImage(area-&gt;x1, area-&gt;y1, area-&gt;x2 - area-&gt;x1 + 1, area-&gt;y2 - area-&gt;y1 + 1, (uint16_t*)color_p);
    lv_display_flush_ready(disp_drv);
}

// 🛠 Touch event handling using CoreS3 and advanced debugging
void my_input_read(lv_indev_t *indev, lv_indev_data_t *data) {
    CoreS3.update();
    auto t = CoreS3.Touch.getDetail();

    data-&gt;point.x = t.x;
    data-&gt;point.y = t.y;

    Serial.print("📍 Touch state: "); Serial.println((int)t.state);
    Serial.print("📍 Coordinates → X: "); Serial.print(t.x);
    Serial.print(" Y: "); Serial.println(t.y);

    if (t.state == m5::touch_state_t::touch_begin || t.state == m5::touch_state_t::hold_begin || t.state == m5::touch_state_t::drag_begin) {
        data-&gt;state = LV_INDEV_STATE_PR;
        Serial.println("✅ LVGL has detected the touch!");
    } else {
        data-&gt;state = LV_INDEV_STATE_REL;
    }
}

// 🛠 Creating a test button in LVGL
void create_button(lv_obj_t *parent) {
    lv_obj_t *btn = lv_btn_create(parent);
    lv_obj_set_size(btn, 100, 50);
    lv_obj_align(btn, LV_ALIGN_CENTER, 0, 0);

    lv_obj_t *label = lv_label_create(btn);
    lv_label_set_text(label, "Press");
    lv_obj_center(label);

    lv_obj_add_flag(btn, LV_OBJ_FLAG_CLICKABLE);
}

// 🛠 System initial setup
void setup() {
    auto cfg = M5.config();
    CoreS3.begin(cfg);
    Serial.begin(115200);
    Serial.println("\n🚀 M5Stack CoreS3 initialized with LVGL 9.3.0 🚀\n");

    display.init();
    lv_init();
    display.begin();
    display.setColorDepth(16);

    static lv_display_t *disp_drv = lv_display_create(320, 240);
    lv_display_set_flush_cb(disp_drv, flush_cb);

    // 🚀 Dynamic memory allocation to optimize RAM usage
    static lv_color_t *buf1 = (lv_color_t*)malloc(320 * 50 * sizeof(lv_color_t));
    if (buf1 == NULL) {
        Serial.println("❌ Error: Failed to allocate memory.");
        return;
    }
    lv_display_set_buffers(disp_drv, buf1, NULL, 320 * 50 * sizeof(lv_color_t), LV_DISPLAY_RENDER_MODE_PARTIAL);

    // 🛠 Properly initialize the touch input handler in LVGL
    lv_indev_t *indev = lv_indev_create();
    lv_indev_set_type(indev, LV_INDEV_TYPE_POINTER);
    lv_indev_set_read_cb(indev, my_input_read);

    // 🛠 Create a test button in LVGL
    create_button(lv_scr_act());

    Serial.println("✅ LVGL initialized correctly, waiting for interaction...");
}

// 🛠 Main loop for touch updates and LVGL handling
void loop() {
    CoreS3.update();
    lv_timer_handler();
    delay(5);
}
</code></pre>
<p dir="auto">💡 Has anyone successfully enabled touch detection in LVGL with M5Stack CoreS3? If you have any suggestions, insights, or working code examples, I’d really appreciate your help. 🙏</p>
<p dir="auto">Thanks in advance for any assistance! 🚀 Let’s get this working! 💪🔥</p>
]]></description><link>https://community.m5stack.com/topic/7612/help-lvgl-on-m5stack-cores3-not-detecting-touch-events</link><guid isPermaLink="true">https://community.m5stack.com/topic/7612/help-lvgl-on-m5stack-cores3-not-detecting-touch-events</guid><dc:creator><![CDATA[Robertof]]></dc:creator><pubDate>Thu, 12 Jun 2025 19:12:51 GMT</pubDate></item><item><title><![CDATA[Board Manager 2.1.4 Failure in Arduino 1.8.19 IDE]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://community.m5stack.com/uid/168201">@kuriko</a> I believe so, but now that I've patched M5Unified, I'd need to unpatch and test again. I'll report back if anything further happens.</p>
]]></description><link>https://community.m5stack.com/topic/7565/board-manager-2-1-4-failure-in-arduino-1-8-19-ide</link><guid isPermaLink="true">https://community.m5stack.com/topic/7565/board-manager-2-1-4-failure-in-arduino-1-8-19-ide</guid><dc:creator><![CDATA[wsanders]]></dc:creator><pubDate>Tue, 20 May 2025 21:02:06 GMT</pubDate></item><item><title><![CDATA[How to make m5stickcplus2 mic test in arduino]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://community.m5stack.com/uid/168201">@kuriko</a> yes！I tried this but it is not the frequency-amplitude data?</p>
]]></description><link>https://community.m5stack.com/topic/7553/how-to-make-m5stickcplus2-mic-test-in-arduino</link><guid isPermaLink="true">https://community.m5stack.com/topic/7553/how-to-make-m5stickcplus2-mic-test-in-arduino</guid><dc:creator><![CDATA[meowoha]]></dc:creator><pubDate>Sun, 11 May 2025 19:25:06 GMT</pubDate></item><item><title><![CDATA[Core S3 OTG as USB Host]]></title><description><![CDATA[<p dir="auto">Looking to setup Core S3 as a serial monitor for a micro controller by using the Core S3 as a USBC OTG Host.</p>
<p dir="auto">I'm getting conflicting info on how to use the OTG using the Arduino framework.<br />
There is zero documentation in official m5stack on this.</p>
<p dir="auto">Can anyone point me in the correct direction?   Right now considering trying the ESP32TinyUSB library but if there is a more straightforward way of using the USBC OTG Host mode that would be ideal.</p>
]]></description><link>https://community.m5stack.com/topic/7545/core-s3-otg-as-usb-host</link><guid isPermaLink="true">https://community.m5stack.com/topic/7545/core-s3-otg-as-usb-host</guid><dc:creator><![CDATA[polygonfuture]]></dc:creator><pubDate>Mon, 05 May 2025 02:21:32 GMT</pubDate></item><item><title><![CDATA[M5StickC Plus2 crash when Button State call]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://community.m5stack.com/uid/277547">@restart-au</a> said in <a href="/post/29026">M5StickC Plus2 crash when Button State call</a>:</p>
<blockquote>
<p dir="auto">StickCP2.Display.printf("%d \%", vol);</p>
</blockquote>
<p dir="auto">I don't think that backslash-percent means anything special in printf(). You probably want %% instead to get a literal percent sign in the output. I don't know what happens with what you've used, but a crash would not surprise me.</p>
]]></description><link>https://community.m5stack.com/topic/7543/m5stickc-plus2-crash-when-button-state-call</link><guid isPermaLink="true">https://community.m5stack.com/topic/7543/m5stickc-plus2-crash-when-button-state-call</guid><dc:creator><![CDATA[wjcarpenter]]></dc:creator><pubDate>Sun, 04 May 2025 19:36:31 GMT</pubDate></item></channel></rss>