Skip to content
Documentation sections

LoRa Link Budget Calculator — Sensitivity, Time on Air & Range

POSThttps://rftools.io/api/py/v1/calculate

Slug lora-link-budget. LoRa link budget from the Semtech SX1276 formulas: receiver sensitivity by spreading factor and bandwidth, symbol time, time on air with automatic low-data-rate optimisation, duty-cycle off-time, free-space or Okumura–Hata path loss, link margin and maximum range.

Inputs

Send every one of these in inputs, in the units shown. Most are required: a call without one is refused (400) and costs nothing; one the calculator can do without takes the default shown. An input outside its range is still computed and flagged in the provenance.

Inputs of lora-link-budget
NameUnitRangeDefaultDescription
spreadingFactornumbernone6 … 129Chips per symbol are 2^SF; each step up adds about 2.5 dB of sensitivity and doubles the airtime
bandwidthnumberkHzat least 7.8125LoRa signal bandwidth; 125 kHz in most LoRaWAN channels
codingRatenumbernone1 … 41Forward error correction: four data bits in five to eight coded bitsOne of: 1 4/5 · 2 4/6 · 3 4/7 · 4 4/8
payloadLengthnumberbytes1 … 25520Bytes in the LoRa payload, 1 to 255 (a LoRaWAN frame adds 13 bytes of overhead to the application data)
preambleLengthnumbersymbolsat least 08Programmed preamble symbols; 8 in LoRaWAN
implicitHeadernumbernone0 … 10Header ModeOne of: 0 Explicit header · 1 Implicit header
crcnumbernone0 … 11Payload CRCOne of: 1 CRC on · 0 CRC off
noiseFigurenumberdBat least 06About 6 dB for an SX127x with highest LNA gain
txPowernumberdBmany1414 dBm is the usual EU 868 MHz limit; 20 dBm with PA_BOOST
txGainnumberdBiany2.15Transmit Antenna Gain
rxGainnumberdBiany5Receive Antenna Gain
lossesnumberdBat least 02Cable & Other Losses
frequencynumberMHzat least 1868Frequency
pathLossModelnumbernone0 … 51Free space, or Okumura–Hata for an urban, suburban or rural pathOne of: 0 Free space · 1 Okumura–Hata, urban (small/medium city) · 2 Okumura–Hata, urban (large city) · 3 Okumura–Hata, suburban · 4 Okumura–Hata, rural quasi-open · 5 Okumura–Hata, rural open
distancenumberkmat least 0.0012Distance
baseHeightnumbermat least 130Used by Okumura–Hata, which covers 30 to 200 m
mobileHeightnumbermat least 0.11.5Used by Okumura–Hata, which covers 1 to 10 m
dutyCyclenumber%0.001 … 1001Share of time a device may transmit; 1% in the EU 868.0–868.6 MHz sub-band (ETSI EN 300 220-2)
extraLossCountnumbernone0 … 60How many further losses the link adds, such as building entry, foliage, body or polarisation mismatch (0–6)
extraLoss1numberdB0 … 500A further loss on the link, such as building entry, foliage, body loss or polarisation mismatch
extraLoss2numberdB0 … 500A further loss on the link, such as building entry, foliage, body loss or polarisation mismatch
extraLoss3numberdB0 … 500A further loss on the link, such as building entry, foliage, body loss or polarisation mismatch
extraLoss4numberdB0 … 500A further loss on the link, such as building entry, foliage, body loss or polarisation mismatch
extraLoss5numberdB0 … 500A further loss on the link, such as building entry, foliage, body loss or polarisation mismatch
extraLoss6numberdB0 … 500A further loss on the link, such as building entry, foliage, body loss or polarisation mismatch

Outputs

Returned in values, by key. A value that is unbounded or undefined is null.

Outputs of lora-link-budget
FieldUnitDescription
linkMarginheadlinedBLink Margin
sensitivitydBmReceiver Sensitivity
receivedPowerdBmReceived Power
pathLossdBPath Loss
maxRangekmMaximum Range
timeOnAirmsTime on Air
symbolTimemsSymbol Time
payloadSymbolsnonePayload Symbols
lowDataRateOptimizenoneLow-Data-Rate Optimisation (1 = On)
bitRatebit/sEquivalent Bit Rate
offTimesMinimum Off-Time After Each Packet
packetsPerHournonePackets per Hour at the Duty Cycle
totalLossdBThe cable and other losses, the path loss and every extra loss, added

Calling it

  • Calculate: one call, the request and response in full, and its errors.
  • Batch: this calculator with others, or a sweep, in one request.
  • Solve for a target: the value of one input that brings an output to a target.