πŸ€–Have you ever tried Chat.M5Stack.com before asking??😎

Subcategories

  • You can discuss ESPHome related issues here, share your yaml and projects.

    21 Topics
    34 Posts
    D
    Hey! I’m currently having an issue with my stick s3 which arrived literally a couple days ago. When plugged into power, it makes a sound similar to that of a clock ticking while the green LED flashes/blinks. Sometimes it’s a high pitched squeak. When plugged into my computer, it isn’t showing up on the m5burner or any other web based tools. It was working perfectly fine previously however. When unplugged the device does nothing. I’ve tried entering the flash firmware mode by pressing and holding the power button while plugging in but no luck. Also tried pressing the button twice in hopes that the blinking stops, but nope Was using Bruce firmware Thank you!
  • Squareline Studio and LVGL Discussion

    6 Topics
    19 Posts
    S
    @δΏΊγŒγ‚¬γƒ³γƒ€γƒ γ  said in LVGL performance problem: I applied LVGL on stickc-plus2,with TFT_eSPI's st7789v2 driver.But the refreshing rate is very low (while doing "load screen anim").I know stickc had good performance on drawing screen (by watching the video of M5stick T-Lite Thermal tutorial). And the LVGL also has a good performance through Dial-ESP32-S3 and Din-Meter demonstration video. So what is the reason of such low performance. Cound it be the TFT_eSPI library? I’ve seen similar issues on the StickC-Plus2. It could be due to TFT_eSPI settings, try increasing the SPI frequency or enabling DMA. Also, check your LVGL buffer config; full buffering helps with performance.
  • Discuss all things UIFlow here. Bugs, Improvements, Guides etc...

    1k Topics
    4k Posts
    C
    Im trying to run uiflow, but getting api error. im trying to login but credentials are failing. reset pw takes me to M5. what do i do?
  • M5Stack is programmable with the Arduino IDE. Here you can troubleshoot your issues and share Arduino code and libraries

    468 Topics
    2k Posts
    B
    This is the closest I got on a code which provides some sort of acceleration/deaceleration on jumping btw positions. I wonder if is there an official way to achieve this smoothly. Thanks #include "unit_rolleri2c.hpp" #include <M5Unified.h> /* Going to random position every 1 second - trying to move with ease in/out, but very artificial/jittery - not smooth. */ UnitRollerI2C RollerI2C; const int32_t UNITS_PER_DEGREE = 100; const int32_t POSITION_TOLERANCE = 150; // ~1.5Β° arrival threshold const uint32_t MOVE_DURATION_MS = 3000; // total time per move (ms) β€” tune 1000–5000 const uint32_t STEP_MS = 40; // trajectory update interval (ms) const uint32_t PAUSE_MS = 1000; // pause at target before next move int32_t basePosition = 0; // ── Ease-in / ease-out using a sine curve ────────────────────────────────── // t=0.0 β†’ 0.0 | t=0.5 β†’ 0.5 | t=1.0 β†’ 1.0 // Accelerates from rest, decelerates to rest β€” smooth S-curve. float easeInOut(float t) { return (1.0f - cosf(t * PI)) / 2.0f; } // Drives from startUnits β†’ targetUnits over MOVE_DURATION_MS with ease in/out. // Returns true when the motor confirms arrival within tolerance. bool easedMoveTo(int32_t startUnits, int32_t targetUnits) { uint32_t moveStart = millis(); while (true) { uint32_t elapsed = millis() - moveStart; float t = min((float)elapsed / (float)MOVE_DURATION_MS, 1.0f); // Compute eased intermediate setpoint float eased = easeInOut(t); int32_t intermediate = startUnits + (int32_t)((targetUnits - startUnits) * eased); RollerI2C.setPos(intermediate); // Once we've sent the final setpoint, check arrival if (t >= 1.0f) { int32_t actual = RollerI2C.getPosReadback(); if (abs(targetUnits - actual) <= POSITION_TOLERANCE) { return true; // βœ… arrived } // Give a small extra window for the PID to settle if (elapsed > MOVE_DURATION_MS + 1000) { return false; // ⏱️ timed out even after easing finished } } delay(STEP_MS); } } int32_t degreesToUnits(float deg) { return (int32_t)(deg * UNITS_PER_DEGREE); } float unitsToDegrees(int32_t u) { return u / (float)UNITS_PER_DEGREE; } void setup() { M5.begin(); Serial.begin(115200); delay(500); randomSeed(analogRead(0)); bool found = RollerI2C.begin(&Wire, 0x64, 2, 1, 400000); if (!found) { Serial.println("❌ Roller485 NOT found on I2C! Check wiring."); while (true) delay(1000); } Serial.println("βœ… Roller485 found!"); Serial.print("Vin (x0.01V): "); Serial.println(RollerI2C.getVin()); Serial.print("ErrorCode: "); Serial.println(RollerI2C.getErrorCode()); RollerI2C.setOutput(0); RollerI2C.setMode(ROLLER_MODE_POSITION); RollerI2C.setPosMaxCurrent(80000); RollerI2C.setOutput(1); delay(100); basePosition = RollerI2C.getPosReadback(); Serial.print("Base position (raw): "); Serial.println(basePosition); Serial.println("Ready. Starting eased random position loop...\n"); delay(500); } int32_t currentTarget = 0; // tracks last target so we ease FROM it void loop() { // Random angle offset from base: -180Β° to +180Β° float targetDegrees = random(-180, 181); int32_t targetUnits = basePosition + degreesToUnits(targetDegrees); int32_t fromUnits = RollerI2C.getPosReadback(); // start from actual current pos Serial.print("➑️ "); Serial.print(unitsToDegrees(fromUnits - basePosition), 1); Serial.print("Β° β†’ "); Serial.print(targetDegrees, 1); Serial.println("Β° (easing...)"); bool arrived = easedMoveTo(fromUnits, targetUnits); float actualDeg = unitsToDegrees(RollerI2C.getPosReadback() - basePosition); if (arrived) { Serial.print("βœ… Arrived at "); } else { Serial.print("⏱️ Stopped at "); } Serial.print(actualDeg, 1); Serial.println("Β°"); Serial.print(" ErrorCode: "); Serial.println(RollerI2C.getErrorCode()); Serial.println(); delay(PAUSE_MS); // pause 1 second at target }
  • Discuss all things Micropython here. Get help, Recommend Libraries, Report Bugs and Improvements

    218 Topics
    898 Posts
    J
    @pabou try using uiflow to generate the code, then peek copy from there.
  • For discussion and assistance with M5EZ.

    13 Topics
    62 Posts
    J
    using the mentioned changes hello_world example did compile and got uploaded to my core2. However , nothing is shown on screen, screen remains black.
  • Discuss all things related to ESP - IDF, Espressifs IoT Development Framework

    29 Topics
    101 Posts
    felmueF
    Hello @daniyyel ah, ok. So the correct documentation is here. Have a look at the code examples in Quick Start Guide to see how the M5IOE1 needs to be programmed to turn on power etc. The function is called SIM7028_EN() and first turns on power then resets the modem. Thanks Felix
  • UiFlow 2.0 related issues discussion.

    365 Topics
    2k Posts
    O
    Good afternoon from Russia. Sorry for my English. I'm writing through a translator. I have your LTE modem, the NB-IoT2. And it's been sitting idle for almost a year. I wanted to use the NB-IoT2 with a STAM PLC to control a relay. But YOU still don't have proper documentation. Or an example of how it works. Between the modem and the phone. Will the documentation ever be completed?
  • Programming Hat RoverC+ w/ M5StickC Plus in UIFlow2.0?

    1
    0 Votes
    1 Posts
    1k Views
    No one has replied
  • Programming Atom Matrix with external FTDI?

    2
    0 Votes
    2 Posts
    2k Views
    felmueF
    Hello @StackerBob unfortunately no, to manually put ESP32 into download mode GPIO1, GPIO3 and GPIO0 are required, none of them are externally accessible. Also see schematic here. Thanks Felix
  • m5Paper Sleep and Wake up

    7
    0 Votes
    7 Posts
    4k Views
    B
    @ajb2k3 That sounds exciting. Do you mean another ESP that functions as an ULP?
  • M5StickCPlus Card Mount Failed

    1
    0 Votes
    1 Posts
    1k Views
    No one has replied
  • AtomS3: No serial data received.

    3
    0 Votes
    3 Posts
    3k Views
    M
    Felmue, you genius you, THANK YOU! Newbie high-five.
  • M5Stack Atom S3 upload problems

    failed to conn
    2
    0 Votes
    2 Posts
    2k Views
    felmueF
    Hello @samarkh please see this post about how to get M5AtomS3 into download mode. Re format code : click onto the COMPOSE(?) at the top right corner of the edit field and learn about markdown. (or follow this link) Thanks Felix
  • Use Glass Unit on Raspberry Pi

    1
    0 Votes
    1 Posts
    1k Views
    No one has replied
  • Installing Linux on CoreS3

    6
    0 Votes
    6 Posts
    7k Views
    S
    Have tried to burn the CoreS3 Linux Port with the M5Burner. But there is no output on the uart0, nor on the USB-C virtual com port. Also nothing on the screen. How did you make it ?
  • M5cardputer com is reading it as DFROBOT-Beetle

    m5stamps3 m5cardputer comissues
    4
    0 Votes
    4 Posts
    5k Views
    M
    I don't know if that solved your issue, but if you havent done so yet, you have to install the M5 Board Manager in the Arudino IDE board manager settings or M5 units will not appear in the board list. Go to this page and follow the steps for your operating system: M5 Stack Cardputer How to Article By the way, I ordered my cardputer today and when it arrives I will create some wall mount models for 3d printing. Watch the projects page. I already have some nice M5Stack wall mounts and travel cases up there. :)
  • Private UIFLow Server code test (CM4 Stack)

    1
    0 Votes
    1 Posts
    1k Views
    No one has replied
  • Example OTA for AtomS3

    1
    0 Votes
    1 Posts
    1k Views
    No one has replied
  • M5 Stack ThermalOnline Cat-M Original Application HELP!

    3
    0 Votes
    3 Posts
    2k Views
    C
    @felmue Thank You !!!
  • 0 Votes
    1 Posts
    1k Views
    No one has replied
  • How to lock m5stack software (firmware encryption)

    6
    0 Votes
    6 Posts
    8k Views
    R
    Enabling firmware encryption on the ESP32, which is the microcontroller used in M5Stack devices, involves a few steps. Please note that the specifics may vary based on the development environment and tools you are using. Here are general steps you can follow using the Arduino IDE: Install the ESP32 board support: Open Arduino IDE. Go to "File" -> "Preferences." In the "Additional Boards Manager URLs" field, add the following URL: https://dl.espressif.com/dl/package_esp32_index.json Click "OK" to close the preferences dialog. Go to "Tools" -> "Board" -> "Boards Manager." Search for "esp32" and install the "esp32" package. Install the M5Stack library: Go to "Sketch" -> "Include Library" -> "Manage Libraries." Search for "M5Stack" and install the M5Stack library. Update the M5Stack library to the latest version: Open the "Library Manager" again and check if there are updates available for the M5Stack library. If yes, update to the latest version. Enable Flash Encryption in the Arduino IDE: Open your Arduino sketch. In the Arduino IDE, go to "Tools" -> "M5Stack" -> "Flash Mode" and select "QIO." *Go to "Tools" -> "M5Stack" -> "Flash Frequency" and select "40MHz." *Go to "Tools" -> "M5Stack" -> "Flash Size" and select "16MB." *Finally, go to "Tools" -> "M5Stack" -> "Partition Scheme" and select "Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)." *Enable Flash Encryption in Code: In your Arduino sketch, add the following line at the beginning, before the setup() function: Preferences preferences; In the setup() function, add the following lines: In the setup() function, add the following lines: preferences.begin("yourAppName", false); preferences.putString("yourEncryptionKey", "your32ByteEncryptionKeyHere"); preferences.end(); // Rest of your setup code... } Replace "yourAppName" with a unique name for your application, and replace "your32ByteEncryptionKeyHere" with a 32-byte encryption key. Upload the code to your M5Stack device: Connect your M5Stack device to your computer. Select the correct port and board in the Arduino IDE. Click the "Upload" button to upload the code to your M5Stack. These steps should enable flash encryption for your M5Stack firmware. Keep in mind that once flash encryption is enabled, you need to provide the correct encryption key when uploading new firmware. Otherwise, the new firmware won't be written to the device.
  • 'USBSerial' was not declared in this scope

    4
    0 Votes
    4 Posts
    5k Views
    I
    Thanks that worked!
  • M5Paper font

    11
    0 Votes
    11 Posts
    20k Views
    ScheduleDisplayS
    Hello, I Got the GFX font header file (by converting the Roboto.ttf file). Loaded the font file using canvas.setFreeFont(&Roboto_Medium50pt7b) and then display the text using canvas.printf(textString.c_str());. It is working fine and display the text properly but when I am giving some special characters Àâü then they are not appearing on M5stack paper. Can someone please guide me what I am doing wrong? Am I missing something? Thanks The link to my question can be found here
  • Driver to talk to m5stack device over USB?

    3
    0 Votes
    3 Posts
    3k Views
    BergKatseB
    Good thought, that solved the problem! Atom Lite works fine at 115200. Thanks!
  • How to prevent firmware copy

    1
    0 Votes
    1 Posts
    2k Views
    No one has replied
  • This topic is deleted!

    1
    0 Votes
    1 Posts
    5 Views
    No one has replied
  • 0 Votes
    2 Posts
    5k Views
    R
    @scheduledisplay Hello. Did you manage by any chance to use M5Burner to flash your own code written in Arduino?