Skip to main content

LoRa up close: chirps, spreading factor, time on air and range

Β· 26 min read
UR3PKI
Software Engineer

Meshtastic and Reticulum sit on the same physics: a modulation that reads a signal weaker than the noise floor and pays for it in time. This note is about that physics: how a chirp works, where the range comes from, what every knob in the settings does, what the hardware is made of and what gets built on top β€” from LoRaWAN to drones and satellites.

βˆ’20 dBA signal a hundred times weaker than the noise β€” and it still gets read. LoRa's main trick
βˆ’137 dBmReceiver sensitivity at SF12 and 125 kHz bandwidth
32.8 msThe length of one SF12 symbol. Modern Wi-Fi moves a megabyte in that time
4096Possible starting points of one "whistle" at SF12 β€” 12 bits per symbol

Three words that keep getting mixed up​

Most arguments about LoRa start with one word being used for different things.

wordwhat it really iswho made it
LoRaA modulation, the physical layer. A way of turning bits into a radio wave. It knows nothing about addresses, networks or encryption β€” only "what a byte sounds like on air"Developed by the French company Cycleo, which Semtech bought in 2012. Chips are made by Semtech and its licensees
LoRaWANA protocol and architecture on top of LoRa. Device addresses, keys, gateways, a network server, device classes, adaptive data rate. An open standardThe LoRa Alliance, a consortium of companies
"raw" LoRaBytes over radio with no protocol on top. This is how Meshtastic and Reticulum work: they take only the modulation and build their own networkAnyone
The shortest way to put it

LoRa is the alphabet, LoRaWAN is a language. You can write your own language in that alphabet: Meshtastic, Reticulum, ExpressLRS and hundreds of home-made projects do exactly that. And the other way round: hearing a LoRa signal does not mean understanding what is in it β€” that depends on the protocol on top.

what the modulation gives

Range and resilience

The signal is read even when it is weaker than the noise. Plus robustness against interference, reflections and frequency offset β€” all properties of the chirp itself.

what it does not give

No addresses, no encryption

The chip hands over the received chunk of bytes and the signal level β€” and that is it. Who writes to whom, how to protect it and what to do about collisions is up to the protocol on top.

what it costs

Time and speed

Range is bought with signal duration. That is not an engineering oversight but a straight trade: the longer a symbol sounds, the farther it is heard and the less data gets through.

The physics: what a chirp is​

Ordinary radio sends bits by changing something in the carrier: amplitude, frequency or phase. The weaker the signal, the harder those changes are to see against the noise. LoRa does it differently β€” and that is where all of its "magic" lives.

A chirp is a whistle: a signal whose frequency sweeps evenly from the bottom to the top of the allotted band. One whistle is one symbol. The data is encoded in where the whistle starts: it begins somewhere in the middle, climbs to the top of the band, jumps down and runs back up to the starting point. The starting point is the number being sent.

frequency ↑ Β· time β†’ Β· SF12: 4096 positions, symbol 32.768 mstop of band125 kHzbottom of bandsymbol 10symbol 21024symbol 32457symbol 43481the dot is where the chirp starts β€” that is the data: one number out of 4096, i.e. 12 bits per symbol

Switching SF on the diagram shows the key point: the higher the SF, the more possible starting points (2SF) β€” and the longer each symbol lasts. The receiver does not have to catch subtle changes of amplitude or phase; it only has to find where the whistle began. And the whistle is spread over the whole band and the whole symbol time, so a narrow interferer does not kill it, while a frequency offset shifts every symbol equally and is easy to compensate.

How much data is in one whistle

Exactly SF bits. At SF7 the whistle starts from one of 128 positions β€” 7 bits. At SF12 there are 4096 positions β€” 12 bits. Not much? Indeed: an SF12 symbol carries a byte and a half and lasts 33 milliseconds.

  • SF7 β€” 27 = 128 positions β†’ 7 bits per symbol
  • SF10 β€” 210 = 1024 positions β†’ 10 bits
  • SF12 β€” 212 = 4096 positions β†’ 12 bits

Where the robustness comes from

The symbol's energy is spread over the whole band and its whole duration. A narrowband interferer spoils only part of the whistle β€” the rest is enough to find the start. Reflections from buildings arrive late, but the shape of the whistle stays recognisable. And a slow frequency drift shifts all the symbols together, so it can be seen and subtracted.

