LoRaWAN: Equal time-on-air for different sized payloads

Hi!

I noticed that many of the airtime calculators available over the internet (including the one offered by TTN) gives the same time-on-air for packets with slight variations in payload size.

Is there any good explanation to this? Maybe someone has a good source about it (I am writing about it in my masters thesis :smiley: )

:thinking: In which case maybe we should leave you to work this out for yourself from the LoRaWAN specs and 1st principles vs telling you the secrets (also GIYF!) spoilers: LoRaWAN Headers, Payload format and structures, Forward error correct/CRC check/Coding scheme etc. yields a SF specific staircase/quantised increase in total payload/on airtime :wink:

Yes, thats how LoRa behaves.

Its due to the way the low level LoRa encoding is carried out, nothing to do with LoRaWAN\TTN really.

I guess I have to answer my own question :upside_down_face:

Time-of-air is calculated from the duration of the preamble and the transmitted packet

Screenshot 2021-05-21 at 20.58.30

Both of these durations are based on the symbol period, which is derived from the following equations:

Screenshot 2021-05-21 at 21.01.27

Screenshot 2021-05-21 at 21.01.46

First, the preamble duration is calculated from
Screenshot 2021-05-21 at 21.02.33
where n is the programmed preamble length (8 for EU868)

Next, the payload duration is calculated:

Screenshot 2021-05-21 at 21.04.23

The equation for number of payload symbols creates the staircase increase in total payload/on airtime.

For those who were wondering, these equations are drawn from the SX1276 datasheet (not the lorawan specification document)

At the lowest level of LoRa modulation, data is transferred in symbols, which may consist of between 6 to 12 bits (corresponding to the spreading factor). This is after channel coding, like bit shuffling, whitening, 4/5 error coding. So the 6…12 bits that are encoded on the air for each symbol do not align with a 8-bit input byte. It might happen that the last symbol only contains only one “useful” bit, but still a full symbol needs to be transmitted.

1 Like