🤖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?
  • not all LCD functions described for m5stickc in online help

    1
    0 Votes
    1 Posts
    1k Views
    No one has replied
  • UnitV2 Transfer-learning or convert

    unitv2
    3
    0 Votes
    3 Posts
    5k Views
    O
    @ghz2000 Hello. We are starting a new project using the Unitv2. While support from M5 people is effectively zero, we thing it is still an interesting product. I was able to compile a compatible buildroot version, opencv-4 with DNN and ncnn framework. Currently training some networks to be ported to the camera. You might want to check https://github.com/CodeforKarlsruhe/kikaefer/blob/main/docs/unitv2.md We'll post news as they come in.
  • PORT C with Core2 + M5GO Battery Bottom2 : 5V UART OK ?

    3
    0 Votes
    3 Posts
    3k Views
    B
    The Core2 with the M5GO Battery Bottom2 is a sweet combo! As for the Rx pin on PORTC, it's essential to check the specs to be sure about that 5V compatibility.
  • Core3 12V

    5
    0 Votes
    5 Posts
    5k Views
    B
    When it comes to the CoreS3, the 9-24V DC circuit mentioned in the specifications might not be present on the schematic you're looking at.
  • Core-Ink Screen rotation

    core-ink screen rotation
    1
    2
    0 Votes
    1 Posts
    3k Views
    No one has replied
  • Atom Printer MQTT

    1
    0 Votes
    1 Posts
    1k Views
    No one has replied
  • Timer X Camera Blue Led Blinking

    4
    0 Votes
    4 Posts
    3k Views
    R
    I've now flashed it with esphome, blinking gone, so i'm fine
  • Will the M5Stack "Product Comparison" page be updated soon?

    1
    1 Votes
    1 Posts
    2k Views
    No one has replied
  • 0 Votes
    9 Posts
    11k Views
    K
    Hi @felmue Followed your advice and got it to work. Thanks very much!
  • No display when unplugging usb cable

    2
    0 Votes
    2 Posts
    2k Views
    felmueF
    Hello @moccow starting with v2.7 there is a battery power switch at the bottom. See here. To run from battery (or to charge it) the switch needs to be in the on position. Thanks Felix
  • Kicad symbol for M5Stack Stamp S3

    1
    0 Votes
    1 Posts
    2k Views
    No one has replied
  • Maximum power supply C3U

    1
    0 Votes
    1 Posts
    1k Views
    No one has replied
  • Four quick product compatibility questions before my next order.

    5
    0 Votes
    5 Posts
    3k Views
    ajb2k3A
    @mtylerjr I get some of mine from twitter, others I get direct
  • Write/Read Data(SD Card or internal) into the CoreS3 with Uiflow 2.0

    3
    0 Votes
    3 Posts
    5k Views
    felmueF
    Hi guys Here is an explanation as to why it may take some time to fix: M5CoreS3 uses the SPI bus in a special way to control the LCD: MISO (normally an input) is reconfigured to be an output and is used as DC line (instead of a dedicated GPIO for DC). Unfortunately to access the SD card (which shares the SPI bus with the LCD) MISO needs to be an input. In case you might be interested. I found a way to do this switching back and forth between input and output for Arduino. Thanks Felix
  • Powering M5Stamp C3U without USB?

    5
    0 Votes
    5 Posts
    4k Views
    125millibytes1
    Yes I did press the reset button. I can even measure 5V at the USB Port when the power supply is connected to 5V/GND pins. I can also measure continuity between the USB 5V pin and the other 5V pins... I guess it's a software issue... I'll try upload another program Thanks for the help! edit: PlatformIO doesn't find the device... it's not at /dev/ttyUSB* like the m5Stick edit2: I didn't read this before I ordered... Note: The newly updated C3U shares the same features as C3, but the difference is that M5Stamp C3U without the USB download chip and the program download method is different (The C3U uses the ESP32-C3's built-in USB Serial for program download) So I have to figure out how to make that work... edit3: OK I figured it out, I think. You have to hold the G9 button while the chip powers on (push reset or plug in power) to enter USB CDC mode. Then this platformio.ini worked for me: [env:m5stack-stamps3] platform = espressif32 board = esp32-c3-devkitm-1 framework = arduino upload_port = /dev/ttyACM0 monitor_speed = 460800 build_flags = -D ARDUINO_USB_MODE=1 -D ARDUINO_USB_CDC_ON_BOOT=1 After uploading once, because of the "CDC_ON_BOOT" option, it goes into the CDC mode automatically without holding the button.
  • LoraWan asr6501 868 module device encrypted

    1
    0 Votes
    1 Posts
    2k Views
    No one has replied
  • Core Ink screen fades on reset

    6
    1
    0 Votes
    6 Posts
    12k Views
    E
    @fonix232 said in Core Ink screen fades on reset: basically, dump that 200x200 4b array onto the flash EDIT: Found out the "Set Screen HV 0" must be set to "0" I thought "1" means "on" but My screen doesnt fade when set to "0". Looks much better now : ) == Hi there, I have exact the same "Screen Fading" Problem (out of the Box). Thank you guys for your insight on this topic. I am new and try to set up the "M5 CORE INK". I try to implement suggestions on this thread. In UI flow I place the "Set Screen HV 1" as @ajb2k3 suggested. I would apprechiate it alot If you (or any one who knows) could tell me how to implement "Screen Dump" in UI flow. This method anyways will be usefull. I might work with Json Data further in my project anyways. Thank you all all lot for pointing me in the right direction. cheers EBK #M5CoreInk #ScreenFading #SetScreenHV # ScreenDump #Json
  • M5 Stamp Pico cannot connect to UIflow

    7
    0 Votes
    7 Posts
    7k Views
    S
    According to the information I got from the Japanese M5Stack forum, it seems that the MAC addresses of some M5Stamp pico's are not registered on the UIflow server. I contacted support and asked them to register the MAC address of my M5Stamp pico on their server. It now works this way. I would like this information to be made public by support. Also, all MAC addresses of shipped products should be registered on the server.
  • What is the best orientation of M5Stack Atom-lite to get better RSSI?

    3
    0 Votes
    3 Posts
    3k Views
    P
    @felmue Hi Felix, Thank you for pointing me the discussion. It does provide valuable information, however, it doesn't discuss about the orientation of the antenna. I am curious that in your applications, how do you usually position the 3D antenna? My WiFi router has three whip antennas all positioned vertically, is putting Atom-lite LED/button up (3D antenna facing down) a good practice? Paul
  • M5Station RS485 port

    2
    0 Votes
    2 Posts
    2k Views
    felmueF
    Hello @luisgcu you are correct the GPIO choice is a bit unfortunate. That said it helps if you want to debug what's going on on the Modbus connection by using a Modbus sniffer. I've found this one and it decodes the RTU data nicely. See below: captured packet 1: length = 8, CRC: 6F8C = 6F8C [OK] DUMP: 04 05 00 00 FF 00 8C 6F As for ESP32 debug output. You can always setup Serial to output debug onto a different GPIO. Thanks Felix