Introduction to Meshtastic: Off-Grid Mesh Networking with LoRa
Section 3 of 13

10 min read Updated

Key Points:

  • LoRa modulation basics and Chirp Spread Spectrum (CSS)
  • Why CSS achieves remarkable range at low power (processing gain, sensitivity)
  • Bandwidth, data rate, spreading factor tradeoffs
  • Operating frequencies and regional regulatory differences
  • ISM bands and unlicensed operation

Word Target: ~2,700 words


Picture a whisper traveling farther than a shout. That's not a metaphor — it's almost exactly what LoRa radio technology does, and understanding why it works is one of the more satisfying "aha" moments in all of amateur electronics.

Most people's intuition about radio power is simple: more wattage equals more range. A walkie-talkie at five watts goes farther than one at half a watt. A cellular tower running kilowatts of transmit power blankets a whole city. Power is range. That model isn't wrong, exactly — but LoRa flips the equation in a way that feels almost like cheating. A LoRa transmitter running on a single AA battery, outputting less than a tenth of a watt, can routinely reach distances that would embarrass a much more powerful conventional radio.

The physics that makes this possible is worth understanding, because it explains not just what LoRa can do, but also what it can't — and those limitations shape every design decision in Meshtastic.

The story starts with a modulation technique called Chirp Spread Spectrum, usually shortened to CSS. According to Semtech's documentation on the SX127x LoRa transceiver family[1], CSS is the core innovation that separates LoRa from conventional narrowband radio. The word "chirp" here is literal: the signal sweeps continuously up or down in frequency over a defined bandwidth. Imagine a bird call that rises steadily in pitch from low to high — that's a chirp. In a CSS system, information is encoded into where in that sweep the chirp begins, or into variations of that sweep pattern. The receiver's job is to detect those chirps and decode them back into bits.

What makes this remarkable is what happens when you spread the signal across a bandwidth that's much wider than the information rate would strictly require. This is the "spread spectrum" part of the name. By intentionally smearing the transmitted energy across a wider slice of the radio spectrum, you reduce the power at any single frequency to a level that can disappear below the noise floor — the ambient background of electrical interference that exists everywhere. A conventional narrowband receiver, tuned to look at a narrow slice of spectrum, would see nothing useful at all. But a CSS receiver knows the chirp pattern it's looking for, and it can use that knowledge to mathematically "despreading" the signal, pulling it back out of the noise.

Stay with this for one more step, because it's the crux of everything. The process of despreading is essentially a correlation operation: the receiver multiplies what it hears against what it expects to hear, and sums the result. When the expected pattern and the received signal match, those multiplications add up coherently and the signal climbs out of the noise. Everything else — interference, random noise, other transmissions — doesn't match the pattern and averages toward zero. This is the processing gain, and it's the reason LoRa achieves what radio engineers call extraordinary sensitivity, often cited as reaching as low as negative 137 decibels relative to a milliwatt in the most aggressive configurations. As Semtech describes in its LoRa modem design guide[1], this sensitivity is one of the defining advantages of the technology.

To put that sensitivity number in context: most conventional FM radio receivers start to work at around negative 100 decibels. The gap between those figures represents a thousand-fold difference in how weak a signal can be and still be usable. That thousand-fold difference is roughly equivalent to the path loss you accumulate when you double, triple, or quadruple the distance between transmitter and receiver. It's not magic — it's math applied systematically to the noise problem.

Now, LoRa doesn't have just one setting. The technology exposes several parameters that let you tune the tradeoff between range and data rate, and understanding these is essential for anyone building a real network.

The most important parameter is called the spreading factor, often abbreviated as SF. The spreading factor controls how many chirps it takes to encode a single symbol of data. At a spreading factor of seven — written SF7 — each symbol takes a relatively short chirp, which means the data rate is higher but the processing gain is lower. At the other extreme, SF12, each symbol takes a very long chirp: up to thirty-two times more chirps per symbol than SF7. That dramatically increases the processing gain and pulls the receiver sensitivity even deeper into the noise floor, extending range significantly. But it comes at a steep cost. The LoRa Alliance's technical documentation[2] makes clear that as you increase the spreading factor, the data rate falls roughly exponentially. SF12 at a 125 kilohertz bandwidth produces an effective data rate around 250 bits per second. SF7 at the same bandwidth can push over 5,000 bits per second. That's a twenty-fold difference in throughput.

