🤖Have you ever tried Chat.M5Stack.com before asking??😎
  • Stack Chan unboxing

    PRODUCTS
    1
    5
    0 Votes
    1 Posts
    43 Views
    No one has replied
  • Custom Cables

    General
    1
    0 Votes
    1 Posts
    147 Views
    No one has replied
  • Blue Chronos v1.1.0 - Precision Timekeeping for Cardputer

    PROJECTS
    2
    1
    0 Votes
    2 Posts
    350 Views
    P
    @Blue_Mac think you meant to type Blue_Chronos in the url instead of Blue-Chronos as the link provided is incorrect
  • Paper S3 epub reader with usb disk mode

    General
    16
    1
    4 Votes
    16 Posts
    2k Views
    E
    @L4700 Hi. Thx for testing. Frankly project happened just for me, because I have so many eReader but none was so light. Now I bought next Paper S3 device to my wife is my new tester :D. Future is unsure, for me - there's possibly all I need. And for others - there's slow feedback. What I am thinking about : HW improve - still trying to figure out some fancy Screen illumination fo this HW. Wifi portal for transfering books - USB disk mode is very slow, and removing SD card is akward. Sync readering with other readers (maybe Calibre, not sure now) Optimization (MCU is slow, but I see still some potencial. Secondly thinking about future porting to newer models - but it will need some donations to buy new HW. Until this time I have just one donate from my boss :D Sry for my English.
  • 0 Votes
    3 Posts
    290 Views
    ShawnHymelS
    @felmue That helps a lot, thank you!
  • M5StickS3

    M5 Stick/StickC
    1
    0 Votes
    1 Posts
    93 Views
    No one has replied
  • UiFlow 2.0 discuss(how-to, bug, feature request or sometings)

    Pinned UiFlow 2.0
    193
    3 Votes
    193 Posts
    532k Views
    R
    @RBOUMAN58 Got the problem solved, burned the 2.4.4 firmware using M5Burner, problems gone... programs are working again
  • Atomic Audio Base with M5ATOMS3R

    Bases
    4
    0 Votes
    4 Posts
    235 Views
    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); }
  • 1 Votes
    1 Posts
    276 Views
    No one has replied
  • UIFlow2.0 ADV V2.4.3 not Burning

    UIFlow
    2
    1
    0 Votes
    2 Posts
    388 Views
    S
    I have the same problem too. It works with 2.4.2.
  • 0 Votes
    2 Posts
    267 Views
    F
    Intermittent SSL failures on M5Stack are often due to missing or outdated root CA and limited heap during handshake. Did you try pinning the server certificate or loading only the required CA bundle and checking free heap before the request, and handling token refresh server side instead of on device?
  • Special characters like german umlaut äöü

    Cores
    4
    0 Votes
    4 Posts
    8k Views
    P
    In the standard M5 font you can use this workaround. It is working in M5Tab5 as well ä char(132) ü char(129) ö char(148) Ä char(142) Ü char(154) Ö char(153) Example for German: Überschuss M5.Lcd.drawString(String(char(154)) + "berschuss" , 0, 0);
  • 0 Votes
    1 Posts
    209 Views
    No one has replied
  • 0 Votes
    2 Posts
    421 Views
    C
    This was Copilot's answer. Conclusion: Enabling I2C in UIFlow2 will cause the LED matrix of the Atom Matrix to stop working because it is internally disabled. This is due to a specification (or rather a limitation) of UIFlow2. The LED matrix (5×5 WS2812C) of the Atom Matrix is initialized by the DisplayEnable flag of M5.begin(). In the official documentation, it is written as follows: M5.begin(true, false, true) SerialEnable = true I2CEnable = false DisplayEnable = true In UIFlow2, when using an I2C device, I2CEnable is internally set to true, and at that time, there is a behavior where DisplayEnable is automatically turned off. This is because the internal initialization of the M5Unified series is structured in such a way that it cannot enable I2C and the LED matrix at the same time. I want UIFlow2 to be fixed so that I can use Matrix LED and I2C at the same time.
  • EZData 2.0 is missing from UiFlow 2.3.5

    UiFlow 2.0
    5
    4 Votes
    5 Posts
    2k Views
    T
    any news?
  • Tab5 RS485 connector

    PRODUCTS
    6
    0 Votes
    6 Posts
    3k Views
    Y
    @scroggyg I had the same question, so I looked into it and found out it's a Molex PicoBlade 6-pin. It’s sometimes called "Micro JST", but it's really a 1.25mm pitch Molex connector.
  • Weight I2c wire connector

    Modules weight i2c wire connector screws stuck
    1
    0 Votes
    1 Posts
    290 Views
    No one has replied
  • Adding a switch to the DinMeter

    Units
    3
    0 Votes
    3 Posts
    382 Views
    C
    In case anyone else comes across this post, it appears that the wires coming out of the DinMeter PortB are reversed to the label, at least on my unit. G1 is the yellow wire, and G2 is the white one. It works as expected to do a digital read on the pins for a button push.
  • 0 Votes
    2 Posts
    298 Views
    kurikoK
    @wwhite https://docs.m5stack.com/en/guide/realtime/openai/atomic_echo_base
  • 1 Votes
    1 Posts
    263 Views
    No one has replied