Core 1 Guru Pannic.
-
I'm testing the ENVPro and M5Station for a video guide but between 30 mins and an hour the Station resets with the rolling error log:
E (2903049) mqtt_client: Error create mqtt task E (2918550) mqtt_client: esp_mqtt_set_config(415): Memory exhausted E (2918551) event: event_loop was NULL A fatal error occurred. The crash dump printed below may be used to help determine what caused it. If you are not already running the most recent version of MicroPython, consider upgrading. New versions often fix bugs. To learn more about how to debug and/or report this crash visit the wiki page at: https://github.com/micropython/micropython/wiki/ESP32-debugging MPY version : v1.24.0-dirty on 2025-01-18 IDF version : v5.2.2-dirty Machine : M5STACK Station with ESP32 Guru Meditation Error: Core 1 panic'ed (LoadProhibited). Exception was unhandled. Core 1 register dump: PC : 0x4016dee7 PS : 0x00060030 A0 : 0x8010d60f A1 : 0x3ffd24b0 A2 : 0x3ffe1d40 A3 : 0xffffffff A4 : 0x40111be4 A5 : 0x00000000 A6 : 0x3f4073a4 A7 : 0x00000000 A8 : 0x00000000 A9 : 0x3ffd2460 A10 : 0x002c8356 A11 : 0x3f435f7c A12 : 0xffffffff A13 : 0x40111be4 A14 : 0x00000000 A15 : 0x00001000 SAR : 0x0000000a EXCCAUSE: 0x0000001c EXCVADDR: 0x00000000 LBEG : 0x40083b51 LEND : 0x40083b59 LCOUNT : 0x00000027 Backtrace: 0x4016dee4:0x3ffd24b0 0x4010d60c:0x3ffd24d0 0x401125a1:0x3ffd26a0 ELF file SHA256: 041d1f64b Rebooting... ets Jul 29 2019 12:21:46 rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:1 load:0x3fff0030,len:5128 load:0x40078000,len:15884 ho 0 tail 12 room 4 load:0x40080400,len:4 load:0x40080404,len:3696 entry 0x400805c4 _ __ _ _ _(_)/ _| | _____ __ | | | | | |_| |/ _ \ \ /\ / / | |_| | | _| | (_) \ V V / \__,_|_|_| |_|\___/ \_/\_/ V2.2.1 E (2100) i2c: i2c driver install error E (2116) time: The current date/time in Shanghai is: Fri Nov 30 20:13:11 2001 E (2978) i2c: i2c driver install error E (431156) mqtt_client: No PING_RESP, disconnected E (542578) mqtt_client: No PING_RESP, disconnected E (573085) esp-tls: [sock=54] select() timeout E (573085) transport_base: Failed to open a new connection: 32774 E (573086) mqtt_client: Error transport connect E (573091) M5Things: Last error reported from esp-tls: 0x8006 E (610673) mqtt_client: No PING_RESP, disconnected E (642541) mqtt_client: No PING_RESP, disconnected E (764053) mqtt_client: No PING_RESP, disconnected
I've tried enabling gc (garbage collection) to clear the memory each loop but it make no difference and if you check out my code I don't have any MQTT function enabled!
import os, sys, io import M5 from M5 import * from hardware import I2C from hardware import Pin from unit import ENVPROUnit from hardware import RGB import time label0 = None rect0 = None label3 = None label1 = None label2 = None i2c0 = None rgb = None envpro_0 = None def setup(): global label0, rect0, label3, label1, label2, i2c0, rgb, envpro_0 M5.begin() label0 = Widgets.Label("label0", -3, 10, 1.0, 0xffffff, 0x000000, Widgets.FONTS.DejaVu18) rect0 = Widgets.Rectangle(-1, 111, 30, 20, 0x000000, 0xffffff) label3 = Widgets.Label("label3", -1, 60, 1.0, 0xffffff, 0x000000, Widgets.FONTS.DejaVu18) label1 = Widgets.Label("label1", -1, 35, 1.0, 0xffffff, 0x000000, Widgets.FONTS.DejaVu18) label2 = Widgets.Label("label2", -1, 87, 1.0, 0xffffff, 0x000000, Widgets.FONTS.DejaVu18) import gc i2c0 = I2C(0, scl=Pin(33), sda=Pin(32), freq=100000) envpro_0 = ENVPROUnit(i2c0) rgb = RGB() rect0.setColor(color=0x000000, fill_c=0x33cc00) def loop(): global label0, rect0, label3, label1, label2, i2c0, rgb, envpro_0 M5.update() gc.collect() label0.setText(str((str('Temperature: ') + str((envpro_0.get_temperature()))))) label1.setText(str((str('Pressure: ') + str((envpro_0.get_pressure()))))) label2.setText(str((str('Humidity: ') + str((envpro_0.get_humidity()))))) label3.setText(str((str('Gas RES: ') + str((envpro_0.get_gas_resistance()))))) if (envpro_0.get_humidity()) > 60: rgb.set_color(6, 0x3333ff) rect0.setColor(color=0x330033, fill_c=0x3333ff) else: rgb.set_color(6, 0x33cc00) rect0.setColor(color=0x330033, fill_c=0x33cc00) rect0.setSize(w=((int(envpro_0.get_humidity())) * 2), h=20) time.sleep(5) if __name__ == '__main__': try: setup() while True: loop() except (Exception, KeyboardInterrupt) as e: try: from utility import print_error_msg print_error_msg(e) except ImportError: print("please update to latest firmware")
I'm at a loss here and wondering if this is a firmware issue.