Wake from RM186 deep sleep using GPIO event or timer?

(Ian James) #1

Is it possible to wake an RM186 that is in deep sleep mode with an gpio event or a timer?

This is the code I use:

SUB PowerSave()
    rc = LoraMacSleepMode()

    //Put module into deep sleep
    rc = SystemStateSet(0)

My intention is to wake up once an hour, send a LoRa message and go back to sleep.



(Farren) #2

Hi Ian,

I just spent a few days experimenting with the RM186 module.
I kind of have mixed feelings about it especially the strange SmartBasic although I have managed to get my C mind around it now.
I have tried the deep sleep low power mode and it seems that if you use a Timer or GPIO pin to wake the module it starts up as if it has been reset, I am wondering how one is supposed to know what event woke the module from deep sleep if this is the case.
May as well just use the reset pin to bring it out of deep sleep.
Hopefully I am missing something as I would like to take advantage of the 750nA sleep but be able to have an external event that wakes the module, does something then puts it back to sleep without resetting everything.
Also dont want to put it into a standby or doze power mode as the consumption is much higher.
I emailed the Laird guys about this question, hope to get an answer.


(Farren) #3

Ok, just confirmed from Laird support that if the RM1xx is put into deep sleep
( 750nA ) it will vector to reset upon any event that wakes it , whether a timer or an external GPIO pin or the reset pin.

Only Standby Doze mode can be made to vector to a specific handler which is what I need for my application. Problem is that Standby current is 4.2uA.

With other LORA boars that I make using STM32L151 and RN2483 I manage to get 1uA sleep. So this is a bit of a deal breaker for me and I probably wont use the RM1xx in a final product. I should have read up a bit more before spending a few days getting around the smart Basic which I will not ever use again :frowning:



Hi @Farren,

Yes, RM1xx needs to be reset via GPIO to wake up from deep sleep but it has autorun mode so that application runs upon reset. So, I think most scenarios can be handled in application.

(Mphanke) #5


sorry for posting in this old thread, but I’m fighting with the exact same thing.

How did you guys solve this? I don’t get through to waking the system up again.
Are you performing a module reset via pin?

I can’t get the timer to trigger after I call the depicted PowerSave. (yes, timer is started before the calls :wink: