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

    Pytrack deepsleep wakeup on pin problems

    Scheduled Pinned Locked Moved Expansion Board
    2 Posts 2 Posters 168 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.
    • P Offline
      Peter Ehses
      last edited by Peter Ehses

      Hi,
      I'm trying to have my GPy on a Pytrack wake up from deepsleep once the onboard button is pushed.
      I'm trying to use the pycoproc deepsleep function as this gives me a lower sleep current.
      I'm neither able to use the P14 on board button nor the P9 "INT Pin" to wakeup.
      What is a known hardware setup to get the Pycom pin wakeup working?
      Is there any way to use an existing button (GPy reset or P14) instead of a new one?

      Alternatively, how do I disable all Pytrack chips without turning the GPy's power off so I can sleep it separately?

      -Edit-

      The exact problem apart from no real documentation on how to set the INT pin up is that I have another device on Pin 9 and would like to get around undoing that whole thing.
      (I'm using P9, P10, P11, P18, P19, P20 for an e paper display)
      With machine.deepsleep() and every radio disabled I get about ~30mA current draw. With the same code on an Expansion board instead of a Pytrack I get ~500uA, With py.go_to_sleep() I get either ~6mA (probably due to a problematic wakeup pin config / setup) or <150uA (which is expected because of my peripherals and OK-ish) with no real pattern.

      I am using this to turn off GPS and

      self.lte.disconnect()
      self.lte.detach()
      self.lte.send_at_cmd('AT!="CBE::powerOff"')
      self.lte.deinit()
      

      to turn the LTE as off as possible.
      my boot.py is

      import network
      import gc
      import os
      import pycom
      
      pycom.heartbeat(False)
      
      bt = network.Bluetooth()
      bt.deinit()
      
      ap = network.WLAN()
      ap.deinit()
      
      server = network.Server()
      server.deinit()
      
      gc.enable()
      

      which should cover all bases.

      To try the Pytrack deepsleep with Pin Wakeup I've tried

      py.setup_int_wake_up(False, False)
      py.setup_int_pin_wake_up(False)
      py.setup_sleep(20)
      py.go_to_sleep(False)
      

      which does nothing when jumping P#9 to either GND ore 3V3.
      The timed restart is also so-so as it sometimes doesn't restart after my 20s but instead after a minute, 5 or never.

      J 1 Reply Last reply Reply Quote 0
      • J Offline
        jcaron @Peter Ehses
        last edited by

        @Peter-Ehses The whole Pytrack/Pysense wake-on-pin is a bit of a mess in my experience, but you can make it work.

        The trick is to cut (or somehow isolate) P9 on the *Py module. Otherwise you'll get all sorts of weird behaviour because P9 is (indirectly) pulled low during Pytrack/Pysense-controlled deep sleep.

        The right order for the calls on a Pysense is (or was, the last time I played with that):

                  py.setup_sleep(SLEEP)
                  py.setup_int_pin_wake_up(not p)
                  py.go_to_sleep()
        

        (here p is the current state of the pin, so it dictates whether we want to wake up on falling or rising edge)

        Don't quite remember where the setup_int_wake_up call fits (didn't use it in my case), but most likely after the setup_sleep.

        See previous discussions on this topic:
        https://forum.pycom.io/topic/2829/pysense-external-wakeup-pin-p9-is-pulled-low-when-in-deepsleep
        https://forum.pycom.io/topic/1673/pysense-pinout-wake-on-pin

        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