How the airtime is calculated
A LoRa packet is a preamble followed by an optional header and the payload, all sent as chirp symbols. One symbol lasts 2 to the power of SF divided by the bandwidth: 1.02 ms at SF7 and 125 kHz, 32.8 ms at SF12. The calculator uses Semtech’s formula from the SX1276 datasheet: the radio adds 4.25 symbols to the programmed preamble, and the payload goes out in blocks of symbols whose size depends on the spreading factor and the coding rate, so one more byte can cost nothing or a whole block.
Low data rate optimisation switches on when a symbol lasts 16 ms or more, which means SF11 and SF12 at 125 kHz and SF12 at 250 kHz, as the Semtech datasheets advise. Each symbol then carries two bits fewer, so the packet gets longer.
Meshtastic packets use a 16-symbol preamble, an explicit header and a CRC. A text message carries a 16-byte header (destination, sender, packet ID, flags, channel hash and relay bytes) and about 6 bytes of protobuf fields around the text; channel encryption adds nothing. LoRaWAN uplinks, as Semtech’s LoRaMac-node sends them, use an 8-symbol preamble, coding rate 4/5 and 13 bytes of header and MIC around your payload.
Meshtastic presets compared
Time on air of a 40-byte text message with each preset, and the link budget at 22 dBm with 0 dBi antennas and an SX1262, the conditions of Meshtastic’s radio settings page. For the 500 kHz presets the SX1262 datasheet’s −117 dBm at SF7 gives 1 dB less than that page.
| Preset | SF | Bandwidth | Coding rate | Text of 40 bytes | Link budget |
|---|---|---|---|---|---|
| ShortTurbo | 7 | 500 kHz | 4/5 | 31.6 ms | 139 dB |
| ShortFast | 7 | 250 kHz | 4/5 | 63.1 ms | 143 dB |
| ShortSlow | 8 | 250 kHz | 4/5 | 111 ms | 145.5 dB |
| MediumFast | 9 | 250 kHz | 4/5 | 201 ms | 148 dB |
| MediumSlow | 10 | 250 kHz | 4/5 | 382 ms | 150.5 dB |
| LongTurbo | 11 | 500 kHz | 4/8 | 509 ms | 149 dB |
| LongFast (default) | 11 | 250 kHz | 4/5 | 723 ms | 153 dB |
| LongModerate | 11 | 125 kHz | 4/8 | 2.3 s | 156 dB |
Every preset trades airtime for range. LongFast is the default; the 500 kHz Turbo presets don’t fit the 250 kHz of the EU_868 band, and the firmware falls back to LongFast there. Nodes only hear each other when they share the preset.
Power and duty cycle in Europe
In the EU, the short-range-device bands at 863–870 MHz set both the power, as ERP, and the share of each hour a device may transmit. The duty cycle is the transmit time over an observation period of one hour. Meshtastic’s EU_868 region sits in 869.4–869.65 MHz, the only band with 500 mW and 10 %; LoRaWAN’s default channels are in 868.0–868.6 MHz, at 25 mW and 1 %. These bands also accept listen-before-talk with adaptive frequency agility (LBT+AFA) as the access method, but EN 300 220 caps it at 100 s of transmission per hour for each 200 kHz of spectrum, about 2.8 %, less than the 10 % of 869.4–869.65 MHz.
| Band | Maximum power | Duty cycle | Used by |
|---|---|---|---|
| 868.0–868.6 MHz | 25 mW ERP (14 dBm) | 1 % | LoRaWAN, 868.1, 868.3 and 868.5 MHz |
| 865–868 MHz | 25 mW ERP | 1 % | LoRaWAN, 867.1–867.9 MHz |
| 868.7–869.2 MHz | 25 mW ERP | 0.1 % | — |
| 869.4–869.65 MHz | 500 mW ERP (27 dBm) | 10 % | Meshtastic EU_868, LoRaWAN RX2 downlink |
| 869.7–870.0 MHz | 25 mW ERP | 1 % | — |
| 433.05–434.79 MHz | 10 mW ERP (10 dBm) | 10 % | Meshtastic EU_433 |
ERP is measured against a half-wave dipole, which has 2.15 dBi of gain, so ERP is EIRP minus 2.15 dB. A 22 dBm radio with a 2 dBi antenna and 0.5 dB of cable loss radiates 21.4 dBm ERP: within the 27 dBm of 869.4–869.65 MHz, well above the 14 dBm of the LoRaWAN channels. In the US, 902–928 MHz has no hourly duty cycle: FCC 15.247 allows up to 1 W at the radio, less the antenna gain above 6 dBi, to frequency-hopping systems (at least 50 channels below 250 kHz, 0.4 s at most on each in 20 s; from 250 kHz, 25 channels and 0.4 s in 10 s, with 0.25 W below 50 channels) and to digital modulation at least 500 kHz wide.
Range: link budget, horizon and Fresnel zone
The link budget is the path loss the link can absorb: transmit power plus both antenna gains, minus the cable losses and the receiver sensitivity. Sensitivity comes from the Semtech datasheets: for the SX1262 at SF7 and SF12, with the 2.5 dB steps of the demodulator in between, and for the SX1276 at every spreading factor. Each step up in spreading factor gains about 2.5 dB.
Free-space path loss grows with 20 times the logarithm of distance and of frequency, so the free-space range follows directly from the budget, and it is very optimistic: real links lose far more to terrain, buildings and vegetation. The radio horizon, with the usual 4/3 earth radius for refraction, is the hard limit for antennas at a given height.
Close to the ground there is a second limit. Beyond a critical distance of about 4 h1 h2 / λ, about 230 m for antennas at 2 and 10 m at 868 MHz, the wave reflected off the ground cancels more and more of the direct one, and over flat terrain the loss grows by 12 dB for each doubling of distance instead of 6 (the two-ray model); measurements with LoRa at 869.5 MHz over the sea found the same slope. The readout shows this flat-ground range, capped by the horizon: hills, buildings and trees reduce it further.
Radio waves need more than a thin line of sight: the first Fresnel zone, an ellipsoid around the line, should be at least 60 % clear. At 868 MHz over 5 km its radius at mid-path is about 21 m, which is why antennas a couple of metres above the ground reach much less than the link budget suggests.
Energy per packet
The transmit current comes from the radio datasheet, at the listed power equal to or just above the one you set: from 45 mA at 14 dBm to 118 mA at 22 dBm for the SX1262. It covers the radio only, so add the microcontroller, which stays awake while the packet goes out. A Meshtastic node also keeps its receiver on, and that usually costs more than its transmissions.
Frequently asked questions
How long does a LoRa packet take to send?
It depends on spreading factor, bandwidth and length. A 20-byte packet with LoRaWAN settings (7 bytes of payload plus the 13 of the LoRaWAN frame) takes about 57 ms at SF7 and 125 kHz and about 1.3 s at SF12; each step up in spreading factor roughly doubles the time.
How many messages can a Meshtastic node send in Europe?
In the EU_868 band the limit is 10 % of each hour, 360 s. A 40-byte text on LongFast takes about 0.72 s, so the duty cycle allows around 500 an hour. Meshtastic tracks its own airtime, relayed packets included, and stops sending when it reaches the limit.
Which Meshtastic preset should I use?
The one your local mesh uses: nodes on different presets can’t hear each other. LongFast is the default. MediumFast takes about a quarter of its airtime and ShortFast about a tenth, at the cost of range, which helps busy meshes; LongModerate reaches a little farther but takes about three times as long.
How far does LoRa reach?
With a clear line of sight, tens of kilometres and more: the LongFast link budget allows hundreds of kilometres in free space. On the ground the limits are the horizon, the ground itself and the obstacles: two antennas 2 m up see each other only within about 12 km, over flat ground the reflected wave makes the loss grow twice as fast with distance, and anything in the Fresnel zone, such as buildings or trees, cuts the range further. Height matters more than power.
What is the maximum transmit power for LoRa in Europe?
25 mW ERP (14 dBm) in most of 863–870 MHz, including the LoRaWAN channels, and 500 mW ERP (27 dBm) in 869.4–869.65 MHz with a 10 % duty cycle. ERP includes the antenna gain: with a 5 dBi antenna, 27 dBm ERP takes about 24 dBm at the radio. National rules can add restrictions.
Why does The Things Network limit airtime?
Its fair use policy gives each node 30 s of uplink airtime a day on the public network, so that gateways are shared fairly. That is about 530 packets with 7 bytes of payload (20 bytes on air) at SF7, but only about 22 at SF12.