πŸ€–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
    100 Posts
    D
    the atompdu2-nb-iot is v1.1 has an io_exp to manage the power/reset of the sim7028, but so far all I found out that it's an M5IOE1, at 0x6f, but no idea how to continue.
  • UiFlow 2.0 related issues discussion.

    363 Topics
    2k Posts
    T
    Similar here, UIFlow 1 doesn't work either. Password reset didn't help.
  • This topic is deleted!

    1
    0 Votes
    1 Posts
    1 Views
    No one has replied
  • Program Bala2 Fire

    2
    0 Votes
    2 Posts
    2k Views
    kurikoK
    @Edoardo_27 have you tried official examples: https://uiflow-micropython.readthedocs.io/en/latest/module/bala2.html https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Application/Bala2
  • How to disable M5stack fire power saving

    4
    0 Votes
    4 Posts
    3k Views
    felmueF
    Hello @peolsolutions just an FYI: M5Stack Fire doesn't have an AXP192 PMU. I get the feeling some of your posts are AI generated, no? If I am correct I'd appreciate if you could first verify the technical facts before posting. Thank you very much for your understanding. Thanks Felix
  • MQTT connection error

    5
    0 Votes
    5 Posts
    3k Views
    robskiR
    8883 or 1883 ? [image: 1741767643038-mqtt0.png]
  • Cardputer + Wokwi

    1
    0 Votes
    1 Posts
    1k Views
    No one has replied
  • compiling sensor module firmware

    4
    0 Votes
    4 Posts
    3k Views
    S
    For compiling the firmware from the M5-PbHUB-Internal-FW repo, try using the Arduino IDE or PlatformIO. Both are open-source and offer a more modern experience. You can also use the command line with PlatformIO, which is pretty flexible.
  • please support M5 Burner in linux arm64

    3
    0 Votes
    3 Posts
    2k Views
    ajb2k3A
    @kuriko ESPtool is a nightmare to use, I know I have tried. We need an Arm64 port for the Raspberry Pi
  • This topic is deleted!

    3
    0 Votes
    3 Posts
    1k Views
  • M5Unified 0.2.3 broken on PaperS3

    4
    0 Votes
    4 Posts
    3k Views
    felmueF
    Hello @wsanders I think these compiler error have been fixed (see here), but after tagging the library. I guess it will be in M5Unified 0.2.4. Thanks Felix
  • M5Dial TFT_eSPI pinout

    17
    1 Votes
    17 Posts
    16k Views
    gordshG
    @SadE54 I believe it is.
  • Disable WiFi completly

    1
    0 Votes
    1 Posts
    917 Views
    No one has replied
  • M5Dial - bricked? Twice? No, some help needed

    3
    0 Votes
    3 Posts
    1k Views
    robskiR
    as long comport is visible when M5Dial is connencted then you should be able to reload firmware or just use one of Easyloader samples from M5Dial documents web page
  • Controlling M5 Stamp Fly without joystick

    1
    0 Votes
    1 Posts
    820 Views
    No one has replied
  • Has anyone gotten M5.Rtc.setAlarmIRQ to work on ESP32S3? for

    3
    0 Votes
    3 Posts
    2k Views
    felmueF
    Hello @wsanders you answered your question yourself - power off functionality is not implemented yet on M5PaperS3 and therefore RTC alarms do not work. Some background (as I understand it). Some M5Stack devices - like M5Paper (non S3 version) - can not power off while being powered from USB so the current code in Power_Class does the following: it sets up both, RTC alarm and ESP sleep functions (e.g. deep sleep and light sleep). It then first attempts to power off - which works when powered from battery, so the code execution ends here. However when powered from USB, power off does nothing and the 'backup' ESP sleep functions take over. So with M5PaperS3 and the current state of Power_Class when you call timerSleep(int seconds) it works because ESP sleep function is setup and can take over. However when you call the other timerSleep() functions nothing happens as the ESP sleep functions are not setup here and power off isn't implemented yet. And when you call setAlarmIRQ(30) and powerOff() manually nothing happens either - same reason again - power off is not implemented yet. BTW: you can still test your code though - during the 30 seconds you can double-click the side button to actually power off M5Paper and when the time is up it should power on again. Thanks Felix
  • This topic is deleted!

    1
    0 Votes
    1 Posts
    3 Views
    No one has replied
  • Solution: Getting decent looking fonts on PaperS3

    1
    2
    1 Votes
    1 Posts
    1k Views
    No one has replied
  • how to implement gradient arcs/circles

    2
    1
    0 Votes
    2 Posts
    2k Views
    robskiR
    @mukul_100_ i would recommend to study some of YT VolosR examples of his approach to UI
  • M5Dail platformio setup problems

    3
    0 Votes
    3 Posts
    2k Views
    B
    @felmue it works,great. thank you felmue.
  • UIFLow2.0 Cardputer Run vs. Download screen flip

    2
    1
    0 Votes
    2 Posts
    2k Views
    F
    @DumpsterFire add a screen rotation 90 degree builtin statement, download and test again.
  • Create Software / M5Burner sub-category

    m5burner
    1
    0 Votes
    1 Posts
    1k Views
    No one has replied