LoRa receive windows
In the example of LoRaWAN with OTAA join method
# code block #make the socket blocking #(waits for the data to be sent and for the 2 receive windows to expire) s.setblocking(True)
i have two questions :
What is the time of the two receive windows because when I try to put this before sending an unconfirmed LoRa frame it takes 1 to 2 seconds between sending two frames?
Can i define the duration of the two windows manually or it will be done automatically by adding socket.setblocking(True) ?
@jcaron Now I have set the parameter in the Lora Stack for timing error to 100ms, which seems to give proper joins.
@jcaron I'm fighting since days with the OTAA join. On some days it works, on the next in the same set-up not. I found that variation of the time at which the node starts receiving is about 15 ms.
Do you know how long the receive windows are set on xxPy? Looking at the time stamps I gathered it is about 26ms for Window1 and about 200ms for Window2.
@robert-hh I suppose that would be up to the network to decide rather than the node. Note that the two RX windows use different parameters (frequency, data rate...), so they’re not quite equivalent.
@jmarcelino Since timeing is a little bit inconsistent, is there a way to tell TTN or the gateway to use the second receive window, as that seems to be a little bit longer?
In raw LoRa mode there are no set receive windows, once you call lora.recv(..) it should start receiving.
Hi @jmarcelino thanks for your response, I am a beginner in lora; and my objective is to make a communication between two nodes (lopy) in loRa mode
So I want to know if these settings are the same if we work in LoRa mode and not LoRaWAN? because if we take into account the two reception windows of LoRaWan normally it takes all the time 2 seconds between sending 2 non confirmed msg. but in my example (LoRa mode) it takes 1 to 2 seconds between sending 2 frames.
The receive window timings of LoRaWAN are defined in the LoRaWAN specification, namely in the regional settings document.
For the EU 868 Mhz region:
First receive window 1s
Second receive window 2s
OTAA Join accept has different windows (at 5s and 6s)
There isn't a specific value for the window duration, the stack will listen for a packet preamble indicating there is data to receive and if so the window will be kept open until all the data is received (maximum 3s)
You cannot change this on the LoPy other than changing and source code and flashing it with a custom build - then you'll also have to make sure your network server knows about those settings. Alternatively the network server can also change the receive window timings in the OTAA response.