[SOLVED] M5GO BOTTOM2 (For CORE2 only) - LEDBar not working on Core2



  • Hi there,

    Im quite new on M5Stack world, but it's still Arduino Framework so it's quite easy to program and get it work correctly. I recently bought an M5GO BOTTOM2 (For CORE2 only) - which remove the internal capacity and just add a bit (around 200mAh) over the original battery, and add few more stuff like micro, LEDBar, etc.

    I tried to get the LEDBar working with Adafruit_Neopixel lib, or FastLed without any success.

    Does anybody got the LedBar of this module runs with a Core2? It seems that the LedBar signal is plugged onto the same pin than I2S which is use by Speaker.

    If someone of the M5 team or a user have some hints to share about it, do not hesitate. Thanks a lot!
    Christophe



  • @cpersoz The nomenclature of the Demo program is a little vague, but I checked both schematics of the Core2 and the Bottom2 and 25 is the RGB and 34 is the I2S!
    #define PIN_CLK 0 // I2S
    #define PIN_DATA 34

    #define NUM_LEDS 10 //LED
    #define DATA_PIN 25

    (https://imgur.com/NQTNXQj)



  • Hello @cpersoz

    this M5GO2 Bottom2 example works for me.

    Thanks
    Felix



  • Hello there,

    Thanks for your answers @teastain and @felmue, I'm going to try that and see how is going.

    Many thanks,
    Christophe



  • @felmue, I tried the example you send me and it makes the Core2 crash continuously. It's seems related to I2S or maybe something with FreeRTOS task. Good point the LED Bar is indeed working. On my sketch, even if I change the DATA PIN for the lens to the correct one (25), lens remains blacks.

    Question is, can we have Speaker on I2S and LED Bar working at the same time...

    09:24:14.438 -> Guru Meditation Error: Core  0 panic'ed (Interrupt wdt timeout on CPU0). 
    09:24:14.438 -> 
    09:24:14.438 -> Core  0 register dump:
    09:24:14.438 -> PC      : 0x40085ba0  PS      : 0x00060335  A0      : 0x800dbffe  A1      : 0x3ffb53f0  
    09:24:14.438 -> A2      : 0x0020d577  A3      : 0x00000000  A4      : 0x3ffbdd68  A5      : 0x00000020  
    09:24:14.476 -> A6      : 0x007bef98  A7      : 0x003fffff  A8      : 0x80085bf2  A9      : 0x3ffb53d0  
    09:24:14.476 -> A10     : 0x0020d577  A11     : 0x00000000  A12     : 0x3ffc24e0  A13     : 0x00060323  
    09:24:14.476 -> A14     : 0x00060322  A15     : 0x00000001  SAR     : 0x0000000a  EXCCAUSE: 0x00000005  
    09:24:14.476 -> EXCVADDR: 0x00000000  LBEG    : 0x40085bc5  LEND    : 0x40085bcd  LCOUNT  : 0x00000027  
    09:24:14.510 -> 
    09:24:14.510 -> 
    09:24:14.510 -> Backtrace:0x40085b9d:0x3ffb53f00x400dbffb:0x3ffb5410 0x400db6c6:0x3ffb5430 0x400d1dfc:0x3ffb5470 0x400d1f41:0x3ffb5490 
    09:24:14.510 -> 
    09:24:14.510 -> 
    09:24:14.510 -> Core  1 register dump:
    09:24:14.510 -> PC      : 0x40109efa  PS      : 0x00060a35  A0      : 0x800e8939  A1      : 0x3ffbd7c0  
    09:24:14.510 -> A2      : 0x00000000  A3      : 0x00060023  A4      : 0x00060023  A5      : 0x80000000  
    09:24:14.510 -> A6      : 0x007bef98  A7      : 0x003fffff  A8      : 0x3ffc24fc  A9      : 0x00000001  
    09:24:14.546 -> A10     : 0x00000001  A11     : 0x3ffbd4a0  A12     : 0x00000020  A13     : 0x80000000  
    09:24:14.546 -> A14     : 0x00000000  A15     : 0x00000000  SAR     : 0x00000000  EXCCAUSE: 0x00000005  
    09:24:14.546 -> EXCVADDR: 0x00000000  LBEG    : 0x00000000  LEND    : 0x00000000  LCOUNT  : 0x00000000  
    09:24:14.546 -> 
    09:24:14.546 -> 
    09:24:14.546 -> Backtrace:0x40109ef7:0x3ffbd7c00x400e8936:0x3ffbd7e0 0x4008c550:0x3ffbd800 
    09:24:14.546 -> 
    09:24:14.546 -> 
    09:24:14.546 -> 
    09:24:14.546 -> 
    09:24:14.546 -> ELF file SHA256: 0000000000000000
    09:24:14.546 -> 
    09:24:14.546 -> Rebooting...
    09:24:14.580 -> ets Jul 29 2019 12:21:46
    09:24:14.580 -> 
    09:24:14.580 -> rst:0xc (SW_CPU_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
    09:24:14.580 -> configsip: 0, SPIWP:0xee
    09:24:14.580 -> clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
    09:24:14.580 -> mode:DIO, clock div:1
    09:24:14.580 -> load:0x3fff0030,len:1184
    09:24:14.580 -> load:0x40078000,len:13160
    09:24:14.580 -> load:0x40080400,len:3036
    09:24:14.580 -> entry 0x400805e4
    09:24:15.281 -> M5Core2 initializing...axp: vbus limit off
    09:24:15.281 -> axp: gpio1 init
    09:24:15.281 -> axp: gpio2 init
    09:24:15.281 -> axp: rtc battery charging enabled
    09:24:15.281 -> axp: esp32 power voltage was set to 3.35v
    09:24:15.315 -> axp: lcd backlight voltage was set to 2.80v
    09:24:15.315 -> axp: lcd logic and sdcard voltage preset to 3.3v
    09:24:15.315 -> axp: vibrator voltage preset to 2v
    09:24:15.806 -> touch: FT6336 ready (fw id 0x10 rel 1, lib 0x300E)
    09:24:16.428 -> E (1662) I2S: i2s_driver_uninstall(2006): I2S port 0 has not installed
    

    I'm looking for why it is not working correctly... I tried the simple following code, and even with only that, Core2 crash on each loop.

    #include <M5Core2.h>
    #include <FastLED.h>
    
    #define LEDBAR_PXL 10
    #define LEDBAR_PIN 25
    
    CRGB ledBar[LEDBAR_PXL];
    
    void setup() {
      // put your setup code here, to run once:
      M5.begin();
      FastLED.addLeds<NEOPIXEL, LEDBAR_PIN>(ledBar, LEDBAR_PXL); // GRB ordering is assumed  
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
      FastLED.showColor(CRGB::Red);
      delay(1000);
    
      FastLED.showColor(CRGB::Black);
      delay(500);
    }
    

    So there is something wrong, either on FastLED lib, or on Core2 that makes somehow the LEDBar unusable.

    Here the crash debut in serial,

    11:28:29.400 -> Rebooting...
    11:28:29.400 -> ets Jul 29 2019 12:21:46
    11:28:29.400 -> 
    11:28:29.400 -> rst:0xc (SW_CPU_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
    11:28:29.400 -> configsip: 0, SPIWP:0xee
    11:28:29.400 -> clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
    11:28:29.400 -> mode:DIO, clock div:1
    11:28:29.400 -> load:0x3fff0030,len:1184
    11:28:29.400 -> load:0x40078000,len:13160
    11:28:29.400 -> load:0x40080400,len:3036
    11:28:29.400 -> entry 0x400805e4
    11:28:30.110 -> M5Core2 initializing...axp: vbus limit off
    11:28:30.110 -> axp: gpio1 init
    11:28:30.110 -> axp: gpio2 init
    11:28:30.110 -> axp: rtc battery charging enabled
    11:28:30.110 -> axp: esp32 power voltage was set to 3.35v
    11:28:30.110 -> axp: lcd backlight voltage was set to 2.80v
    11:28:30.110 -> axp: lcd logic and sdcard voltage preset to 3.3v
    11:28:30.110 -> axp: vibrator voltage preset to 2v
    11:28:30.632 -> touch: FT6336 ready (fw id 0x10 rel 1, lib 0x300E)
    11:28:31.243 -> E (1663) I2S: i2s_driver_uninstall(2006): I2S port 0 has not installed
    11:28:31.243 -> OK
    11:28:31.525 -> Guru Meditation Error: Core  1 panic'ed (Interrupt wdt timeout on CPU1). 
    11:28:31.560 -> 
    11:28:31.560 -> Core  1 register dump:
    11:28:31.560 -> PC      : 0x400d7f6a  PS      : 0x00060835  A0      : 0x800d1a49  A1      : 0x3ffb27b0  
    11:28:31.560 -> A2      : 0x3ffc1bd0  A3      : 0x3ffb27fd  A4      : 0x000000ff  A5      : 0x000009c4  
    11:28:31.560 -> A6      : 0x3ffc1bc4  A7      : 0x400d1d84  A8      : 0x800d7f6d  A9      : 0x3ffb2790  
    11:28:31.560 -> A10     : 0x000008f7  A11     : 0xffffffff  A12     : 0x3ffc1bc0  A13     : 0x3ffb27cd  
    11:28:31.560 -> A14     : 0x3ffb2a30  A15     : 0x00000000  SAR     : 0x0000000a  EXCCAUSE: 0x00000006  
    11:28:31.593 -> EXCVADDR: 0x00000000  LBEG    : 0x40085bc5  LEND    : 0x40085bcd  LCOUNT  : 0x00000027  
    11:28:31.593 -> 
    11:28:31.593 -> 
    11:28:31.593 -> Backtrace:0x400d7f67:0x3ffb27b00x400d1a46:0x3ffb27f0 0x400da5f5:0x3ffb2820 
    11:28:31.593 -> 
    11:28:31.593 -> 
    11:28:31.593 -> Core  0 register dump:
    11:28:31.593 -> PC      : 0x40104dae  PS      : 0x00060535  A0      : 0x800e4f91  A1      : 0x3ffbd240  
    11:28:31.593 -> A2      : 0x00000000  A3      : 0x4008717c  A4      : 0x00060520  A5      : 0x3ffbc750  
    11:28:31.627 -> A6      : 0x007bef88  A7      : 0x003fffff  A8      : 0x800e4b92  A9      : 0x3ffbd210  
    11:28:31.627 -> A10     : 0x00000000  A11     : 0x3ffbef84  A12     : 0x3ffbef84  A13     : 0x00000000  
    11:28:31.627 -> A14     : 0x00060520  A15     : 0x00000000  SAR     : 0x0000001a  EXCCAUSE: 0x00000006  
    11:28:31.627 -> EXCVADDR: 0x00000000  LBEG    : 0x00000000  LEND    : 0x00000000  LCOUNT  : 0x00000000  
    11:28:31.661 -> 
    11:28:31.661 -> 
    11:28:31.661 -> Backtrace:0x40104dab:0x3ffbd2400x400e4f8e:0x3ffbd260 0x4008c550:0x3ffbd280 
    11:28:31.661 -> 
    11:28:31.661 -> 
    11:28:31.661 -> 
    11:28:31.661 -> 
    11:28:31.661 -> ELF file SHA256: 0000000000000000
    11:28:31.661 -> 
    


  • It seems that FastLED.h lack of some developper to get it working properly on ESP32 now.
    I jumped to AdaFruit NeoPixel lib and run this sketch successfully using your PIN values.

    #include <M5Core2.h>
    #include <Adafruit_NeoPixel.h>
    
    #define LEDBAR_PXL 10
    #define LEDBAR_PIN 25
    
    Adafruit_NeoPixel ledBar(LEDBAR_PXL, LEDBAR_PIN, NEO_GRB + NEO_KHZ800);
    
    void setup() {
      M5.begin();
      // put your setup code here, to run once:
      ledBar.begin();
      ledBar.show();
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
      ledBar.fill(0xFF0000);
      ledBar.show();
      delay(750);
    
      ledBar.fill(0x000000);
      ledBar.show();
      delay(500);
    }