Chapters

8 LoRa Modulation and Spreading Factors

lorawan
lora
modulation

  1. Radio Remi watches a field sensor send a short radio message that fades just before the receiver, with several transmission choices still unresolved.

    What could help the short message cross the weak link?

CP-0139 pre-concept hook: What could help the short message cross the weak link?

8.1 Start Simple

Trade One Weak-Link Gain Against Airtime

Picture a field sensor whose short message barely reaches the receiver. Making the radio easier to hear may keep it on air much longer, which costs energy and shared channel time. The first comparison changes one setting and measures both effects.

Bandwidth means the range of radio frequencies used to carry a signal. Modulation means changing a radio signal over time to carry information. A payload means the useful reading or command inside a message.

Record spreading setting, bandwidth, error protection, payload size, signal margin, airtime, energy, and receiver result. Weaken the path, repeat the packet, change one setting, and restart the receiver. Compare successful delivery with total channel cost.

This runway does not prove coverage, legal compliance, or fleet capacity from one bench link. The deeper sections explain chirps, spreading, coding, data rate, airtime, sensitivity, regional limits, and measured trade-offs.

Imagine turning one radio knob and getting two effects at once: a weaker signal may become readable, but the message occupies the channel for longer. That is the central LoRa modulation tradeoff. Spreading factor, bandwidth, coding rate, payload size, and regional limits are not isolated facts. They become airtime and link-margin evidence that the network must be able to defend.

The mathematical gist. At this chapter’s SF10 and 125 kHz, one symbol lasts 8.192 ms, the chirp slope is 15.3 MHz/s, and the 1,024 dechirped FFT bins are 122.07 Hz apart. Symbol 256 therefore starts 31.25 kHz, or exactly 25%, across the channel. The starting-frequency offset carries the symbol; amplitude does not.

Math Bridge · guided foundationsHow do ten bits become one chirp starting frequency?Let Eddie walk from symbol time to chirp slope, FFT bins, and offset.

Overview: LoRa Modulation Turns Radio Settings Into Airtime Evidence

LoRa is the physical radio modulation used by LoRaWAN. It sends symbols as chirps: controlled sweeps across a channel span. LoRaWAN adds the network behavior around that radio, but modulation review starts with radio settings, payload size, observed link evidence, and time on air.

The beginner mistake is choosing the highest spreading factor by habit. Higher spreading factors can help weak links, but they also keep the channel occupied longer. A defensible choice records why the setting fits the device group, message schedule, gateway evidence, regional profile, and ADR handoff.

If you only need the intuition, this layer is enough: spreading factor is not a quality slider. It is a tradeoff between link margin and airtime, and the release decision needs evidence for both sides.

A simple scale check keeps the tradeoff concrete. With a 125 kHz LoRa bandwidth, symbol time is about 1.024 ms at SF7 because 2^7 / 125,000 seconds is 0.001024. At SF12 it is about 32.768 ms, or 32 times longer before payload, preamble, header, coding-rate, and retry details are counted. If 200 sensors all default to the slowest setting, the release problem is no longer only "can one device be heard"; it becomes whether the shared channel, gateway duty, retry pattern, and application schedule still fit.

Inspect Figure 8.1 with one question from the “settings”–“airtime” decision: how does “settings” constrain “Airtime”? The answer supports LoRa modulation review keeps radio settings, link evidence, airtime pressure, ADR policy, and release decisions in separate lanes.

LoRa modulation boundary map with radio settings, airtime evidence, link evidence, channel use, ADR handoff, and release review.
Figure 8.1: LoRa modulation review keeps radio settings, link evidence, airtime pressure, ADR policy, and release decisions in separate lanes.

Use “settings” as the entry point to Figure 8.1. Read “Airtime” next, with “evidence” as the bridge to “Channel”. This route gives practical meaning to LoRa modulation review keeps radio settings, link evidence, airtime pressure, ADR policy, and release decisions in separate lanes and supplies the review sequence for the “settings”–“airtime” decision.

Spreading Factor

Controls symbol duration. Lower settings reduce airtime; higher settings can support weaker links when the evidence justifies the cost.

Bandwidth

Defines the channel span used by the chirp. It interacts with sensitivity, data-rate choices, and regional profile constraints.