The second key parameter is bandwidth — the width of the frequency slice the chirp sweeps across. LoRa typically operates at bandwidths of 125, 250, or 500 kilohertz. Wider bandwidth means faster chirps, which means higher data rates, but it also means the signal is diluted over more spectrum, which reduces sensitivity slightly. Narrower bandwidth concentrates the chirp and improves sensitivity but limits how fast you can send data. Most Meshtastic deployments use 125 kilohertz as the standard bandwidth because it strikes a reasonable balance.

The third parameter is coding rate — essentially how much error-correction data gets mixed in with the payload. A higher coding rate adds more redundancy, which helps the receiver recover from interference, but it also reduces net throughput further. At coding rate 4/8, half of the transmitted bits are error-correction data, cutting effective throughput in half compared to coding rate 4/5 where only a fifth of the bits are overhead.

Here's where most newcomers get surprised: because spreading factor dominates the data rate calculation, the speeds available to a LoRa network feel almost offensively slow compared to WiFi or cellular. Even at the most aggressive settings — lowest spreading factor, widest bandwidth — LoRa tops out around 27 kilobits per second. Semtech's SX1276 datasheet[1] confirms that maximum figure. At the slower end, you're sending data slower than a 1990s dial-up modem. Meshtastic's default long-range modes operate at a few hundred bits per second. This is not a system you stream music on, or send photographs with, or use to carry voice calls. It's a system built around short text messages, GPS coordinates, and small telemetry packets — and within those constraints it works extraordinarily well.

This is exactly the tradeoff this whole technology is built around. The physics of LoRa modulation creates a narrow channel that reaches very far, not a wide channel that reaches a little. Every design decision — the text-only messaging, the small GPS packets, the terse telemetry payloads — follows directly from this fundamental constraint.

Now, none of this works in a vacuum. LoRa needs to use actual radio spectrum, and radio spectrum is regulated everywhere in the world. This is where frequencies, regions, and regulatory compliance enter the picture.

LoRa operates in what are called ISM bands — Industrial, Scientific, and Medical bands. These are slices of radio spectrum that governments around the world have designated for unlicensed use, meaning you can transmit in them without holding a personal radio license, as long as your equipment meets certain technical standards and power limits. This is the same category of spectrum that WiFi, Bluetooth, and baby monitors use. The Meshtastic project's regional frequency documentation[3] lists the specific frequency plans for each part of the world.

In the United States and Canada, LoRa devices typically operate in the 915 megahertz band, which runs roughly from 902 to 928 megahertz. In Europe, the standard band is 868 megahertz, specifically a narrower window governed by the ETSI — the European Telecommunications Standards Institute — with strict duty cycle restrictions that limit how much of the time any device can transmit. In much of Asia, including Japan, China, and Korea, 433 megahertz is common, though the regulations vary considerably by country. Australia generally follows a similar pattern to the US at 915 megahertz. India uses 865 megahertz.

These frequency differences matter for a practical reason: a device configured for US 915 megahertz operation will not communicate reliably with a device configured for EU 868 megahertz operation, even if the hardware is technically capable of both. When you set up a Meshtastic device, one of the first configuration steps is selecting your region, and that selection locks in the frequency plan and power limits appropriate for where you are. Using the wrong region setting isn't just a technical mismatch — in most countries it means operating outside your legal authorization.

Worth knowing: the physics of radio propagation actually differ meaningfully between these frequencies. Lower frequencies like 433 megahertz diffract more around obstacles — hills, buildings, dense vegetation — while higher frequencies like 915 megahertz travel in slightly straighter lines and can carry a bit more data. In practice, the difference matters most in heavily obstructed terrain. A community network in a flat, open region benefits less from the lower frequency's diffraction advantages. Someone trying to reach over a forested ridge in a hilly area might find 433 megahertz more forgiving.