That is why LoRa lives in cities full of tower blocks and in forests, where narrowband modulations fall apart.

How the receiver pulls the signal out of the noise​

The most beautiful part. The receiver does not try to "hear a quiet signal" β€” it adds up all of the whistle's energy over the whole symbol. Random noise does not add up like that.

demodulation in three stepswhat arrived over the airup-chirp + noiseΓ—its own reverse chirpthe receiver knows its exact shape=a constant tonethe higher, the bigger the offsetand onlynow β€”Fourierspectrum after dechirping Β· one sharp peaknoise floorpeakpeak position = the number sentpeak height = how confidentFor the whole symbol β€” up to 33 milliseconds β€” the chirp's energy piles up in one point. Noise does not pile up like that: it is random.
This is why it works below the noise. The wanted signal is coherent: multiplying by the reverse chirp "folds" it into a narrow peak. Noise stays smeared out under the same operation. The longer the symbol, the bigger the gain β€” and that is exactly what a high spreading factor buys.

How big the gain is​

The practical measure of that gain is the minimum signal-to-noise ratio at which a symbol can still be read. Negative numbers mean the signal is weaker than the noise:

SFrequired SNRsensitivity, 125 kHzin plain words
SF7βˆ’7.5 dBβ‰ˆ βˆ’123 dBmThe signal is already 5–6 times weaker than the noise
SF8βˆ’10 dBβ‰ˆ βˆ’126 dBmTen times weaker
SF9βˆ’12.5 dBβ‰ˆ βˆ’129 dBmAlmost twenty times
SF10βˆ’15 dBβ‰ˆ βˆ’132 dBmThirty times
SF11βˆ’17.5 dBβ‰ˆ βˆ’134.5 dBmSixty times
SF12βˆ’20 dBβ‰ˆ βˆ’137 dBmA hundred times weaker than the noise β€” and still readable

Sensitivity is for a typical SX127x-family receiver; newer chips do a few decibels better. Exact numbers are in the datasheet of the particular chip.

A comparison that makes it click

An ordinary Wi-Fi receiver gives up when the signal drops to about βˆ’90 dBm. LoRa at SF12 still works at βˆ’137 dBm. A 47 dB difference is a signal 50 thousand times weaker. The price is a speed a hundred thousand times lower.

Spreading factor β€” the main knob​

If you turn only one thing in the settings, make it SF. It sets everything: speed, range, time on air and how much battery one message eats.

symbol time T = 2SF / BW β†’ every +1 to SF doubles the symbol time

duration of one symbol at 125 kHz bandwidthSF7SF8SF9SF10SF11SF121.024 ms2.048 ms4.096 ms8.192 ms16.384 ms32.768 msOne SF12 symbol carries 12 bits. That is a byte and a half in a third of a second β€” roughly 290 bit/s.The same byte and a half goes by in one millisecond on SF7.
SFsymbolbit rate (125 kHz, CR 4/5)sensitivitytypical use
SF71.024 ms5,469 bit/sβˆ’123 dBmCity, nearby nodes, lots of traffic
SF82.048 ms3,125 bit/sβˆ’126 dBmThe default compromise in many home-made projects
SF94.096 ms1,758 bit/sβˆ’129 dBmSuburbs
SF108.192 ms977 bit/sβˆ’132 dBmVillages, hills
SF1116.384 ms537 bit/sβˆ’134.5 dBmOn a 250 kHz band this is Meshtastic's LongFast
SF1232.768 ms293 bit/sβˆ’137 dBmMountains, long haul, range records

The rule worth remembering: +1 to SF means a symbol twice as long and roughly +2.5 dB of sensitivity. In free space 2.5 dB is about a third more range. In a city or a forest noticeably less, because there the obstacles matter more than the distance.

The high-SF trap

It seems logical to set SF12 "so it surely gets through". But time on air grows many times over, so the battery drains faster, the duty-cycle limit is used up in a few messages and β€” worst of all β€” a long packet is far more likely to collide with someone else's. In a dense network SF12 often works worse than SF9.

Bandwidth, coding, preamble​

The other knobs get turned less often, but each has a price β€” and this is where the answers to "why can't my neighbour hear me" hide.

bandwidth

Wider is faster but deafer