Coding Rate

Adds redundancy for error tolerance. More redundancy can help robustness, but it also adds transmitted symbols.

Payload Fit

Payload length, headers, joins, MAC commands, retries, and acknowledgements all affect the channel budget.

Overview Knowledge Check

Practitioner: Write the Modulation Review Record

A practical modulation record ties the setting to one message class and one deployment condition. The reviewer should not approve "LoRa works" as a broad claim. The record should say which payload, which message schedule, which regional profile, which gateway evidence, which data-rate or ADR policy, and which retest trigger are in scope.

Before deciding the “symbol”–“chirp” decision, inspect “symbol” in Figure 8.2 and compare it with “Chirp”. That contrast matters because Chirp spread spectrum explains the radio mechanism; the release record still needs observed link and airtime evidence.

LoRa chirp spread spectrum decoding flow with data symbol, chirp offset, swept signal, receiver dechirp, frequency peak, and decoded symbol.
Figure 8.2: Chirp spread spectrum explains the radio mechanism; the release record still needs observed link and airtime evidence.

Trace Figure 8.2 by asking what “symbol” establishes and what “Chirp” changes. Check “offset” next, ending at “swept signal”. That progression is the mechanism behind Chirp spread spectrum explains the radio mechanism; the release record still needs observed link and airtime evidence and the evidence order needed for the “symbol”–“chirp” decision.

Record Field
Evidence To Capture
Common Gap
Review Action
Payload and cadence
Encoded payload size, normal cadence, alarm cadence, join behavior, retries, and maintenance traffic.
The review tests one small message but approves every message pattern.
Split message classes or revise the scope.
Radio setting
Spreading factor, bandwidth, coding rate, transmit setting, preamble, and regional profile.
The chosen data rate is not tied to observed link evidence.
Require a measured or explicitly bounded assumption.
Gateway evidence
Gateway hearing path, packet metadata, field location, antenna condition, and expected movement or obstruction.
One lab point is treated as field coverage evidence.
Record where the evidence applies and where it does not.
ADR handoff
Whether ADR owns the final data-rate adjustment, what history it can trust, and when manual override is allowed.
ADR is enabled without a device profile that makes historical evidence useful.
Define the ADR suitability boundary.
Release trigger
Payload, firmware, placement, antenna, gateway, regional profile, ADR policy, or message-schedule change.
The release record has no condition that reopens the review.
Add a retest trigger before approval.

Accept

The selected setting has enough link evidence, payload evidence, airtime evidence, regional fit, ADR ownership, and retest boundaries.

Revise

The setting may be plausible, but the record lacks payload, airtime, field, or ADR evidence for the reviewed scope.

Defer

The reviewer cannot tie the radio setting to a real device group, regional profile, gateway path, or release owner.

Practitioner Knowledge Check

Under the Hood: Symbol Time Drives the Tradeoff

LoRa symbols are represented by chirps. Spreading factor changes how many possible symbol states are represented and how long each symbol occupies the channel. A higher spreading factor can make weak-link decoding more practical, but it also extends the time on air for the same payload family.

That is why modulation review is a system decision, not only a radio decision. Airtime affects channel occupancy, retries, downlink opportunities, regional profile fit, battery behavior, and gateway capacity. ADR can help only when the device pattern gives it useful, recent evidence.

The useful under-the-hood shortcut is Tsymbol = 2SF / bandwidth. At 125 kHz, SF10 gives 1024 / 125,000 = 8.192 ms per symbol, while SF12 gives 4096 / 125,000 = 32.768 ms. That fourfold jump from SF10 to SF12 happens before counting low-data-rate optimization, coding-rate overhead, preamble, headers, acknowledgements, or retries. A field record that says "SF12 worked once" therefore proves only a narrow reception event unless it also shows the payload family, traffic count, retry rate, gateway diversity, and regional airtime headroom.

A release decision about the “same 125 khz channel, same time window — each step up in sf doubles the chirp period”–“sf7 — symbol time 1.024 ms” decision needs “11 chirps in this window”, not a slogan. Inspect Figure 8.3 through “Same 125 kHz channel, same time window — each step up in SF doubles the chirp period” and “SF7 — symbol time 1.024 ms” to check this claim: The raw chirp shape behind the symbol-time formula: each step up in SF doubles the chirp period, so half as many chirps fit in the same window.

