2.1 KiB
2.1 KiB
LoRa Time on Air calculator
A calculator of the time on air of LoRa PHY frame in Python. This script refers to the section 4.1.1.6. LoRa Packet Structure, [SX1276/77/78/79 Datasheet][http://www.semtech.com/images/datasheet/sx1276_77_78_79.pdf].
The default value is aligned to LoRaWAN AS923.
Usage
lorawan_toa.py [-h] [--band-width N_BW] [--disable-dro] [--disable-eh]
[--cr N_CR] [--preamble N_PREAMBLE] [-v] [-d]
SF SIZE
positional arguments:
SF Spreading Factor. It should be from 7 to 12.
SIZE PHY payload size in byte. It's equal to the MAC
payload + 5.
optional arguments:
-h, --help show this help message and exit
--band-width N_BW bandwidth in kHz. default is 125 kHz.
--disable-dro disable the low data rate optimization. default is
enable as LoRaWAN does.
--disable-eh disable the explicit header. default is enable as
LoRaWAN does.
--cr N_CR specify the CR value. default is 1 as LoRaWAN does.
--preamble N_PREAMBLE
specify the preamble. default is 8 for AS923.
-v enable verbose mode.
-d increase debug mode.
Examples
with the -v option, it shows the ToA as well as the related information.
% python lorawan_toa.py 12 64 -v
PHY payload size : 64 Bytes
MAC payload size : 59 Bytes
Spreading Factor : 12
Band width : 125 kHz
Low data rate opt. : enable
Explicit header : enable
CR (coding rate) : 1 (4/5)
Preamble size : 8 symbols
Time on Air : 2793.472 msec
MAC frame data rate : 63.998 bps
without the -v option, it simply shows the ToA.
% python lorawan_toa.py --band-width=500 7 128
71.744
graph_as923.py
It makes a set of figures about Time on Air and PHYPayload size,
especially LoRaWAN AS923 using matlib like below.