Typical values: 125, 250, 500 kHz. Doubling the bandwidth halves the symbol β€” and costs about 3 dB of sensitivity, because twice as much noise gets into a wider band.

It is the same trade-off as SF, from the other side. Meshtastic, for example, takes a wide 250 kHz band and compensates with a high SF11.

coding rate

From 4/5 to 4/8

Forward error correction: for every 4 data bits it adds 1 to 4 redundant ones. At 4/5 the packet gets a quarter longer, at 4/8 twice as long.

It saves you from short bursts of interference: an impulse spoiled a few symbols and the code restored them. Against a uniformly weak signal it barely helps: that is SF's job.

preamble

The β€œwake up” whistles

Every packet is preceded by a series of identical chirps β€” typically eight. The receiver latches on to them and synchronises. A longer preamble gives a receiver that only peeks at the air now and then a better chance to wake up in time, but also adds time on air.

sync word

The most common reason for β€œI hear nothing”

A byte that splits the air into "private" and "public" networks. Devices with different sync words practically cannot hear each other, even when frequency, bandwidth and SF match. The classic case: LoRaWAN uses one value, most home-made networks another.

Two more details that bite

Low data rate optimisation is mandatory when a symbol is longer than 16 ms (SF11 and SF12 at 125 kHz). It compensates for crystal drift; if one node has it on and the other off, there will be no link. IQ inversion is the trick LoRaWAN uses to separate directions: devices do not hear each other, only the gateway. Ready-made firmware sets both up by itself; in home-made projects you have to do it by hand.

Time on air: the formula everything follows from​

Time on air is not just "how long it flies". It is at once battery consumption, the allowed duty cycle being spent and the probability of colliding with someone else's packet. That is why this quantity decides how many nodes a network can carry.

A packet has four parts: the preamble (typically 8 whistles plus 4.25 sync symbols), the header, the data and the checksum. Everything is counted in symbols rather than bytes β€” and each symbol lasts its 2SF/BW.

Tpreamble = (8 + 4.25) Γ— Tsymbol
ndata = 8 + ⌈ (8Β·PL βˆ’ 4Β·SF + 28 + 16Β·CRC) / (4Β·(SF βˆ’ 2Β·DE)) βŒ‰ Γ— (CR + 4)
Tpacket = Tpreamble + ndata Γ— Tsymbol

Here PL is the payload in bytes, CR = 1…4 for coding rates 4/5 to 4/8, and DE = 1 when low data rate optimisation is on. Rounding up means the data is always padded to a whole block β€” which is why one extra byte sometimes costs five whole symbols.

time on air Β· the Semtech formula, live

SF
bandwidth
50
preambleheader and datafull scale is the same packet on SF12 Β· 125 kHz: 2.30 s
time on air
2.30 s
channel bit rate
293 bit/s
symbol time
32.768 ms
pause at a 1 % limit
3.8 min

Coding rate 4/5, explicit header, CRC on, 8-symbol preamble. Low data rate optimisation switches on by itself when a symbol is longer than 16 ms.

