πŸ€–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 recreate Rock Paper Scissors demo

    1
    0 Votes
    1 Posts
    2k Views
    No one has replied
  • 0 Votes
    1 Posts
    2k Views
    No one has replied
  • Apikey.. M5flow... PuppuC...

    2
    0 Votes
    2 Posts
    2k Views
    ajb2k3A
    @jukka-kahkonen To use the API key you need to install the UIFlow firmware using M5Burner. Once installed and the device connects to the wifi, the API key will be shown on the screen. The Puppy firmware was written in Arduino so does not have the api key. BTW the API keys are randomly generated with each new firmware install.
  • Downloading updates - fails

    8
    0 Votes
    8 Posts
    15k Views
    ajb2k3A
    Rhe problem is the main server is/was behind the Great Firewall of China and so with more and more uses trying to access the server, the more often the server will crash
  • M5Stack Core2 function definitions & arguments

    3
    0 Votes
    3 Posts
    4k Views
    ajb2k3A
    I think it’s Xpos, Ypos, width, height
  • Question about servos

    5
    0 Votes
    5 Posts
    6k Views
    ajb2k3A
    Yes and James Briton uses them a lot but I can’t for the life of me remember their name.
  • Anybody can help me translate from arduino to UIFlow ?

    1
    0 Votes
    1 Posts
    2k Views
    No one has replied
  • 0 Votes
    2 Posts
    2k Views
    felmueF
    Hello @oetzevandenbroek I think you are close. Try M5.Power.setExtPwr(false). Below is how it is defined: /// Set power supply to external ports. /// @param enable true=output / false=input /// @param port_mask for M5Station. ext_port (bitmask). void setExtPower(bool enable, ext_port_mask_t port_mask = (ext_port_mask_t)0xFF); In your case you want to set it as input to the M5Core2. Thanks Felix
  • Timer Camera onboard image processing tutorials

    1
    0 Votes
    1 Posts
    2k Views
    No one has replied
  • Looking for M5Stick-C Plus and U8g2 library for ST7789v2 TFT driver

    1
    0 Votes
    1 Posts
    2k Views
    No one has replied
  • M5Stack Unit2 switch mode by sending command in serial port

    5
    0 Votes
    5 Posts
    7k Views
    C
    Getting closer... This is the string to change modes. Function switch Switch between different recognition functions by clicking the navigation bar of the function page or sending JSON commands through Serial Port communication. Note: Except at the end of the sent command string, no line breaks are allowed in other positions. { "function": "Camera Stream", "args": "" } BUT this is what I get in return {"error":"invalid json format."} {"error":"invalid json format."} {"error":"invalid json format."} {"error":"invalid json format."} {"error":"Command is not supported"} {"error":"invalid json format."} {"error":"invalid json format."} Anyone have any ideas? I'm sending the string through a serial termanal. CR,LF
  • 0 Votes
    2 Posts
    4k Views
    teastainT
    @l2m2k2 Hi, this is just demo software for you to see before exploring with your own sketches! You can view the source code for hints programming it yourself. I would not worry about it!
  • COM.X 868 doesn't response in Com Monitor

    m5go
    1
    0 Votes
    1 Posts
    3k Views
    No one has replied
  • ATOM-DTU-NB-IOT no connect to sim7020G Module

    7
    0 Votes
    7 Posts
    8k Views
    felmueF
    Hello @roadfox in case you are still looking for a suitable NB-IoT SIM card. I recently got one from Miotiq which works fine for me. See here for more detail. Thanks Felix
  • This topic is deleted!

    1
    0 Votes
    1 Posts
    8 Views
    No one has replied
  • 0 Votes
    5 Posts
    6k Views
    T
    was able to get this resolved be removing/re-installing the drivers a bunch of times. Appreciate the assist!
  • M5StickC Driver problem ?

    5
    0 Votes
    5 Posts
    5k Views
    D
    I am a little ashamed, it was not a driver problem. In M5burner I didn't give the information about the wifi which prevented me to burn my M5Stick. It's confusing, the error message is about a port problem. Thank you all for your answers
  • M5Core2 cannot upload failed to write to target RAM

    3
    0 Votes
    3 Posts
    4k Views
    V
    I also encountered the same problem when using M5 core 2. My macOS system version is 10.14.6
  • M5Stick-C display shows the words "Not Found."

    4
    0 Votes
    4 Posts
    5k Views
    H
    try the following: set the stick to power OFF plug in USB (it will automatically power ON) look in M5Burner (or in your computers device manager) if the serial port appears. If not there is a driver issue on your computer or your USB cable might have broken wires (once happened to me) if the port appears burn the factory test or UiFlow I suppose there no need to put the stick in any special mode to burn the firmware. the internal USB chip will do that for you while the programm downloads. Once the UiFlow Firmware is running you have to set the mode for wifi or usb if not already done while burning firmware.
  • Core2 Touchscreen Rotary Dial

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