📡 LoRaWAN IoT Network Coverage

LoRaWAN link budget: RSSI = P_tx + G_ant − L_path (Okumura-Hata). Spreading factor 7-12 trades data rate for range. See gateway coverage radius, packet success rate, and interference.

IoTInteractive
Click to move gateway · Green = in range · Red = out of range

How it Works

The simulator places a LoRaWAN gateway at the centre of a map (click to reposition). IoT nodes are scattered randomly. For each node, the path loss is calculated using the Okumura-Hata model, and the received signal strength is compared to the SF-dependent sensitivity threshold.

RSSI = P_tx + G_ant − L_path L_Hata = 69.55 + 26.16·log(f) − 13.82·log(hb) + (44.9 − 6.55·log(hb))·log(d) Sensitivity(SF7) = −123 dBm Sensitivity(SF12) = −137 dBm (+2 dB per SF step) Coverage: d_max where RSSI > Sensitivity

Frequently Asked Questions

What is LoRaWAN?

LoRaWAN (Long Range Wide Area Network) is an LPWAN protocol using LoRa modulation to connect battery-powered IoT devices over long distances (up to 15 km rural, 2-5 km urban) with very low power consumption — sensors can run years on a single battery.

What is the spreading factor in LoRa?

The spreading factor (SF7-SF12) controls how many chirps encode each symbol. Higher SF increases range and receiver sensitivity by ~2.5 dB per step, but halves the data rate and doubles air-time, increasing duty-cycle usage.

What is the LoRaWAN link budget?

The link budget is RSSI = P_tx + G_ant_tx − L_path + G_ant_rx. For LoRaWAN at 868 MHz, receiver sensitivity ranges from −123 dBm (SF7) to −137 dBm (SF12), giving link budgets of 154-168 dB including antenna gains.

What is the Okumura-Hata path loss model?

The Okumura-Hata model predicts path loss in urban/suburban environments: L = 69.55 + 26.16 log(f) − 13.82 log(hb) + (44.9 − 6.55 log(hb)) log(d). Parameters: f=frequency in MHz, hb=base station height, d=distance in km.

What is RSSI in LoRaWAN?

RSSI (Received Signal Strength Indicator) measures the received power in dBm. LoRa gateways need RSSI above the SF-dependent sensitivity threshold to successfully decode packets. Below threshold, the packet is lost.

What data rates does LoRaWAN support?

LoRaWAN data rates range from 0.3 kbps (SF12, BW125) to 50 kbps (SF7, BW500). The standard EU plan uses BW125 giving 0.3-5.5 kbps. Lower SF yields higher throughput but requires stronger signal level.

How many devices can a LoRaWAN gateway support?

A single LoRaWAN gateway can serve thousands of devices because each transmission is brief (0.1-2 seconds). Gateways use 8-channel concentrators to listen on multiple frequency channels simultaneously.

What is the LoRaWAN duty cycle limitation?

In Europe (868 MHz), devices must respect 1% duty cycle per sub-band, limiting transmission to 36 seconds per hour. This constraint bounds sensor reporting frequency and must be factored into network design.

What is ADR (Adaptive Data Rate) in LoRaWAN?

ADR allows the network server to optimise each device's SF and transmit power. Close devices drop to SF7 for high throughput; distant devices use SF12 for maximum range. This improves network capacity utilisation.

What are typical LoRaWAN deployment environments?

LoRaWAN is used for smart metering, agricultural monitoring, smart city parking, asset tracking, environmental sensing, and industrial IoT. Rural deployments achieve 10-15 km; urban deployments typically 1-3 km per gateway.

About this simulation

This simulator places a LoRaWAN gateway on a 20×10 km map and computes real Okumura-Hata path loss for every scattered IoT node, comparing the resulting RSSI against a spreading-factor-dependent sensitivity threshold (from −123 dBm at SF7 to −137 dBm at SF12) to color each node green (in range) or red (out of range). A binary search finds the exact coverage radius for your current Tx Power, Frequency, and Environment settings, live.

🔬 What it shows

A gateway-centered coverage map where node connectivity is decided by an actual link-budget calculation — not a fixed circle — so the coverage radius genuinely shrinks or grows as you change spreading factor, transmit power, frequency, or environment type.

🎮 How to use

Adjust Spreading Factor, Tx Power, Freq, Environment, and Nodes count, click to move the gateway anywhere on the map, and press ⟳ Scatter Nodes to redraw random device positions. Watch the Link Budget panel update sensitivity, max path loss, coverage radius, and data rate in real time.

💡 Did you know?

Climbing from SF7 to SF12 roughly doubles your coverage radius but cuts data rate from about 5470 bps to 250 bps — LoRaWAN's entire spreading-factor system exists to let each device trade throughput for range, and this simulator lets you watch that trade-off happen live.

Frequently asked questions

Why does increasing Spreading Factor push more red nodes to green?

SF_SENSITIVITY maps each SF to a lower (more negative) sensitivity threshold — SF12's −137 dBm is 14 dB more sensitive than SF7's −123 dBm — and computeCoverageRadius() binary-searches for the distance where Hata path loss first exceeds that new, larger allowed maxPL, directly expanding the coverage radius.

Why does switching Environment from rural to urban shrink the coverage circle?

pathLossHata() applies different correction terms for each environment — the rural term subtracts a large frequency-dependent factor from the base Hata loss, effectively giving rural areas much lower path loss per kilometre than urban, so the same maxPL budget is exhausted at a shorter distance in cities.

Why does raising the Freq slider reduce coverage even with everything else unchanged?

The Hata formula includes 26.16·log10(f), so path loss grows directly with the logarithm of frequency — higher frequencies attenuate faster over the same distance, which is why sub-GHz LoRaWAN bands (433-868 MHz) are chosen specifically for long-range IoT rather than higher ISM bands.

Why does Tx Power increase range less than doubling it might suggest?

maxPL = txPow + G_ant − sensitivity + G_ant enters the coverage radius through a logarithmic path-loss model, so each added dB of transmit power buys progressively less extra distance — this is the same diminishing-returns physics behind all radio link budgets, not a quirk of this simulator.

Why do only some nodes go red when I increase the Nodes count without changing anything else?

randomNodes() scatters positions uniformly across the whole map regardless of the gateway's coverage radius, so as node count grows, more of them simply land outside the same fixed coverage circle by chance — the red/green split reflects genuine physical range, not the number of nodes itself.