50 bytes of payload Β· same time scaleSF12 Β· 125 kHzpreamble 401 msheader and data β€” 1,900 ms2.30 secondsSF7 Β· 125 kHz97 milliseconds β€” the same 50 bytesthe same SF7, stretched so the structure shows:12.5 ms85 ms
A 24-fold difference β€” for the same 50 bytes. Look at the preamble: on SF12 it alone lasts 0.4 seconds, longer than the whole SF7 packet. That is why even the shortest message is expensive at high SF.
payload bytesSF7 Β· 125 kHzSF9 Β· 125 kHzSF11 Β· 250 kHzSF12 Β· 125 kHz
2057 ms185 ms330 ms1.32 s
5098 ms329 ms575 ms2.30 s
100174 ms554 ms944 ms3.94 s
237 (Meshtastic's ceiling)374 ms1.17 s1.97 s8.53 s

Computed with the formula above: CR 4/5, explicit header, CRC on, 8-symbol preamble. The SF11 Β· 250 kHz column is exactly Meshtastic's LongFast preset.

Eight and a half seconds

A full packet at SF12 occupies the air for 8.5 seconds. All that time no node within range can transmit anything. A dozen chatty SF12 nodes β€” and the air is used up. That is where all of Meshtastic's limits on message length come from, and all the advice "do not use SF12 unless you must".

All radio connectivity comes down to one piece of arithmetic: how much power went out, how much was lost on the way and whether enough is left for the receiver to hear.

margin = transmitter power + antenna gain βˆ’ path loss βˆ’ |receiver sensitivity|

14 dBm
+2 dBi
4 β†’ 10 km
0 dB
frequency
SF
+200-40-80-120-140SF12 sensitivity Β· -137 dBmtransmitter14+ antenna16βˆ’ path-95.2βˆ’ obstacles-95.2+ antenna-93.210 km Β· 868 MHz Β· path loss 111.2 dB

A 43.8 dB margin β€” workable: 10–20 dB is what you reserve for the unexpected.

By default the diagram shows a typical European link: 25 mW (+14 dBm), +2 dBi whips, 10 km line of sight at 868 MHz. The path eats 111 dB and more than forty decibels of margin remain. That looks like a lot. But in the real world it is eaten by terrain, trees, walls, rain and your own body if you hold the device in your hand: the "obstacles" slider shows how fast. So engineers reserve another 10–20 dB for the unexpected β€” and that is why a calculated hundred kilometres becomes five in practice. The same arithmetic for your own numbers is in the link budget calculator.

what adds decibels

Antenna and height

Antenna gain works both ways β€” on transmit and on receive. Swapping a stubby antenna for a proper whip easily gives 3–5 dB, that is 40–80 % more range.

what eats them

Everything solid

A wall β€” 5–15 dB. Trees in leaf β€” up to 10–20 dB per hundred metres. A human body next to the antenna β€” a few decibels. A poor cable β€” a few more.

what deceives

The free-space calculation

The free-space formula knows nothing about the ground. Within a few kilometres above the earth reflections and diffraction kick in, and real losses are usually 10–30 dB higher.

Real range: terrain and the Fresnel zone​

The most common disappointment goes like this: "there is line of sight, but no link". The reason is usually the same, and beginners are almost never told about it.

A radio wave does not travel as a thin beam but as a three-dimensional spindle around the straight line. That spindle is the Fresnel zone, and it has to be clear. If a hill, a roof or a row of trees gets into it, the signal drops even when the antennas formally "see" each other.

Fresnel zone Β· at 10 km and 868 MHz its mid-path radius is β‰ˆ 29 metresline of sighthillmast Amast Bthe top is inside the zonea quarter in β€” minus a few dBRule of thumb: to lose nothing, at least 60 % of the radius of this spindle has to be clear.

The practical consequence: raising the antenna by a few metres often gives more than any radio setting. It does not "add power" β€” it pulls the spindle out from under the obstacle. That is why one node on a hill changes a network more than a dozen on windowsills. The zone radius for your own path is in the Fresnel zone calculator, and the horizon for your masts in the line-of-sight calculator.

Two formulas worth knowing

mid-path zone radius, m β‰ˆ 8.66 Γ— √(d / f)
d β€” distance in km, f β€” frequency in GHz


horizon, km β‰ˆ 4.12 Γ— (√h₁ + √hβ‚‚)
h β€” antenna heights in metres

Two 10-metre masts see each other at most 26 km apart β€” already allowing for the radio wave bending slightly around the earth. Raise one of them to a hundred metres and the horizon moves out to 54 km.

What to expect in reality

where the node standsreal range
Dense city buildings0.5–2 km
Suburbs, low-rise2–6 km
Village, fields, line of sight8–20 km
Node on a hill or tower30–80 km
Balloon or mountain to the groundhundreds of km

The range records you read about are almost always made from a great height and in the slowest mode. They are honest results β€” just not about a node on a balcony.

Hardware: what is actually on the board​

A LoRa modem is one transceiver chip plus support parts. All the chirp "magic" is baked into silicon: the microcontroller only says "send these bytes at this SF" and gets the finished result back.

RF chain Β· a byte's way to the antenna and backmicrocontrollertransceiverpowerlow-noiseswitchfilterprogramSX1262 / SX1276the chirps live hereamplifier (PA)amplifier (LNA)receive ⇄ transmitcuts adjacent bandsSPIPink path is transmit, blue is receive. The switch exists because there is one antenna and two chains:the powerful transmitter and the delicate receiver never work at the same time.

Chip families​

chiprangefeatureswhere you find it
SX1276 / SX1278137–1020 MHzThe classic everything grew up on. Receive β‰ˆ 10 mA, transmit up to +20 dBmRFM95, older Heltec and TTGO boards, most home-made builds
SX1262 / SX1268150–960 MHzThe next generation: receive β‰ˆ 4.6 mA, transmit up to +22 dBm, better sensitivity and immunity to adjacent signalsModern boards, E22 modules, almost everything new
SX12802.4 GHzLoRa in the worldwide band. Faster but noticeably shorter range. Can measure distance by time of flightExpressLRS for drones, local sensors
LR1110 / LR1120sub-GHz; LR1120 also 2.4 GHzA transceiver with built-in GNSS and Wi-Fi scanning for geolocation without a separate GPS. Its sibling LR1121 has the same multi-band radio but no geolocationTrackers where power saving matters

Current figures are approximate, from datasheets; the details depend on supply voltage and amplifier mode.

What one message costs

Transmitting at full power draws about 120 mA. Multiply by time on air:

  • SF7 β€” 374 ms β†’ about 0.012 mAh per packet
  • SF12 β€” 8.53 s β†’ about 0.28 mAh per packet

So a 2000 mAh battery theoretically gives about 160 thousand packets at SF7 β€” and only seven thousand at SF12. And that is before the microcontroller, GPS and constant listening.

Two details that break the link quietly

Temperature-compensated oscillator (TCXO). At SF11 and SF12 the symbol is long, and an ordinary crystal can drift with temperature so far that the receiver loses sync. Long-range boards fit a TCXO β€” which is why cheap modules sometimes work at low SF and stay silent at high SF.

Channel activity detection (CAD). A mode in which the chip checks in a few milliseconds whether there is a preamble on air, spending almost no energy. "Listen before talk" is built on it β€” in Meshtastic among others.

Transmitting without an antenna

Switching on transmit without an antenna means reflecting all the power back into the amplifier. It does not like that and may burn out. This is not superstition but the first rule of working with any radio.

The antenna β€” the cheapest upgrade​

No setting gives as much as a proper antenna, correctly oriented and raised. And no mistake costs as much as a wrong one.

quarter-wave whip Β· to scale05 cm10 cm15 cm20 cm17.3 cm433 MHz8.6 cm868 MHz8.2 cm915 MHzLength = a quarter of the wavelength. A centimetre off and the match drifts β€” part of the power comes back.radiation pattern Β· side viewup β€” almost nothingdown β€” samesideways β€”maximumA whip radiates a "doughnut": best towards the horizon, worst straight up and straight down.

The practical consequence of the "doughnut" radiation pattern: a drone right overhead or a node one floor up can be heard worse than the same node a kilometre to the side. And one more thing: the antennas at both ends must be oriented the same way β€” vertically. One vertical and the other horizontal costs about 20 decibels for nothing. The whip and radial lengths for your frequency are in the Ground Plane antenna calculator.

free

Put it higher

Every metre of height pulls the Fresnel zone out from under obstacles and pushes the horizon back. The cheapest decibels in the world.

almost free

Stand it upright

The same polarisation at both ends. An antenna laid on its side "so it does not stick out" costs more than any other mistake.

costs money

A directional antenna

For a fixed link between two points a Yagi gives +8–12 dB and cuts interference from the sides. Useless for a moving node: it has to be aimed.

Three ways to ruin a radio in a second

1. Transmit without an antenna. 2. Fit an antenna for the wrong band β€” a 433 MHz one on 868 MHz or the other way round. 3. Run two metres of cheap thin cable and wonder where half the power went.

LoRaWAN: what gets built on top​

The most widespread protocol on top of LoRa. It is built for one scenario: millions of cheap sensors, each waking a few times a day, saying one sentence and going back to sleep for years.

star of stars Β· one packet heard by several gatewayssensorasleep 99.9% of the timegateway Agateway Bgateway Ca gateway decides nothing: it hears 8 channels and every SF at once β€” and forwardsnetworkserverall the brains are hereβœ•βœ•duplicatesare droppedapplicationthe data is read here

The key idea of the architecture: a device knows nothing about gateways and does not "connect" anywhere. It simply shouts into the air. Whoever heard it forwards it, and the server drops duplicates and works out who it is dealing with. So a device can move between cities without noticing: there is nothing to break, because there is no connection.

class A

The most frugal

The device transmits whenever it wants and then briefly opens its receiver twice β€” about one and two seconds later. Outside those windows it is deaf, so the server cannot reach it first and waits for the next uplink. Runs for years on a battery.

class B

The compromise

Gateways send regular beacons, the device syncs to them and opens extra receive windows on a schedule. It can be reached with a predictable delay β€” at the cost of higher consumption.

class C

Always on

The receiver is on all the time, paused only for the device's own transmissions. Minimal latency, maximal consumption. For mains-powered devices: meters, locks, lighting.

Security and adaptation​

Two keys, not one

LoRaWAN encryption is AES-128, but there are two keys: the network key checks the packet's integrity and that it belongs to the network, the application key encrypts the content itself. So the network operator sees that a packet is genuine but not what is inside.

A device joins the network either through a join procedure with key exchange or with pre-provisioned keys β€” the second option is simpler and less secure.

Adaptive data rate

The server sees what margin packets arrive with and tells the device to lower its SF if the link is solid. The gain is twofold: the device saves battery, the network saves airtime.

That is why a stationary sensor's SF slides down by itself over time, while a moving one stays high β€” the server cannot keep up.

The scarcest resource is the downlink

A gateway cannot listen and transmit at the same time, and it is subject to the same duty-cycle limits. So in LoRaWAN a packet "down" costs much more than a packet "up". Networks where every sensor waits for an acknowledgement hit this ceiling long before any other.

Meshes, drones, satellites​

LoRaWAN is the best known, but far from the only thing built on this modulation.

networks without infrastructure

Meshtastic and Reticulum

They take only the modulation and build their own network on top, without gateways or servers. Meshtastic is a ready-made chat with flood relaying, Reticulum a full network stack with cryptographic addressing. Both run on the same cheap boards.

drone control

ExpressLRS

An unexpected use: the same modulation turned inside out. Instead of range at the cost of time β€” minimal latency: tiny packets of a few bytes, hundreds of times a second, at low SF and often on 2.4 GHz. The same hardware, the opposite trade-off.

distance measurement

Ranging on 2.4 GHz

2.4 GHz chips can measure a signal's round-trip time, that is the distance between two nodes to within metres. This is used for indoor positioning, where GPS does not work.

links from space

Satellites and balloons

Several operators receive LoRa straight from low orbit: a sensor in a field talks to a satellite with no ground infrastructure at all. There is a separate frequency-hopping mode for this, which copes better with Doppler shift and a crowded channel.

What follows from this

One modulation serves both a sensor that speaks twice a day on a battery lasting ten years and a drone controller with a few milliseconds of latency. The difference lies entirely in the settings and the protocol on top. So the question "what is LoRa's range / speed" has no answer until you say which trade-off you mean.

Regulation: duty cycle and power​

LoRa lives in licence-free bands β€” the same ones used by baby monitors, weather stations and gate remotes. Nobody pays for access, but there are rules, and they are built right into how devices behave.

The main European rule is the duty cycle: the share of time you are allowed to transmit. Typically it is one per cent. That sounds harmless until you count it in seconds: after every transmission you must stay silent 99 times longer than you transmitted.

the one per cent rule Β· on one sub-band1% β€” transmit99% β€” mandatory silenceOne full packet on SF12 is 8.5 seconds on air.Then 14 minutes during which you may not transmit at all.

This is not theory but firmware behaviour: the stack counts the airtime used and simply does not send the next packet until the pause is over. So "the message vanished" sometimes means "the limit is used up" rather than "no signal". The pause for any packet is shown by the time-on-air calculator above.

what is senttime on airpause at a 1 % limit
20 bytes at SF757 ms5.6 s
237 bytes at SF7374 ms37 s
50 bytes at SF122.30 s3.8 min
237 bytes at SF128.53 s14 min

How it looks by region​

regionbandtypical powerhow airtime is limited
Europe, including Ukraine868 MHz14 dBm (25 mW)Duty cycle: typically 1 %, up to 10 % and higher power on one narrow sub-band
Europe433 MHz10 dBmDuty cycle too; the band is narrower and noisier, but the longer wave bends around obstacles better
USA, Canada902–928 MHzup to 30 dBmNo duty cycle, but frequency hopping and limits on dwell time per channel
Asia, Oceania920–923 MHzdepends on the country"Listen before talk" is often required
This is a guide, not legal advice

The exact limits on power, duty cycle and allowed sub-bands are set by national rules and they change. Before adding an amplifier or turning up the power, check them against the regulations in force. Buy the board for your band too: the "wrong" frequency cannot be fixed in the settings.

The limits: collisions and network capacity​

The last thing people usually keep quiet about: LoRa has no conductor. Devices transmit whenever they like, and now and then they speak at the same time.

two packets at onceequal strengthoverlapβœ• both lostone strongerβœ“ the stronger one is decodedβœ• the weaker one is lostAbout six decibels of difference is enough for the stronger signal to "capture" the receiver and be decoded.

This is called the capture effect, and it is what saves real networks: in real life signals are rarely of equal strength. But it does not cancel the statistics β€” the more devices, the more collisions, and they grow faster than linearly.

How many nodes one channel carries

For uncoordinated networks the classic ALOHA estimate applies: about 18 % of channel time can be used productively; beyond that collisions eat more than the extra load adds.

For SF12 and a 100-byte packet (3.94 s): an hour has 3600 seconds of channel time, about 648 of them useful β€” roughly 160 packets per hour. If every node speaks once an hour, that is about 160 nodes per channel. At SF7 the same channel carries twenty times more.

Why meshes hit the ceiling sooner

In LoRaWAN a packet sounds on air once, after that a wire carries it. In a mesh every relaying node transmits the same packet again. One message in a network with three levels of relaying means five to seven real transmissions.

So a LoRa mesh is always a compromise: it gives coverage without infrastructure but pays for it by using the same scarce airtime many times over.

One paragraph that explains every limit

Every decision in LoRa comes down to one thing: the air is shared and slow. Hence the ceiling on packet size, the limit on hops, the advice to use a lower SF, the duty cycle, and the reason networks with thousands of sensors are designed so each one speaks as rarely as possible. These are not flaws of the technology β€” they are its price for range.

Glossary​

  • Chirp β€” a whistle: a signal whose frequency sweeps evenly through the whole band. One chirp is one symbol.
  • CSS β€” Chirp Spread Spectrum, the modulation itself. What people call LoRa.
  • SF Β· spreading factor β€” 7–12. How many bits a symbol carries and at the same time how long it is. Each +1 doubles the time.
  • BW Β· bandwidth β€” 125 / 250 / 500 kHz. Wider is faster, but 3 dB deafer with every doubling.
  • CR Β· coding rate β€” 4/5 to 4/8. Redundant code against short interference.
  • Preamble β€” a series of identical chirps at the start of a packet that the receiver latches on to.
  • Sync word β€” a byte that separates "private" and "public" networks. Different values β€” nodes do not hear each other.
  • Time on air β€” how long a packet actually occupies the air. The key quantity in all of LoRa.
  • SNR β€” how much stronger the signal is than the noise. In LoRa it can be negative β€” and that is normal.
  • RSSI β€” the absolute received signal level in dBm. Together with SNR it shows link quality.
  • Sensitivity β€” the weakest signal the receiver can still decode: from βˆ’123 to βˆ’137 dBm depending on SF.
  • Link budget β€” power plus antennas minus losses minus sensitivity. How many decibels are to spare.
  • Fresnel zone β€” the spindle around the straight line that has to be clear. Line of sight alone is no guarantee.
  • Duty cycle β€” the share of time you may transmit. Typically 1 % in Europe.
  • CAD β€” a cheap mode in which the chip checks for a preamble on air, spending almost no energy.
  • LoRaWAN β€” a protocol and architecture on top of LoRa: gateways, a network server, classes, two keys, adaptive data rate.

Sensitivity and current figures are typical values from Semtech datasheets; time on air is computed with the Semtech formula. Before relying on them in practice, check them against your chip's documentation and your region's rules.

The "up close" series
  • Meshtastic up close β€” a ready-made chat on "raw" LoRa: managed flooding, channels, node roles
  • Reticulum up close β€” a network stack where the address is a key and LoRa is just one of the carriers
  • Four internets β€” Reticulum, I2P, Yggdrasil and Nostr side by side: who sits on which floor