ESP32_LoRaWAN without DeepSleep()?

How can I use the ESP32_LoRaWAN without DeepSleep()? If I use Radio.IrqProcess() and delay() instead of LoRaWAN.sleep(), the loop seems to miss some events like

  • DIO0:TX Done
  • DIO0:RX Done.


You can use Class_C mode of LoRaWAN.In this mode, Lora will not sleep.

1 Like

Made my day :slight_smile:

Hi Johannes,
sounds like you got it working, can you share your code or how to do it?

I used the OTAA_OLED example with Class_c and replaced LoRaWAN.sleep() with Radio.IrqProcess() and delay() but it isnt working, i think its still missing events.

Edit: Nevermind my mistake, i never tried it with just setting Class_C. Just setting the class with no other changes works and it does not sleep anymore.

As a feedback for Heltec, i think the LoRaWAN library could use some improvements at this point. Calling sleep when the device should not sleep is a bit misleading and removing the sleep does completely break the LoRa communication which is not what you would expect.


Hi Iodemo,
Just wanted to answer, but you where faster.
I completely agree with you … removing sleep completely breaks the LoRa communication.