🤖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.

    200 Topics
    989 Posts
    robskiR
    @johnericsutton hard to believe that unit is designed in such way to report value only when measured source is above 0...
  • 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
    ShawnHymelS
    @felmue That helps a lot, thank you!
  • 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.

    259 Topics
    847 Posts
    R
    Two years ago I set up 6 atom lites with moister sensors for my raised gardens. This year I added another garden. I have download the same program only with different client name and different topic to publish to. I'm using EMQX intergration within Home Assistant as my MQTT server. The Atom Lite logs into the server but is not publishing the topic for some reason. I went back to the old version of UIFlow that was working on the rest of my beds with the same results. I updated to the latest version of EMOX with the same effect. Does anyone have a clue as to what might be going on?
  • Cores3 uiflow

    15
    0 Votes
    15 Posts
    16k Views
    ajb2k3A
    @bouvin said in Cores3 uiflow: I, too, have received a CoreS3. I have flashed many Core2s before, but this does not seem to work? From the M5Burner application, I can select the Alpha13 UIFlow 2.0 firmware, successfully burn it to the CoreS3, but it starts up regardless in the demo application…. Are others seeing the same? The S3 generation is flashed differently to previous generations, you have to manually put the S3 devices into boot mode by holding down the reset button to get a green light to get them to flash. I have a video about it going live on Saturday on Youtube.
  • M5stack Timer Camera F: advice on using power.isCharging()

    3
    0 Votes
    3 Posts
    3k Views
    S
    Dear @felmue Thank you very much for your quick response! Unfortunately, it is what I expected, but you were very kind! Best, Simoc
  • M5paper void disableEXTPower()

    4
    0 Votes
    4 Posts
    3k Views
    felmueF
    Hello @HappyUser yes, that should solve the issue of how to power off (and back on) the SIM7080 unit (or any other unit for that matter). Thanks Felix
  • M5Stack Core S3

    8
    0 Votes
    8 Posts
    8k Views
    B
    OK, thanks. Steve
  • UnitV Wifi Networking

    3
    0 Votes
    3 Posts
    3k Views
    U
    Thanks. I already have got UnitV2, UnitV (both OV7740 and OV2640) for evaluation. Do any of the K210 based UnitVs have built-in Wi-Fi's? It would be strange if they don't because once you deploy them in the field you want some sort of network connectivity and would be odd to use a controller with each one of them to go along (as I need multiple Units to be deployed) - keeping aside costs and looking at it purely from ease of use. With UNITV2, it's very easy to work with as its simply a SBC with linux but the one I received gets really hot (higher temperatures: 70+) within 5-10 minutes of operation so would prefer not to use it for any real world application.
  • Error: "BalaC maybe not connect"

    2
    0 Votes
    2 Posts
    3k Views
    C
    I think the unit is defective. Interesting, because other things work: display, program w/ UI Flow, etc. I tried several M5Stick, M5StickPlus, M5StickPlus 1.1. They all work. Only the initial M5StickPlus 1.1 has this issue. And BTW, it behaves similarly when connected to a servo HAT.
  • Position calculation for color block

    1
    0 Votes
    1 Posts
    2k Views
    No one has replied
  • PWM on IO extension module?

    1
    0 Votes
    1 Posts
    2k Views
    No one has replied
  • M5-TOUGH / unable to change display brightness

    7
    0 Votes
    7 Posts
    9k Views
    E
    @felmue said in M5-TOUGH / unable to change display brightness: M5.Axp.SetLDOVoltage(3,3000); Hi Felmue! That one works, thanks a lot! Really confusing that there is a PWM backlight LED mentioned in the library which does not work. And that the usage of SetLcdVoltage is inconsistent between the Core2 and TOUGH. On Core2 the LcdVoltage changes DCDC3 (@param number 0=DCDC1 / 1=DCDC2 / 2=DCDC3 ) which is connected to LCD_BL. For the TOUGH on the other hand DCDC3 is unused and they used the LDO3. So maybe they should simply change the line SetDCVoltage(2, voltage); to M5.Axp.SetLDOVoltage(3,voltage); or maybe even better introduce a new function SetLCDBacklightVoltage(...) in their library. Thanks to all for your hints.
  • CM4 Stack Issues from the very start.

    3
    0 Votes
    3 Posts
    3k Views
    ajb2k3A
    No it was from this place: https://github.com/m5stack/m5stack-linux-dtoverlays/tree/main/examples The issue is actually a dependence missing from the install instructions (user writeup error) fixed with adding the following command: sudo apt-get install qtdeclarative5-dev before running cmake .. && make
  • Timer Camera X: improve image quality

    1
    1
    0 Votes
    1 Posts
    2k Views
    No one has replied
  • 0 Votes
    4 Posts
    5k Views
    teastainT
    @themusicman, I checked out your code because my graphics are rather boring/default. I will try implementing some of your examples!
  • Multiple errors when using <M5GFX.h> and MM5Stack.h> in same program

    1
    0 Votes
    1 Posts
    3k Views
    No one has replied
  • 0 Votes
    1 Posts
    3k Views
    No one has replied
  • 0 Votes
    1 Posts
    2k Views
    No one has replied
  • M5stack Camera

    1
    1
    0 Votes
    1 Posts
    2k Views
    No one has replied
  • 0 Votes
    5 Posts
    10k Views
    T
    @ajb2k3 said in How do I enter BOOT mode on M5Core2: Wrong boot mode detected (0x0)! The chip needs to be in download mode: @themusicman This means that something else in OSX is access the USBport via a terminal preventing M5Burner from being able to access the port. Please make sure only M5Burner is running and that no other terminal software is running. I tried on my MacBookPro (original issue was on iMac) with no other serial terminal software running, exactly the same issues unfortunately. I have now returned the M5Core2 device back to thePiHut and am awaiting a replacement. Thanks for your support though @ajb2k3 - it is much appreciated.
  • Operational Temperature Range M5Stamp ESP32S3

    1
    0 Votes
    1 Posts
    3k Views
    No one has replied
  • Operational Temperature Range of M5Tough

    2
    0 Votes
    2 Posts
    2k Views
    teastainT
    @kk likely 0-60, as is the standard core basic and core2. LCDs malfunction and possibly freeze damage below 0. Cannot withstand condensating environment.
  • Servo Kit 180 connection

    11
    0 Votes
    11 Posts
    12k Views
    K
    I have been able to get it working with the correct wiring using the grove port in a Core Basic Gray unit. No I will start to use the io pins in the bottom of the unit so I can use the grove port for other things. thanks for all your assistance.