Guru Meditation Error right after go_to_sleep()
-
Hi all!
I have a pretty bad error. Without deepsleep, my project runs seemlessly on my LoPy. With the build in deepsleep from the machine module, it runs also seemlessly. With the DeepSleep-Shield and the deepsleep lib (latest FW, latest lib), I get right after my ds.go_to_sleep(20) instruction an Guru Meditation Error: Core 1 panic'ed (IntegerDivisionByZero)
Anyone else with something like this?Cheers,
Thomas
-
-
@thosch42 said in Guru Meditation Error right after go_to_sleep():
from deepsleep import DeepSleep
import deepsleep
from machine import UARTds = DeepSleep()
get the wake reason and the value of the pins during wake up
wake_s = ds.get_wake_status()
print(wake_s)if wake_s['wake'] == deepsleep.PIN_WAKE:
print("Pin wake up")
elif wake_s['wake'] == deepsleep.TIMER_WAKE:
print("Timer wake up")
else: # deepsleep.POWER_ON_WAKE:
print("Power ON reset")uart = UART(1, baudrate=9600, pins=('P3', 'P4'))
uart.deinit()ds.go_to_sleep(20)
Hi,
With the UART code I was able to reproduce this bug, The deepsleep shield uses UART1 to communicate between the shield and the LoPy. Making two instances of UART 1 is likely the cause of the issue here. Since you are using a LoPy and not a GPy or FiPy I would recommend using UART2 instead, this made the issue go away for me.
-
Hi!
It seems to stick together with the UART1. os.uname() tells:(sysname='LoPy', nodename='LoPy', release='1.16.0.b1', version='v1.8.6-849-055728a on 2018-02-13', machine='LoPy with ESP32', lorawan='1.0.0')
Here is my minimum example, that shows the error. Just with a naked Lopy, with Deepsleep-Shield on a Expansionboard V2.1A.
from deepsleep import DeepSleep import deepsleep from machine import UART ds = DeepSleep() # get the wake reason and the value of the pins during wake up wake_s = ds.get_wake_status() print(wake_s) if wake_s['wake'] == deepsleep.PIN_WAKE: print("Pin wake up") elif wake_s['wake'] == deepsleep.TIMER_WAKE: print("Timer wake up") else: # deepsleep.POWER_ON_WAKE: print("Power ON reset") uart = UART(1, baudrate=9600, pins=('P3', 'P4')) uart.deinit() ds.go_to_sleep(20)
This give me imidiately after go_to_sleep
Guru Meditation Error: Core 1 panic'ed (IntegerDivideByZero) . Exception was unhandled. Register dump: PC : 0x400e1612 PS : 0x00060230 A0 : 0x800e16d2 A1 : 0x3ffd8c20 A2 : 0x3ffc1a5c A3 : 0x00a7d8c0 A4 : 0x00000000 A5 : 0x0000007f A6 : 0x3ffd8db8 A7 : 0x3ffd8e20 A8 : 0x00000000 A9 : 0x3ffd8d50 A10 : 0x00000000 A11 : 0x00000002 A12 : 0x00000000 A13 : 0x3ffd8e50 A14 : 0x00000001 A15 : 0x000006ea SAR : 0x00000006 EXCCAUSE: 0x00000006 EXCVADDR: 0x00000000 LBEG : 0x400ea3f0 LEND : 0x400ea41c LCOUNT : 0x00000eb0 Backtrace: 0x400e1612:0x3ffd8c20 0x400e16cf:0x3ffd8c50 0x400e174d:0x3ffd8c70 0x401b62d9:0x3ffd8c90 0x400f90ec:0x3ffd8cc0 0x400f9159:0x3ffd8cf0 0x400f40aa:0x3ffd8d20 0x400f0a41:0x3ffd8d50 0x400f0aa9:0x3ffd8d70 0x400fbe55:0x3ffd8d90 0x400f4134:0x3ffd8e30 0x400f0a41:0x3ffd8ec0 0x400f0aa9:0x3ffd8ee0 0x400fbe55:0x3ffd8f00 0x400f4134:0x3ffd8fa0 0x400f0a41:0x3ffd9020 0x400f0aa9:0x3ffd9040 0x400fbe55:0x3ffd9060 0x400f4134:0x3ffd9100 0x400f0a41:0x3ffd9140 0x400f0aa9:0x3ffd9160 0x400fbe55:0x3ffd9180 0x400f4134:0x3ffd9220 0x400f0a41:0x3ffd9260 0x400f0aa9:0x3ffd9280 0x400fbe55:0x3ffd92a0 0x400f4134:0x3ffd9340 0x400f0a41:0x3ffd93e0 0x400f0aa9:0x3ffd9400 0x400fbe55:0x3ffd9420 0x400f4134:0x3ffd94c0 0x400f0a41:0x3ffd9550 0x400f0a6e:0x3ffd9570 0x400dde0f:0x3ffd9590 0x400de0e0:0x3ffd9630 0x400dcf73:0x3ffd9650
Can someone reproduce this?
Cheers,
Thomas
-
@thosch42 said in Guru Meditation Error right after go_to_sleep():
ds.go_to_sleep(20)
Hi,
I was not able to replicate this using a LoPy on firmware
1.16.0.b1
. Could you please share your exact code along with the output for the following:import os print(os.uname())