Three stacked frequency-versus-time plots of raw LoRa up-chirps for SF7, SF8, and SF9, showing the chirp period doubling with each step up in spreading factor.
Figure 8.3: The raw chirp shape behind the symbol-time formula: each step up in SF doubles the chirp period, so half as many chirps fit in the same window.

Read Figure 8.3 from “Same 125 kHz channel, same time window — each step up in SF doubles the chirp period” to “SF7 — symbol time 1.024 ms”. Next, trace “11 chirps in this window” into “SF8 — symbol time 2.048 ms”. This ordering shows why The raw chirp shape behind the symbol-time formula: each step up in SF doubles the chirp period, so half as many chirps fit in the same window. For the “same 125 khz channel, same time window — each step up in sf doubles the chirp period”–“sf7 — symbol time 1.024 ms” decision, record “Same 125 kHz channel, same time window — each step up in SF doubles the chirp period” as the starting condition and reopen “SF8 — symbol time 2.048 ms” if “11 chirps in this window” changes.

The same shortcut can be written as a rate check. Symbol rate is Rs = bandwidth / 2SF, and an uncoded bit-rate intuition is Rb = SF x bandwidth / 2SF. With 125 kHz bandwidth that puts SF7 near 5.5 kbit/s before the full LoRaWAN packet and coding details, while SF12 is only a few hundred bit/s. Coding rate, commonly 4/5 in introductory examples, adds redundancy; whitening, interleaving, headers, preamble, MAC commands, acknowledgements, and retries then decide the delivered application throughput.

A release record should not stop at the raw formula, because the published per-spreading-factor rates sit a little under what that formula alone predicts. The gap is the forward error correction the radio applies on top of the chirp math: FEC adds redundancy as a k/n code rate, so for every k bits of information the radio transmits n bits, and that overhead is exactly what the uncoded Rb shortcut leaves out. At 125 kHz bandwidth, the resulting bit rates by spreading factor are:

Spreading Factor Chirps per Symbol Bit Rate (125 kHz)
SF71285.469 kb/s
SF82563.125 kb/s
SF95121.758 kb/s
SF101,024977 b/s
SF112,048537 b/s
SF124,096293 b/s

Treat that table, not the raw formula, as the number to cite in a release record: it already reflects whitening, interleaving, and the FEC code rate, so an SF7 uplink budget should plan around 5.469 kb/s rather than a slightly higher uncoded estimate.

Use that arithmetic when checking ADR too. If a fixed meter has weeks of stable uplinks, ADR may be able to move it toward a lower spreading factor and return channel capacity. If a tracker moves between basements, loading docks, and outdoor yards, old uplinks can overstate the current margin. The review should name when ADR owns the decision, when a manual boundary is safer, and which movement or gateway change reopens the calculation.

Do not accept The spreading-factor tradeoff comes from the symbol-rate equation: increasing SF lowers symbol rate and lengthens airtime for the same channel bandwidth as “SF = Spreading Factor (7-12)” prose alone. Look at Figure 8.4 before the “sf = spreading factor (7-12)”–“symbols/sec” decision, where “SF = Spreading Factor (7-12)” is explicitly distinguished from “symbols/sec”.

LoRa symbol-rate equation showing symbol rate as bandwidth divided by two raised to the spreading factor.
Figure 8.4: The spreading-factor tradeoff comes from the symbol-rate equation: increasing SF lowers symbol rate and lengthens airtime for the same channel bandwidth.

Begin Figure 8.4 at “SF = Spreading Factor (7-12)”, but do not stop there. Compare “symbols/sec”, then follow “SF = Spreading Factor (7-12)” until “symbols/sec”. The resulting chain supports The spreading-factor tradeoff comes from the symbol-rate equation: increasing SF lowers symbol rate and lengthens airtime for the same channel bandwidth; it also gives the “sf = spreading factor (7-12)”–“symbols/sec” decision a specific retest boundary.

Symbol Duration

Longer symbols can support weaker links, but every longer frame also consumes more shared channel time.

Payload Coupling

