🤖Have you ever tried Chat.M5Stack.com before asking??😎

Subcategories

  • 551 Topics
    2k Posts
    H
    @Danieldsouza I prefer to use KiCAD for schematic and PCB design. The software is open source It runs on Windows, Linux, Mac there is a strong community there is a ton of libraries for thousands of components some part distributor and assembling factories provide their own library or allow symbol and footprint download making your own symbols and footprints is very easy design rule checking I am not an advanced user but managed to make a 4-layer PCB after watching a few tutorial videos. Independend of the EDA Tool make sure you avoid the common tripping hazard like missing blocking caps or unwanted ground loops.
  • When you meet problems using M5Stack, we help you solve it.

    201 Topics
    990 Posts
    S
    不小心下载了一个imu什么的……咔咔一顿后……我关了重新开……,但还是不会动,只会左右动,然后跳舞的话只会亮灯,不会动,只能左右转动……
  • 505 Topics
    2k Posts
    D
    Hopefully I can shed a little light on this topic. The AIN4-20mA unit uses a STM32 processor to handle the I2C interface in software. For some reason, the timing is not wholly compatible with the Raspberry Pi kernel I2C drivers. However, the Espressif I2C implementation is a lot more tolerant and flexible and works just fine. That's why it works with the M5 controllers. There was a an update to the github repo for this unit's firmware (https://github.com/m5stack/M5Module-4-20mA-Internal-FW) which changed the I2C library that was used. It's possible that this will fix it, but I haven't bothered to set up a STM32 development system to try it. If you really want to use a Pi or other Linux host board, you could use any inexpensive ESP device (like an M5Stamp) as a go-between. Another option is to use something like the Arduino UNO Q, which runs Linux on the main processor and allows you to run C++ code on the STM32 microcontroller to talk to I2C devices. It's really better to run real-time control on a separate microcontroller anyway.
  • 1k Topics
    6k Posts
    Y
    @felmue Unfortunately, I can't find the AXP dump from that condition to double check but the current loop was there and was very annoying! Oh, I think I missed to specify that the charging current of the LiPo cell was limited from registers to 360mA! It was definetly a current loop but I solved it and this is what matters... VBUS must be set to OFF when EXTEN is Enable otherwise the AXP IPS will try to charge the battery from itself after the voltage is raised to 5V through SY7088! Cheers, Adrian
  • 55 Topics
    203 Posts
    J
    I have been able to get a program to work that uses the M5EchoBase library but no luck using the unified library. For example the simple program below doesn't work. #include <M5Unified.h> void setup() { // 1. Initialize M5Unified delay(1000); // Delay for a moment to allow the system to stabilize. auto cfg = M5.config(); cfg.serial_baudrate = 115200; M5.begin(cfg); // 2. Configure the Speaker for the Atomic Audio Base (ES8311) // We access the speaker configuration directly via M5.Speaker.config() auto spk_cfg = M5.Speaker.config(); // Set pins for Atomic Audio Base (ES8311) spk_cfg.pin_bck = 8; // BCLK spk_cfg.pin_ws = 6; // LRCK (WS) spk_cfg.pin_data_out = 5; // DAC (DOUT) spk_cfg.i2s_port = I2S_NUM_0; // Configure for external codec (not internal DAC) spk_cfg.use_dac = false; spk_cfg.sample_rate = 44100; // Apply the configuration M5.Speaker.config(spk_cfg); // 3. Start the speaker M5.Speaker.begin(); // 4. Set volume (0-255) M5.Speaker.setVolume(128); } void loop() { M5.update(); // Play a 1000 Hz tone for 1000 milliseconds (1 second) M5.Speaker.tone(1000, 1000); // Wait for the tone to finish delay(1000); // Small delay before next loop delay(1000); } Is there no way to set up the ES8311 codec without using M5EchoBase? strangely if I run the program below then load the above program the tone works? But I can't stick the M5.Speaker.tone(1000, 1000); command in the program below and have it work. Does anyone know how to play a tone using only the Unified library from an AtomS3R into a Atomic Audio Base (ES8311 codec)? #include <M5Unified.h> #include <M5EchoBase.h> #if defined(CONFIG_IDF_TARGET_ESP32S3) #define RECORD_SIZE (1024 * 400) #elif defined(CONFIG_IDF_TARGET_ESP32) #define RECORD_SIZE (1024 * 400) #endif #if (ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 0, 0)) M5EchoBase echobase; #else M5EchoBase echobase(I2S_NUM_0); #endif static uint8_t *buffer = nullptr; // Pointer to hold the audio buffer. void setup() { delay(1000); // Delay for a moment to allow the system to stabilize. auto cfg = M5.config(); cfg.serial_baudrate = 115200; M5.begin(cfg); // Initialize the EchoBase with ATOMS3 pinmap. #if defined(CONFIG_IDF_TARGET_ESP32S3) if (!echobase.init(44100 /*Sample Rate*/, 38 /*I2C SDA*/, 39 /*I2C SCL*/, 7 /*I2S DIN*/, 6 /*I2S WS*/, 5 /*I2S DOUT*/, 8 /*I2S BCK*/, Wire) != 0) { Serial.println("Failed to initialize EchoBase!"); while (true) { delay(1000); } } #elif defined(CONFIG_IDF_TARGET_ESP32) // Initialize the EchoBase with ATOM pinmap. if (!echobase.init(44100 /*Sample Rate*/, 25 /*I2C SDA*/, 21 /*I2C SCL*/, 23 /*I2S DIN*/, 19 /*I2S WS*/, 22 /*I2S DOUT*/, 33 /*I2S BCK*/, Wire) != 0) { Serial.println("Failed to initialize EchoBase!"); while (true) { delay(1000); } } #endif echobase.setSpeakerVolume(80); // Set speaker volume to 70%. echobase.setMicGain(ES8311_MIC_GAIN_0DB); // Set microphone gain to 0dB. buffer = (uint8_t *)malloc(RECORD_SIZE); // Allocate memory for the record buffer. // Check if memory allocation was successful. if (buffer == nullptr) { // If memory allocation fails, enter an infinite loop. while (true) { Serial.println("Failed to allocate memory :("); delay(1000); } } Serial.println("EchoBase ready, start recording and playing!"); // M5.Speaker.tone(2000, 2000); // delay(2000); } void loop() { Serial.println("Start recording..."); // Recording echobase.setMute(false); echobase.record(buffer, RECORD_SIZE); // Record audio into buffer. delay(100); Serial.println("Start playing..."); // Playing echobase.setMute(false); delay(10); echobase.play(buffer, RECORD_SIZE); // Play audio from buffer. //M5.Speaker.playRaw(buffer, RECORD_SIZE, 44100, false, 1, 0); delay(100); }
  • For topics on the M5Stack Atom.

    260 Topics
    849 Posts
    K
    After a lot of testing and searching it became apparent that the M5Atom controller did not work properly (never had this type of problem before). This, outdated software and some wrong suggestions by both ChatGPT and the AI bot from M5Stack (with the knowledge base available) made it a bit of struggle. However, after all updates and testing different hardware it finally works again. So thanks to anyone that spent time on this!
  • Button Unit Issue testing help please.

    3
    0 Votes
    3 Posts
    4k Views
    ajb2k3A
    @lukasmaximus said in Button Unit Issue testing help please.: I have tested the blocks associated with the single button unit and they definitely need some work. Button press c shaped block only allows for a single press or release and the jigsaw shaped block when combined with an if condition it throws an error that btn0_wasReleased or wasPressed is not defined. These issues will be resolved in the next update and hopefully some extra functionality added. Yeh, I was getting the btn0 is not defined error.
  • uiflow 1.1 m5stick no api key

    8
    0 Votes
    8 Posts
    21k Views
    ajb2k3A
    I've just taken several goes to write the firmware (I think my W7 laptop to blame). It kept getting stuck in bootloader mode and wouldn't leave. Finially got it to program and reset after pressing the on/off button twice.
  • Increasing external I/O connection/replacing M5GO on Fire

    4
    0 Votes
    4 Posts
    9k Views
    m5-docsM
    @mcbridejc Hi, We will put on sale a new product named "Bus" which is aimed for developers to expand I/O. And here's the difference between with all cores. Maybe help you. https://github.com/m5stack/M5-Schematic/blob/master/Core/hardware_diff_between_m5cores.md
  • No COM Port with M5 Fire but another M5 has

    8
    0 Votes
    8 Posts
    16k Views
    D
    @watson No, there was no COM-Port. As if it is not plugged or turned wrong around. But as told, now it is ok. And i am glad it is. I like the M5s very much. I still think, the capacitor solved it. But of course i am not sure.
  • UIFlow : Units are not available

    7
    0 Votes
    7 Posts
    16k Views
    ajb2k3A
    @kurthofman said in UIFlow : Units are not available: I'm using M5 Fire with firmare 1.0.3 in Chrome.[image: 1547060740744-snip_20190109200528-resized.png] The update sorted out a minor bug with the Unit box but the ones with the blue symbol over them are not working yet.
  • M5Stack fire PSRAM test failed!

    3
    0 Votes
    3 Posts
    7k Views
    ajb2k3A
    iIRC I seam to remember something on one of the Esp32 forums with a similar issue. I think it was something to do with bus clock speed issue. I think it was down to the clock being set to high for the psram.
  • issue with remote in 1.0.3

    2
    0 Votes
    2 Posts
    5k Views
    ajb2k3A
    @jpilarski said in issue with remote in 1.0.3: Nice work on the adc, iic, and on adding more unit blocks. Unfortunately it looks like there are issues with the remote blocks. They look to be overlapping on screen and make it difficult to properly select remote blocks. What web browser are you using to load UIFlow as it worked fine for me.
  • Blue Lorawan Module

    3
    0 Votes
    3 Posts
    9k Views
    qlionQ
    Hi I managed to get connected with the following. Thanks #include <M5Stack.h> HardwareSerial Serial2(2); int period = 158000; unsigned long time_now = 0; String cmd_DEF = "AT+FDEFAULT"; String cmd_OTTA_mode = "AT+MODE=LWOTAA"; String cmd_DevEui = "AT+ID=DevEui"; String cmd_JOIN = "AT+JOIN=FORCE"; String cmd_send_data = "AT+MSG="Data to send""; void setup() { M5.begin(); Wire.begin(); // Lcd display M5.Lcd.setBrightness(100); M5.Lcd.fillScreen(BLACK); M5.Lcd.setCursor(10, 10); M5.Lcd.setTextColor(WHITE); M5.Lcd.setTextSize(1); M5.Lcd.printf("LoraWAN Network"); delay(300); M5.Lcd.fillScreen(BLACK); delay(150); M5.Lcd.setCursor(0, 10); M5.Lcd.fillScreen(BLACK); for(int i=0; i<200; i++) { M5.Lcd.setBrightness(i); delay(2); } Serial.begin(115200); Serial2.begin(9600, SERIAL_8N1, 16, 17); Serial2.flush(); /* LoRaWAN Init */ M5.Lcd.println("Setting up the LoraWAN Connetion"); Serial2.println(cmd_DEF); delay(2000); Serial2.println(cmd_OTTA_mode); delay(1000); Serial2.println(cmd_DevEui); delay(1000); Serial2.println(cmd_OTTA_mode); delay(3000); M5.Lcd.println("Joining Network."); Serial2.println(cmd_JOIN); delay(3000); M5.Lcd.println("Message will be send in 155000ms, when next Band is availible"); } void loop() { if(millis() > time_now + period){ time_now = millis(); M5.Lcd.println("Sending Data."); Serial2.println(cmd_send_data); } if(Serial2.available()) { int ch = Serial2.read(); Serial.write(ch); } }
  • M5Stick's OLED screen with UI.Flow

    6
    0 Votes
    6 Posts
    15k Views
    T
    Hello, Maybe, Graphic Block and Emoji Block are not working now...
  • heart rate unit

    2
    0 Votes
    2 Posts
    5k Views
    H
    sorry, heart rate unit now in uiflow have some problems, we will fix it within two weeks
  • Hardware Variantion and Firmware Compatibility

    5
    0 Votes
    5 Posts
    11k Views
    ajb2k3A
    @felix42eu said in Hardware Variantion and Firmware Compatibility: @ajb2k3: OK, I did not know that arduino was not fully supported. thanks. is m5go and m5fire a different product? I do not think so. where are the sources of the versions located if they are open source? or do you mean the binaries are free (I found them in the M5burner replease) The espressif idf is a topic which I have too look deeper into. All sources, documents and specs are found on github. Git Hub Some of the docs are a little out of date though. some of the "grove connection" units are found on the seeedstudio grove website.
  • UIFlow Unit Selection issue (OSX Mojave)

    3
    0 Votes
    3 Posts
    6k Views
    ajb2k3A
    Ok, as I walk around, I found I could "Zoom out" to get the ok buttons.
  • m5flow version 1.0.0 : M5 Stick connection

    7
    0 Votes
    7 Posts
    19k Views
    ajb2k3A
    @lukasmaximus said in m5flow version 1.0.0 : M5 Stick connection: @ajb2k3 I haven't opened one up yet so I can't say for sure I've just ordered one so will do a comparison when mine arrives.
  • COMMU Schematic

    3
    1 Votes
    3 Posts
    6k Views
    I
    Perfect - Thank you for your help.
  • M5Stick

    6
    0 Votes
    6 Posts
    9k Views
    J
    @lukasmaximus In your reply above you mentioned firmware 1.0.1 for the stick but in the M5-burner download it only has version 1.0 of the uiflow firmware for the M5stick. Can you please verfiy which firmware is the most recent. Also will the MPU9250 work with the M5stick in uiflow. thanks
  • potentially missing modules in UIFLOW

    8
    0 Votes
    8 Posts
    15k Views
    J
    Thanks this is helpful to see. Much appreciated. I still think it would be great at some point for you to add a section to the uiflow documentation that covers the blocks located under the advanced tab.
  • Model B Camera Availability

    2
    0 Votes
    2 Posts
    3k Views
    m5-docsM
    @ajb2k3 Hello, both model A and B does not have built-in Gyro, they only have pad for Gyro(mpu9250) for you can welding mpu9250 conveniently. The difference between A and B is pinmap.
  • Pinout for GSM Module GPRS Board SIM800L ESP32

    4
    0 Votes
    4 Posts
    8k Views
    m5-docsM
    @vidarr https://docs.m5stack.com/#/zh_CN/module/sim800
  • Failed to use CAN with M5Stack

    6
    0 Votes
    6 Posts
    11k Views
    m5-docsM
    @hayashi Hey, here's the example about CAN. https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Module/COMMU/Arduino/CAN
  • Color Sensor UiFlow or micropython code

    3
    0 Votes
    3 Posts
    10k Views
    D
    thanks it works great used this library and this basic code to test import tcs34725 import time from machine import I2C, Pin i2c = I2C(0, sda=21, scl=22) sensor = tcs34725.TCS34725(i2c) print(sensor.read(True))