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

Subcategories

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

    20 Topics
    33 Posts
    J
    Hi, I have several ATOM PICO Lite (grey) modules that when I connect them with an USB cable to my laptop, a COM port is shown in my WIN11 device list under Ports (COM & LTP).When I connect to the device in ESPHome, I can see the com port in the pop-up box and when I select the COM port I can establish a connection and install software on the PICO lite. Problem: I recently bought several new ATOM ECHO S3R. When I plug these to my USB port, I dont see a COM port appearing in my Win11 Device list. As a result I can also not connect from ESPHome to the device. I tried to install drivers from this site https://ftdichip.com/drivers/vcp-drivers/ but that did not help. Any tips what I can do to communicate with my new ATOM S3R modules? Thanks for tips! Regards, Jules
  • 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
    S
    I have the same problem too. It works with 2.4.2.
  • 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
    99 Posts
    felmueF
    Hello @daniyyel I guess you already read the official documentation here? What have you tried so far? How do you power it? Could you share some code? Thanks Felix
  • UiFlow 2.0 related issues discussion.

    363 Topics
    2k Posts
    T
    Similar here, UIFlow 1 doesn't work either. Password reset didn't help.
  • Unable to compile with platformio on vscode

    3
    1
    0 Votes
    3 Posts
    3k Views
    W
    i downloaded and installed the sources into the specified folder. and also checked the path. but still can not be found..
  • No LED support on new releases for the Atom Lite

    5
    0 Votes
    5 Posts
    6k Views
    M
    Now I tried to do it extrem more on a basic level with the latest available versions of everything with Arduino #include <Arduino.h> #include <M5Atom.h> void setup() { M5.begin(true, false, true); M5.dis.begin(); } void loop() { M5.update(); M5.dis.drawpix(0, 0xFF0000); delay(500); } I assumed that this simply meant a permanent "RED", but it results in a random play of colours.
  • GPIO pin behaviour at startup

    2
    0 Votes
    2 Posts
    4k Views
    R
    I'm having the same issue - did you find a workaround?
  • Unable to Export Flash Memory of my Atom Lite

    1
    0 Votes
    1 Posts
    2k Views
    No one has replied
  • Cannot print with Free Font

    1
    0 Votes
    1 Posts
    2k Views
    No one has replied
  • M5Burner window 'too large' for display (linux)

    2
    1 Votes
    2 Posts
    5k Views
    A
    Because of my poor eyesight (which cannot be improved by spectacles), I am testing on a huge display with a resolution of 3840 x 2160, and I have set System Settings - Displays - Scale to 300%. According to xwininfo, this results in a Signal window that is 3040 x 2090 in size. Unfortunately, this causes the bottom 6% of Signal's window to be off the bottom of the screen, which prevents it from showing what I am typing in the text field when sending a message because Gnome occupies the top 200 or so pixels with its Activities menu bar and the window title bar (which is not included in the 2090).Attempts to resize the Signal window fail: Gnome refuses to let me size it less than 2090 pixels high. I am also not able to maximise the window to fill the screen (the Maximise command is greyed out when I press Alt-Space, and nothing happens when I double-click the title bar). In main.js there is a setting MIN_HEIGHT = 550 but I'm not sure how that 550 ended up being 2090 (it seems more is at play than simply multiplying it by 300%). I have not yet figured out how to build a modified version so I can see if reducing that MIN_HEIGHT would solve the problem. If I were designing Gnome I would have made the Scale multiplier apply to everything except minimum window sizes, to work around apps that enforce them without realising what happens when Scale is applied (there are quite a few apps out there that do this, for example Zoom). But until the Gnome team are able to change it on their side, I think it would be polite for all app writers to consider setting their minimum size smaller: perhaps try reducing that 550 to 400 and check the Signal window still works when resized down to its new minimum height? as I hope this would make it more usable on a Gnome desktop when Scale has been applied to the desktop. In the case of this particular monitor, I am able to partly work around the problem by holding down the Super key (also known as the Windows key) while clicking on the window and dragging it: this lets me move the window slightly off the top of the screen (so that its titlebar is not visible and its menubar is only half visible), so that the "Send a message" box becomes visible at the bottom. Alternatively I can use the Alt-F7 shortcut to start moving the window with the arrow keys, and push it partly off the top of the screen in the same way. But if the monitor were any smaller, then I'm not sure that workaround would be enough..
  • Easiest way to flash a new unit from a .bin file?

    3
    0 Votes
    3 Posts
    5k Views
    ajb2k3A
    The problem is that esptool requires certain python versions and so they need to have that as well. An alternative is a docker package which has everything in it ready.
  • How to install m5tough library in Arduino IDE?

    3
    0 Votes
    3 Posts
    3k Views
    F
    @flypeek said in How to install m5tough library in Arduino IDE?: [image: 1678876754522-snap1-resized.jpg] [image: 1678876779251-snap2-resized.jpg] https://docs.m5stack.com/en/quick_start/core2/arduino
  • Libraries/Frameworks/Software for GUI design for M5Core2

    7
    0 Votes
    7 Posts
    18k Views
    T
    Apologies for resurrecting an old thread, but have you seen SquareLine Studio? If you’re still designing UI’s for your m5core2 you might like to take a look.
  • Arduino get_apikey()

    5
    0 Votes
    5 Posts
    5k Views
    P
    @holofloh Thanks, this is exactly what I was looking for. PD
  • M5Burner not running on Mac Ventura

    3
    0 Votes
    3 Posts
    4k Views
    M
    Yes this works .. its in the tab "Privacy and Security" and there I had to switch from "Appstore and verified developer" to "Appstore" and then open the M5Burner again and confirm "Still open". Now it works on every start.
  • This topic is deleted!

    1
    0 Votes
    1 Posts
    39 Views
    No one has replied
  • Limit to 2 Decimals in labels in UIFLOW

    3
    0 Votes
    3 Posts
    4k Views
    J
    Great help. Thanks.
  • POE Camera: Failed to connect burner nvs

    2
    2
    0 Votes
    2 Posts
    2k Views
    M
    Are you using the ESP32 Downloader Kit? In my case ESP32 Downloader Kit and I installed the ESP32 Downloader Kit's Driver, and it is not working. I was able to do it. This may not be the case for you. I hope this will be of some help to you. β– Reference Site https://docs.m5stack.com/en/unit/poe_cam CONTENTS -> SPECIFICATIONS -> Notes https://docs.m5stack.com/en/accessory/esp32_downloader_kit
  • POE Camera: Can I change the mac address?

    2
    4
    0 Votes
    2 Posts
    2k Views
    M
    I can't even get it to this stage, what tutorial did you use or how did you get it to connect?
  • M5Burner

    4
    0 Votes
    4 Posts
    5k Views
    ajb2k3A
    Esp32 C3 and C3U is not supported in UIFLOW but is supported by mainstream Micropython. You have to flash the firmware without usb for it to work.
  • StampS3 Bootloop issue

    1
    0 Votes
    1 Posts
    2k Views
    No one has replied
  • Instructions for creating an image to load onto a M5 Core2

    2
    0 Votes
    2 Posts
    3k Views
    ajb2k3A
    It should been my WIP handbook located in here https://github.com/Ajb2k3/UIFlowHandbook
  • How to use "pushToSprite" in Core2

    2
    0 Votes
    2 Posts
    4k Views
    W
    Isn't the method called pushSprite? On a M5StickC-Plus, I use: setup(): TFT_eSprite sgraph = TFT_eSprite(&M5.Lcd); ... sgraph.createSprite(GRAPHW, GRAPHH); ... loop(): ... sgraph.pushSprite(TEXTW, 0); ....
  • Image as button

    3
    1 Votes
    3 Posts
    4k Views
    J
    This works great, thanks!