LoRa Basics: Range, Bandwidth, and Frequency Bands

LoRa (Long Range) is a wireless modulation technique designed for low-power, long-distance communication of small amounts of data. It's not WiFi. It's not Bluetooth. It's a purpose-built radio technology for sensor networks and IoT devices that need to send small messages over kilometres using a coin cell battery. Understanding how it works explains both its strengths and its constraints.

What LoRa Actually Is

LoRa is a proprietary spread spectrum modulation method developed by Semtech. "Spread spectrum" means the signal is spread across a wider bandwidth than strictly necessary — this makes it resistant to interference and allows signals to be decoded even when they're below the noise floor. The chirp spread spectrum (CSS) technique LoRa uses makes it extremely resilient in noisy radio environments.

PropertyLoRaWiFi (2.4GHz)ZigbeeBluetooth LE
Range (line of sight)2–15 km50–100m100m10–100m
Range (urban)1–3 km20–50m30–50m10–30m
Data rate0.3–50 kbps1–600 Mbps250 kbps1–2 Mbps
Power (TX)Very lowHighLowVery low
Battery lifeYearsHours/daysMonthsDays/months
TopologyStar or meshStar (AP)MeshStar or mesh

Frequency Bands

LoRa operates in unlicensed ISM bands. The correct band depends on your country — using the wrong frequency is illegal:

BandRegionsNotes
433 MHzAsia, parts of EuropeBetter penetration through walls and vegetation; longer wavelength
868 MHzEuropeEU standard band; 1% duty cycle restriction applies
915 MHzNorth America, Australia, South AmericaCanada: 915 MHz (Industry Canada ISM band); no duty cycle restriction in most regions
923 MHzJapan, Southeast AsiaAS923 regional parameter set

In Canada, the 915 MHz band (902–928 MHz) is the right one. Waveshare LoRa modules come in 433MHz and 915MHz variants — get the right one.

Spreading Factor

Spreading Factor (SF) is the most important tunable parameter in LoRa. It controls the tradeoff between range and data rate:

Spreading FactorData rate (approx.)Range (relative)Airtime per packetUse case
SF7~5.5 kbpsShort~50msShort range, high throughput
SF8~3.1 kbpsMedium-short~100msMedium range
SF9~1.8 kbpsMedium~200msMedium range
SF10~1.1 kbpsMedium-long~370msLonger range
SF11~0.5 kbpsLong~740msLong range, slow
SF12~0.3 kbpsMaximum~1.5sMaximum range, very slow

Each step up in SF roughly doubles the range but also doubles the time-on-air (and doubles the power used). For Meshtastic in fields with clear line of sight, SF9 or SF10 is a reasonable starting point. In dense vegetation or over rough terrain, SF11 or SF12.

Bandwidth and Coding Rate

Bandwidth options: 125 kHz, 250 kHz, 500 kHz
  - Wider bandwidth = faster data rate, shorter range
  - 125 kHz is the standard for most long-range use

Coding Rate: 4/5, 4/6, 4/7, 4/8
  - Higher coding rate = more redundancy = better error correction = slower
  - 4/5 is typical (20% overhead)
  - 4/8 is used in very noisy environments (100% overhead)

Approximate formula for data rate:
  DR = SF × (BW / 2^SF) × CR

For SF10, BW=125kHz, CR=4/5:
  Effective bit rate ≈ 1.1 kbps
  For a 50-byte Meshtastic packet: airtime ≈ 400ms

Link Budget

Link budget = TX power + TX antenna gain - cable losses
            - free space path loss
            + RX antenna gain - RX sensitivity threshold

Example (915 MHz, 1km, SF10):
  TX power:            20 dBm (100mW — typical Waveshare module max)
  TX antenna:          +2 dBi (small omnidirectional)
  Free space path loss: -91.5 dB at 1km, 915 MHz
  RX antenna:          +2 dBi
  RX sensitivity:      -137 dBm (SF10, 125kHz bandwidth)

  Link margin = 20 + 2 - 91.5 + 2 - (-137) = 69.5 dB link margin

A margin of 69.5 dB is enormous — 1km with SF10 is easy in clear conditions.
Real-world loss from vegetation, terrain, and buildings easily eats 20-40 dB.

Antenna, Polarization, and Installation

A good radio module cannot compensate for a poor antenna installation. The antenna must match the regional band, be connected before transmitting, and have a clear return path through the radio ground.

  • Use a 915 MHz antenna with a 915 MHz module in Canada; do not tune a 433 MHz antenna by guesswork.
  • Keep the antenna vertical on both ends of a normal field link. A horizontal antenna can lose a large amount of signal against a vertical one.
  • Keep metal, batteries, carbon-fibre parts, and long unshielded wires away from the radiating element.
  • Every connector and cable adds loss. A shorter, better coax run is usually more useful than a higher advertised antenna gain.
  • Respect the legal transmit-power and antenna-gain limits for the region. Link budget calculations are not permission to exceed them.

Airtime, Capacity, and Collisions

Long range does not mean unlimited capacity. LoRa is a shared channel: while one node is transmitting, other nodes may have to wait or collide. Higher spreading factors keep packets on the air longer, which makes a busy mesh less efficient.

LoRa Spreading Factor Trade-offs A chart showing that as Spreading Factor increases from SF7 to SF12, the range and airtime increase significantly, while the data rate decreases. Spreading Factor (SF) SF7 SF8 SF9 SF10 SF11 SF12 Range & Airtime Data Rate Short Range Fast (~5kbps) Max Range Slow (~0.3kbps)
Figure 1: The Spreading Factor (SF) trade-off. Increasing the SF doubles the time-on-air and range at each step, but drastically reduces the available data rate.
For a field mesh:
  - keep messages short
  - avoid frequent position broadcasts
  - do not send telemetry more often than the project needs
  - use the lowest reliable preset found by testing

A node that can barely hear a packet is not automatically a good relay. It may consume airtime while producing retries and missed messages. Measure delivery over time, not just one successful packet.

Repeatable Range Testing

1. Use identical regional settings and channel configuration on both nodes.
2. Start with a known location and record antenna height.
3. Send a numbered test message or use the Meshtastic range-test module.
4. Record RSSI, SNR, packet loss, distance, weather, and terrain.
5. Repeat the route in the other direction if possible.
6. Change only one variable—height, antenna, preset, or power—between tests.

This produces information you can use later. “It worked once from the truck” is a useful observation, but it is not a coverage result.

LoRa vs. LoRaWAN vs. Meshtastic

Raw LoRaLoRaWANMeshtastic
What it isThe radio modulation itselfProtocol layer on top of LoRa; requires gateways and network serverMesh protocol on top of LoRa; no infrastructure needed
TopologyPoint-to-point or customStar (nodes → gateways → server)Mesh (nodes relay for each other)
InfrastructureNoneGateways + network server (TTN, Chirpstack)None — nodes form the network
Range extensionManual relay nodesMore gatewaysAutomatic — any node relays
Best forCustom protocols, researchLarge-scale sensor networks with infrastructureOff-grid mesh communication; field deployment without infrastructure

References