Headers, MAC commands, joins, retries, acknowledgements, and encoded payload size all change the airtime record.

ADR Limits

ADR is strongest for relatively stable devices with useful history. Mobile or bursty devices may need narrower review boundaries.

Retest Boundary

Antenna, gateway, firmware, payload, schedule, region, or ADR-policy changes can make the modulation record stale.

Inspect Figure 8.5 with one question from the “size”–“profile” decision: how does “size” constrain “Profile”? The answer supports The release record turns radio evidence into an approval, revision, exception, or retest decision.

LoRa modulation release record with payload, radio setting, link evidence, airtime evidence, ADR handoff, decision, and retest trigger.
Figure 8.5: The release record turns radio evidence into an approval, revision, exception, or retest decision.

Begin Figure 8.5 at “size”, but do not stop there. Compare “Profile”, then follow “plan” until “Selected”. The resulting chain supports The release record turns radio evidence into an approval, revision, exception, or retest decision; it also gives the “size”–“profile” decision a specific retest boundary.

Under-the-Hood Knowledge Check

8.2 Figure Review: Chirp Duration and Sensitivity

Spreading factor changes how long each chirp occupies the channel, not merely a label on nominal range.

LoRa chirps compare SF7, SF9 and SF12 at 125 kHz bandwidth. Higher spreading factor lengthens symbols and lowers uncoded bit rate while occupying the channel longer.
Figure 8.6: LoRa chirp rate, symbol time, and spreading factor.

In Figure 8.6, the SF7 · short sweep repeats much sooner than SF12 · long; Rs = BW / 2^SF yields 1.024 ms versus 32.768 ms, making the sensitivity gain a 32-times-longer per-symbol airtime cost before coding overhead.

8.3 Summary

Two quantitative views keep the spreading-factor choice connected to both radio physics and network behaviour. First, Figure 8.7 follows chirp encoding through spreading factor and device-class listening cost.

Four-stage LoRa comparison: chirp spread spectrum decoding, SF7-to-SF12 airtime and sensitivity trade-off, Class A B C receive availability, and field evidence and ADR retest.
Figure 8.7: LoRa chirp modulation, spreading-factor airtime, and LoRaWAN device-class listening behaviour form one deployment trade-off.

In Figure 8.7, Spreading factor sets time contrasts the 1.024 ms SF7 symbol with the 32.768 ms SF12 symbol in the same 125 kHz channel. Class sets downlink availability then separates two post-uplink windows in Class A from scheduled Class B and nearly continuous Class C listening, preventing radio reach and receiver duty from being conflated.

The second view, Figure 8.8, makes every doubling of chirps per symbol line up with the coded rate learners should use in an airtime record.

At 125 kHz, SF7–SF12 rows pair increasing chirps per symbol with decreasing coded bit rates. Coding and framing consume airtime beyond the uncoded shortcut.
Figure 8.8: SF7 through SF12 are compared by chirps per symbol and coded bit rate at 125 kilohertz, followed by the coding-overhead rule.

Across Figure 8.8, SF7 begins at 128 chirps/symbol and 5.469 kb/s, whereas SF12 reaches 4,096 chirps/symbol and 293 b/s. The Coding-rate overhead card explains why the coded rows—not the higher uncoded shortcut—belong in a release budget before preamble, MAC commands, ACKs, and retries are added.

LoRa modulation review connects radio settings to evidence. Spreading factor, bandwidth, coding rate, payload size, regional profile, gateway evidence, and ADR policy all affect whether a LoRaWAN message pattern is fit for release.

The safest review habit is to avoid broad claims. Approve one message class, one deployment condition, one regional profile, and one retest boundary at a time. Higher spreading factors can support weak links, but they also increase airtime pressure and must be justified by observed need.

8.4 Key Takeaway

Treat spreading factor as a tradeoff, not a guarantee. The release record should prove enough link margin while keeping airtime, payload, ADR, and retest limits visible.

8.5 See Also

LoRaWAN Introduction

LoRaWAN Introduction

LoRaWAN Network Architecture

LoRaWAN Network Architecture

LoRaWAN Link Budget and ADR Review

LoRaWAN Link Budget and ADR Review

LPWAN Link Budget and Range

LPWAN Link Budget and Range