core dump problem
-
I was running a simple pymesh with 3 LoPy4s.
I had encountered the kernel panic core dump guru meditation problem until I pycom.wifi_on_boot(False). This seemed to stop the devices from crashing.
However, one of the devices crashed and I can't get to bootup properly. Below is the dump from when it crashes
I've tried the following:
-
flashing the Expansion Board 3.1 with thefirmware expansion31_0.0.11.dfu
-
flashing the LoPy4 with the licensed version of the firmware LoPy4-1.20.1.r2
-
flashing the Expansion Board 3.1 with thefirmware expansion31_0.0.11.dfu
-
flashing the LoPy4 with using the most recent firmware from the PyCom firmware gui
-
I've also tried wiping the LoPy4 just using os.fsformat("/flash").
After all doing all of those (and some combinations of the above), I still get the dump below.
Further below I've attached the code that was running on the device when it was running. I haven't really changed much from the example online other than the following:
- turning wifi on boot to false
- sending a message to a node in the network
The main.py code was running fairly well, so I'm confused!
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:0x3fff8020,len:8 load:0x3fff8028,len:2164 load:0x4009fa00,len:19944 entry 0x400a05e8 MAC ok 3 Settings: {'ble_api': True, 'autostart': True, 'MAC': 3, 'debug': 5, 'LoRa': {'sf': 7, 'region': 5, 'freq': 863000000, 'bandwidth': 2}, 'ble_name_prefix': 'PyGo ', 'Pymesh': {'key': '112233'}} Guru Meditation Error: Core 0 panic'ed (LoadProhibited). Exception was unhandled. Core 0 register dump: PC : 0x40090fa8 PS : 0x00060033 A0 : 0x40092c33 A1 : 0x3ffbb700 A2 : 0x3ffc42bc A3 : 0x7fffffff A4 : 0x00050023 A5 : 0x00000000 A6 : 0x3ffdd8c8 A7 : 0x00000000 A8 : 0x3ffc412c A9 : 0x00000000 A10 : 0x00000001 A11 : 0x3ffb4d38 A12 : 0x00000000 A13 : 0x00000005 A14 : 0x3ffc4030 A15 : 0x3ffc4134 SAR : 0x00000012 EXCCAUSE: 0x0000001c EXCVADDR: 0x0000000c LBEG : 0x400ec0c4 LEND : 0x400ec103 LCOUNT : 0x00000000 Backtrace: 0x40090fa8:0x3ffbb700 0x40092c30:0x3ffbb720 0x40092be6:0x00000000 Guru Meditation Error: Core 0 panic'ed (LoadProhibited). Exception was unhandled. Core 0 register dump: PC : 0x400930fa PS : 0x00060033 A0 : 0x800926a5 A1 : 0x3ffbb3a0 A2 : 0x3ffbb3f0 A3 : 0x3ffbb3c0 A4 : 0x00000020 A5 : 0x3ffc412c A6 : 0x00000002 A7 : 0x3ffbb800 A8 : 0x00000000 A9 : 0x3ffdf7c0 A10 : 0x3ffbb408 A11 : 0x3ffc4134 A12 : 0x3ffdf7c0 A13 : 0x3ffe3130 A14 : 0x00000001 A15 : 0x3ffbb6f0 SAR : 0x0000000a EXCCAUSE: 0x0000001c EXCVADDR: 0x0000000c LBEG : 0x40098758 LEND : 0x40098763 LCOUNT : 0x00000000 Backtrace: 0x400930fa:0x3ffbb3a0 0x400926a2:0x3ffbb3c0 0x40093fd1:0x3ffbb3f0 0x4009431e:0x3ffbb5c0 0x40093c36:0x3ffbb600 0x40093e8a:0x3ffbb620 0x4008395e:0x3ffbb640 0x40090fa5:0x3ffbb700 0x40092c30:0x3ffbb720 0x40092be6:0x00000000 Re-entered core dump! Exception happened during core dump! Rebooting... ets Jun 8 2016 00:22:57
import pycom import time from network import LoRa import time import socket pycom.wifi_on_boot(False) try: from pymesh_config import PymeshConfig except: from _pymesh_config import PymeshConfig try: from pymesh import Pymesh except: from _pymesh import Pymesh def new_message_cb(rcv_ip, rcv_port, rcv_data): ''' callback triggered when a new packet arrived ''' #print('Incoming %d bytes from %s (port %d):' % # (len(rcv_data), rcv_ip, rcv_port)) #print(rcv_data) time.sleep(1) # user code to be inserted, to send packet to the designated Mesh-external interface for _ in range(3): pycom.rgbled(0x888888) time.sleep(.2) pycom.rgbled(0) time.sleep(.1) return pycom.heartbeat(False) # read config file, or set default values pymesh_config = PymeshConfig.read_config() #initialize Pymesh pymesh = Pymesh(pymesh_config, new_message_cb) mac = pymesh.mac() while not pymesh.is_connected(): #print(pymesh.status_str()) time.sleep(1) def new_br_message_cb(rcv_ip, rcv_port, rcv_data, dest_ip, dest_port): ''' callback triggered when a new packet arrived for the current Border Router, having destination an IP which is external from Mesh ''' print('Incoming %d bytes from %s (port %d), to external IPv6 %s (port %d)' % (len(rcv_data), rcv_ip, rcv_port, dest_ip, dest_port)) print(rcv_data) # user code to be inserted, to send packet to the designated Mesh-external interface # ... return while True: pymesh.send_mess(1, "msg from 3") time.sleep(10)
-
-
Dear Jim,
I was running a simple pymesh with 3 LoPy4s.
Unless you would be running Pymesh, you might be able to succeed following the same route as @sita within [1].
So, if you don't absolutely depend on Pymesh, you might want to try one of our Dragonfly firmware builds [2]. Some have been successful mitigating spurious core panics with it.
If core panics are still happening, I will be happy to receive respective core dumps from it. If you could share the MicroPython code it would even be better in order to reproduce the problem.
With kind regards,
Andreas.[1] https://forum.pycom.io/topic/5560/guru-meditation-error
[2] https://community.hiveeyes.org/t/dragonfly-firmware-for-pycom-esp32/2746