RAK4631 Low Power LoRaWAN Example Rx Windows

I’m using the latest RAK4631 LoRaWAN Deep Sleep demo with v2.0.0 Sx126x-Arduino LoraWAN library and have noticed that instead of 2 Rx windows 1 second after the uplink I get one long 4 second Rx window.

as compared to an elsys EMS LoRaWAN sensor on the same Chirpstack network server through the same gateway which clearly shows 2 rx windows (won’t let me post the picture!).

My region is EU868, ADR is off, I’m on SF7.

Is there a setting I’ve missed or is this a bug/omission?

I’d like to get the 2 rx windows in order to save a little more power.

Best Regards

Here’s the Elsys EMS Mini Sensor showing its uplink followed by 2 separate Rx Windows:

It is a problem inside the SX126x-Arduino library. The RX stays active from beginning of RX1 to the end of RX2.
It is a known problem and we are working on a solution.

1 Like


Is this issue solved ?

I have some issue with RX2 and I think it’s linked : I can’t join a french operator (Live object) because Join Accept is never received. I checked everything and for it’s because of bad freq or SF. So is it possible that RX1 windows, staying active means that RX2 window is not activated ?

PS : with TTN it works like a charm, but as I understand it, TTN sends on both RX1 and RX2 join accept packet.


It is not that RX2 window is not activated. The behavior of the library is that RX1 and RX2 windows are connected and the transceiver is listening from beginning of RX1 to the end of RX2.

This behavior is not easy to change and it does not limit the functionality, it only has an influence on the power consumption.

I looked into Orange Live Object, because I wanted to run a test.
But it is not clear how I would connect my gateway to their LoRaWAN server. Can Live Object only be used with Orange owned gateways?

Yes Orange is the historic telephone operator in France. They just created their own LoRa offer, so you have to buy subscriptions to access their LoRaWAN network.

Yes I got your behaviour, but are we sure that RX2 window parameters (freq, SF …) are applied ? I tell that because the first jeflofts’s current analysis is very flat, like nothing is changed.


So nothing I can test.

We tested the library against all LoRaWAN regions and with TTN V3, Chirpstack and ResIoT (myself) network servers and there was no problem with the RX2 window parameters. Is there a way to find out what Orange is using for the RX2 window? Are they different from the EU868 definitions in the LoRaWAN specifications? The latest I have (RP-2-1.0.3) says:
The RX2 receive window uses a fixed frequency and data rate. The default parameters are 869.525 MHz / DR0 (SF12, 125 kHz)

When I create an object in Liveobject’s platform, I can specify a profil (typically SF9RX2 or SF12RX2) and I tested a lot of them without success. As I’m testing other platforms and stacks, I know it should work because some of them work (but to be honnest, I did not succeedf on all of them, but TTN yes).

I tested with my TTNv3 gateway and it was ok but when I look in gateway logs, it shows that the join accept is sent with SF=7 so I guess it’s RAK4631 use RX1 (more, I guess TTN sends join accept both on RX1 and RX2).

My point of view is : LiveObject use RX2 only, so it explains why it fails with it and not with TTN if RX2 parameters are not applied. I will try to force the library to use DR_0 and 869.525 MHz for RX1 and I will see …

Ok so I did my tests … Nothing. I switch back my modifications … Device joined ! So I guess when I change device profile on LiveObject platform it’s not taken account immediatly.

I will try to switch back to other profiles to be sure …

EDIT : confirmed, it was just a profile issue … For the record : use “Generic_classA_RX2SF12”