The European duty cycle rules deserve a specific mention because they surprise people who are accustomed to the more permissive US band. Under ETSI regulations, devices in the 868 megahertz band are often restricted to a one-percent duty cycle — meaning in any given hour, your device can only transmit for thirty-six seconds total. In practice, this enforces a certain discipline around message frequency and payload size. Meshtastic accounts for this in its EU regional configurations, and it's one reason the default settings are conservative rather than aggressive. The Meshtastic documentation on regional settings[3] explains how each regional configuration handles these constraints.

The transmit power limits also vary by region and band. In the US, the FCC — the Federal Communications Commission — allows LoRa devices to transmit at up to 30 decibels relative to a milliwatt in the 915 megahertz band under Part 15 rules, which is one watt. Most LoRa modules used in Meshtastic hardware actually top out at lower than this — often around 20 to 27 decibels per milliwatt depending on the specific chip — but the regulatory ceiling gives some room. European limits tend to be more conservative, often capped at 14 or 16 decibels per milliwatt in the 868 megahertz band, which affects the maximum achievable range in EU deployments compared to US ones.

One concept that trips people up early is the relationship between power and antenna gain. When regulatory limits specify a maximum transmit power, they typically refer to Effective Isotropic Radiated Power, or EIRP — the combination of transmitter power and antenna gain. A low-power transmitter feeding a high-gain antenna can hit the same EIRP limit as a higher-power transmitter on an omnidirectional antenna. This matters because antenna selection and placement are among the most effective tools for improving range within legal limits. Antenna selection is covered in more depth later in this course — for now, the key point is that radio regulations and antenna physics are deeply linked.

The combination of frequency, spreading factor, bandwidth, and coding rate defines what Meshtastic calls a "channel preset" — a named combination of settings that trades off range against throughput in a specific way. As documented in the Meshtastic configuration guide[4], the presets range from ShortFast, which prioritizes speed at the cost of range, all the way through LongModerate and LongSlow, which push for maximum range at very low data rates. The default preset for most deployments is LongFast — SF11, 250 kilohertz bandwidth — which tries to balance the two poles reasonably.

Getting all of these nodes to agree on the same preset is essential. Two devices using different spreading factors or different bandwidths will be completely unintelligible to each other, even if they're sitting next to each other in the same room and on the same frequency. This is actually a deliberate property of CSS: orthogonality between spreading factors means SF7 and SF8 signals can occupy the same frequency at the same time without interfering with each other, because each receiver only responds to the spreading factor it's configured for. It's elegant in a multi-operator environment, but it means everyone on a shared mesh must coordinate their settings.

The concept took most people a while to get when LoRa first became widely available in hobbyist circles, and there's nothing wrong with sitting with it a moment. The summary version is this: LoRa encodes data into chirps that sweep across a band of frequencies. The width of the sweep, the speed of the sweep, and the duration of each symbol all interact to determine how far the signal reaches and how fast data moves. More range always means slower data. The limits are hard physics, not engineering laziness, and working within them thoughtfully — picking the right spreading factor for your terrain, the right regional preset for your legal environment, the right balance between retransmission frequency and battery life — is a meaningful part of making a Meshtastic network actually perform.

For most people setting up their first Meshtastic node, the honest practical summary is simpler: pick the regional preset that matches your country, choose LongFast or LongSlow depending on whether range or moderate throughput matters more to you, leave the other parameters at their defaults, and let the firmware handle the rest. The defaults encode decades of LoRa deployment wisdom. You can tune later, once you understand what's limiting your specific network.

The signal can travel kilometers on a coin cell battery, carrying a text message and a GPS coordinate through walls and hills and RF noise that would defeat any conventional radio. That capability comes entirely from a chirp — and now you know why. What happens to that chirp once it reaches another node, and how those nodes cooperate to carry a message farther than any single hop could reach, is where the mesh part of Meshtastic begins to take shape.

Sources cited

  1. According to Semtech's documentation on the SX127x LoRa transceiver family semtech.com
  2. The LoRa Alliance's technical documentation lora-alliance.org
  3. The Meshtastic project's regional frequency documentation meshtastic.org
  4. As documented in the Meshtastic configuration guide meshtastic.org