Wake-Up Via LoRa

  • Greetings,

    I have a desire to wake up a LoPy via LoRa if that is possible. I know this thread to a degree has it answered, but is this still the case? https://forum.pycom.io/topic/1165/wake-up-lopy-in-sleep-mode-with-another-lopy
    Such as:

    if events & LoRa.RX_PACKET_EVENT:
         print('Lora packet received')

    I would like to treat a LoRa node system like a Master-Slave relationship to avoid collisions if two or more "node" LoPy's send at the same time.

    Currently I have my "nodes" just send and wait for an acknowledge, but I think a master request and slave respond then go back to sleep system may be more efficient power wise.
    Any thoughts?

  • @burgeh It depends a lot, but generally (and specifically in your case), no.

    Listening for LoRa packets consumes power. The LoRa chip on the LoPy 4 (SX1276) uses 10 mA when listening, and the rest of the LoPy uses about 50 mA average. You could probably reduce the ESP32 power draw with some more or less advanced uses of sleep (i.e. not out of the box), but we're still talking tens of mA, compared to about 10-20 µA in deep sleep.

    This means that if you are listening all the time, even a relatively large 2500 mAh battery will only last a few days. This may or may not be a problem for you depending on the use case (mains powered, enormous battery, solar powered, ability to recharge/change battery often...), but this is usually not the kind of use case for LoRa, and from your question "more efficient power wise", it's clearly not what you are looking for.

    So it usually remains more power efficient to deep sleep, wake up on whatever event (time, pin change...), send the frame, check for an ACK, retry if no ACK was received, and go back to deep sleep.

    Note also that there are many other reasons than just another one of your nodes sending data that could trigger a frame being lost. The frequency bands are shared, so there will be other devices using them, and you will end up with collisions and other forms of noise even if you control when all of your devices send.

Pycom on Twitter