Welcome to the Pycom forum Forum
    • \[\[global:header.categories\]\]
    • \[\[global:header.recent\]\]
    • \[\[global:header.tags\]\]
    • \[\[global:header.popular\]\]
    • Login

    Explore Pybytes | Official Documentation | Report a Firmware Bug/Issue | GitHub

    Guru Meditation Error right after go_to_sleep()

    Scheduled Pinned Locked Moved LoPy
    lopydeepsleepshieldguru meditation
    5 Posts 2 Posters 1.4k Views 2 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • T Offline
      Thosch42
      last edited by

      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

      sebS 1 Reply Last reply Reply Quote 0
      • sebS Offline
        seb @Thosch42
        last edited by

        @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())
        
        1 Reply Last reply Reply Quote 0
        • T Offline
          Thosch42
          last edited by

          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

          1 Reply Last reply Reply Quote 0
          • sebS Offline
            seb
            last edited by

            @thosch42 said in Guru Meditation Error right after go_to_sleep():

            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)

            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.

            T 1 Reply Last reply Reply Quote 0
            • T Offline
              Thosch42 @seb
              last edited by

              @seb

              Yep! That fixed it.

              Thanks!

              Cheers,
              Thomas

              1 Reply Last reply Reply Quote 0

              Hello! It looks like you're interested in this conversation, but you don't have an account yet.

              Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

              With your input, this post could be even better 💗

              Register Login
              • 1 / 1
              • First post
                Last post

              Pycom on Twitter

              Pycom