🤖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?
  • M5 Stack Core2 Firmware Stops Working on Reboot

    2
    0 Votes
    2 Posts
    3k Views
    felmueF
    Hello @codewitch good news - your M5Core2 most likely is not defective. For me the issue is happening independently of whether M5Core2 is running from USB or battery. It always happens after a complete power loss. The reason it is not working as expected is that for some functions dealing with voltages you declared the parameter as float but then call them with big non float values. Here is what I changed in m5core2_power.cpp to make it work: //--fm Wire1.begin(22,23); Wire1.begin(21,22); //--fm mcu_voltage(3350); mcu_voltage(3.350); //--fm lcd_voltage(2800); lcd_voltage(2.800); //--fm ldo_voltage(2, 3300); //Periph power voltage preset (LCD_logic, SD card) ldo_voltage(2, 3.300); //Periph power voltage preset (LCD_logic, SD card) //--fm ldo_voltage(3, 2000); //Vibrator power voltage preset ldo_voltage(3, 2.000); //Vibrator power voltage preset Thanks Felix
  • Atom U STTServer down

    1
    0 Votes
    1 Posts
    2k Views
    No one has replied
  • How ROS is used in mechArm 270?

    3
    4
    0 Votes
    3 Posts
    5k Views
    ElephantRoboticsE
    @kkkkkk It is esp32
  • Implement the color recognition on myCobot

    2
    2
    0 Votes
    2 Posts
    4k Views
    K
    Good article, I will buy this kit
  • Touch get wrong X and Y values more you go away from display center

    2
    0 Votes
    2 Posts
    3k Views
    felmueF
    Hello @GMG care to share some code which exhibits the issue you are describing? Thanks Felix
  • M5 paper become brick?

    6
    0 Votes
    6 Posts
    7k Views
    felmueF
    Hello @jackchan000 ok, for some reason GPIO0 is held low causing the ESP32 starting up into download mode. GPIO0 is controlled by the USB serial chip inside M5Paper which in turn is controlled from the USB driver. (There is nothing much you can do to change that except maybe try a different computer.) Try to power off and power on your M5Paper with the following steps: disconnect USB press button in the back (this should power it off) Note: there is no visible change on the screen when doing that. press middle button on the side (this should power on M5Paper and run the factory test) Note: the button in the back has two functions depending on whether M5Paper is connected to USB or not. reset (USB connected) power off (USB not connected) Thanks Felix
  • UHF-RFID-UNIT-JRD-4035 effective distance

    4
    0 Votes
    4 Posts
    8k Views
    M
    @paopao Hi! If using UIFlow, then this is it, if it‘s Arduino. Serial port sending commands or use API, then CH_index = 1 [image: 1654054725635-0ec00c90-ec5d-4409-94fc-8dd08c895076-772b8705d595ffaaf664b365dfa2283-resized.png] [image: 1654054732923-ba3533da-f619-4abc-911a-0eec1f118a04-7a340fb489da51d7a3242baec51cccb-resized.png] https://github.com/m5stack/M5Stack/blob/master/examples/Unit/UHF_RFID_JRD4035/RFID_command.cpp [image: 1654054742057-08d5a35d-3ca2-4e2f-bfb2-00ff3e69579b-4bca5f4ba3a089a03c27cc592164b60.png]
  • GPS - incorrect readings

    2
    0 Votes
    2 Posts
    5k Views
    M
    @dsrc12 Hi! This must be outdoors in wide-open areas, cold start time takes about 3 / 4 minutes
  • M5Stack core2 communicate with ROS

    2
    0 Votes
    2 Posts
    4k Views
    M
    @lishengkkk Hi there, please check if the baud rate of both sides match (you can also try to change the baud rate, such as the common 115200). If it's a UART via separate wiring. Please make sure TX RX is connected correctly.
  • Use Atom RS485 as a data sniffer

    2
    0 Votes
    2 Posts
    4k Views
    M
    Hi there We appreciate your feedback! but so far there is no demo provided
  • Timer Camera X power consumption

    8
    0 Votes
    8 Posts
    13k Views
    T
    Here's how i shut down the OV3660 lens.... // Put Camera Module into Standby Mode sensor_t * s = esp_camera_sensor_get(); s->set_reg(s,0x3008,0xff,0x01);//banksel --- ? Is this needed for ov3660? Is there only 1 bank delay(100); s->set_reg(s,0x3008,0xff,0x80);//reset (we do this to clear the sensor registries, it seems to get more consistent images this way) delay(100); s->set_reg(s,0x3008,0xff,0x40); //stand by (sensor, register, mask, value) delay(100); I reboot the camera to turn the lens back on.. .but there are registry setting that can be invoked to restart the camera module. see Omnivision OV3360 spec for registry settings.
  • How to control adaptive gripper on myCobot 280?

    1
    2
    1 Votes
    1 Posts
    3k Views
    No one has replied
  • 0 Votes
    9 Posts
    15k Views
    felmueF
    Hello @Hafenstrand ok, I see. Unfortunately I don't think that 5 days (= 120 h) is achievable with the TailBat's 190 mAh capacity. Measuring the power consumption of the M5Atom in deep sleep I get about 11 mA (at 5V). However with 190 mAh in the TailBat you'd need to get the current in deep sleep mode down to about 1.6 mA. BTW: 1 mA is consumed by the RGB LED even if it is off. I assume the rest is consumed by the USB and 3.3 V converter chip inside the M5Atom. Thanks Felix
  • Image of reverse side of Atom Hub Proto board?

    1
    0 Votes
    1 Posts
    2k Views
    No one has replied
  • RoverC.Pro is not functioning as is claimed

    1
    0 Votes
    1 Posts
    2k Views
    No one has replied
  • 0 Votes
    1 Posts
    5k Views
    No one has replied
  • Thermal camera reading?

    2
    0 Votes
    2 Posts
    3k Views
    I
    You might look at ESPnow to send the values over Wi-Fi. The setup is pretty simple.
  • M5 Tough Problems

    2
    0 Votes
    2 Posts
    2k Views
    ajb2k3A
    @alpinerobotics desktop IDE is not currently supported and so out of date. What are the WiFi issue you have? The firmware does not like spaces in SSID’s
  • When the device is turning OFF; condition.

    1
    0 Votes
    1 Posts
    2k Views
    No one has replied
  • Core2 Proto Perf Board

    5
    0 Votes
    5 Posts
    8k Views
    stanelyS
    @felmue I found the M024 M-BUS Connection proto board. It looks like the bus is available on two rows. I think this is the thing to use for connecting to the bus. https://shop.m5stack.com/products/bus-module