LoRa Time on Air Calculator

August 29, 2026

HomeServerBlog LoRa planning tool

LoRa Time on Air Calculator

Estimate LoRa packet airtime, daily duty-cycle usage, application throughput, payload sensitivity, and coin-cell or LiPo battery life from spreading factor, bandwidth, coding rate, preamble, header, CRC, and telemetry frequency.

📡Telemetry presets

⚙LoRa packet inputs

Application payload length before LoRa PHY modulation; LoRaWAN MAC overhead is not automatically added.
Each higher SF roughly doubles symbol time and airtime.
Wider bandwidth shortens symbols but usually lowers link budget.
Higher redundancy raises payload symbols and airtime.
LoRaWAN uplinks commonly use 8 programmed preamble symbols.
Implicit mode removes header bits when both ends already know packet length.
LoRaWAN uplinks normally keep PHY CRC on.
Auto enables LDRO when symbol time is at least 16 ms.
Used to estimate daily airtime, duty-cycle budget, and battery drain.
Enter the regulatory, channel-plan, or private-network duty-cycle ceiling.
Radio current while transmitting at the selected output power.
Average board sleep draw between packet transmissions.
Usable capacity after regulator, temperature, and aging derating.
Adds retransmission, confirmed uplink, join, and network margin to daily airtime.
Time on air 0 ms per packet Includes preamble and payload symbols.
Daily duty use 0% of one day Compared with the selected duty-cycle limit.
Payload throughput 0 bps during transmit Application payload divided by airtime.
Battery estimate 0 days TX plus sleep draw RX windows and sensors are not included.

Formula breakdown

Duty-cycle status

Enter values and calculate the packet.

📊Live LoRa metrics

0 msSymbol time

Computed as 2^SF divided by bandwidth.

0Payload symbols

Header, CRC, coding rate, and LDRO affect this count.

0Max packets/day

Largest packet count inside the selected duty-cycle limit.

0 sMin legal interval

Minimum spacing from airtime divided by duty-cycle fraction.

🧮Payload comparison grid

📚LoRaWAN reference tables

Region or planTypical channel ruleExample limitPlanning note
EU863-870Duty-cycle sub-bands1% commonMany networks use sub-band duty limits, so slow SF12 traffic must be rare.
US902-928Dwell and hopping behaviorPlan by dwellLoRaWAN channel use differs from simple EU-style duty-cycle math.
AU915 and AS923Regional channel plansVariesCheck local channel mask, dwell time, and network-server settings.
Private labLocal policy or test licenseSet manuallyUse the duty input as an engineering ceiling for shared gateways.
Spreading factor125 kHz symbolRange behaviorAirtime behavior
SF71.024 msShortest range, strongest capacityBest for nearby nodes and gateway tests.
SF82.048 msModerate rangeGood for common meters and short outdoor paths.
SF94.096 msUseful range bumpOften a practical compromise for moving sensors.
SF108.192 msLonger reachAirtime becomes noticeable for chatty telemetry.
SF1116.384 msLong rangeLDRO is normally needed at 125 kHz.
SF1232.768 msLongest common rangeUse sparingly; packets can occupy the channel for seconds.
Payload profileTypical bytesExample fieldsCompression idea
Binary door event4 to 8 bytesNode, event, batteryBit-pack flags and send only changes.
Soil or leak sensor8 to 14 bytesMoisture, temp, batteryUse scaled integers instead of JSON strings.
Weather station16 to 28 bytesTemp, humidity, wind, rainDelta-code values when the firmware supports it.
GPS tracker20 to 42 bytesLat, lon, speed, flagsSend fixed-point coordinates and fewer decimals.
Diagnostic frame32 to 51 bytesCounters and radio statsReserve for install or fault windows, not every uplink.
PHY settingTypical valueEffect on ToAHome lab guidance
Preamble8 symbolsAdds fixed sync airtimeKeep default unless gateway detection needs a change.
Explicit headerOnAdds header bitsUse explicit mode for normal variable-length LoRaWAN-style packets.
CRCOnAdds payload-symbol workLeave on when the receiver or protocol expects it.
Coding rate4/5Higher CR means more symbolsRaise redundancy only when link quality justifies the capacity cost.
LDROAutoChanges denominator in payload formulaEnable for long symbols, commonly SF11 or SF12 at 125 kHz.

🛠LoRa planning tips

Cut airtime before adding retries. Moving a node from SF12 to SF10 often saves more channel time than shrinking a few payload bytes. Fix antenna placement, gateway height, and link margin before accepting high spreading factors for frequent telemetry.
Model duty cycle per channel plan. A daily percentage is useful for screening, but LoRaWAN regions can also involve sub-bands, dwell time, fair-access rules, confirmed uplinks, downlink receive windows, and network-server limits.
This calculator estimates LoRa PHY time on air for planning. Real LoRaWAN operation can add MAC commands, frame counters, security headers, join traffic, acknowledgements, retransmissions, RX-window current, gateway capacity limits, and region-specific rules.

Flash the firmware, set up the antenna, stick your LoRa sensor out in the far corner of the warehouse. You place your LoRa sensor in the far corner of the warehouse. It sends a packet but the gateway never recieve it. An hour later you debug your code and find out the packet sat on the air for three seconds, exceeding the tight regional duty cycle limit. Network server just threw it away. That’s the silent killer of long range networks.

You can have perfect signal strength, but if your packet take too long to send, it is useless. The tool above lets you see that tradeoff before you even solder anything together.

How to Plan Your LoRa Network

Time on Air is the most misunderstood variable in LoRa design. Engineers will wring every last dB out of their antenna and power amplifier; they’ll forget all about how long the burst last. This number is controlled by the dial called “spreading factor.” When you crank the dial up, you get more sensitive, signal penetrates further and deeper into wall. However, the price for raising the dial is that symbol time doubles. For example, when you go from SF7 to SF12 @ 125kHz, one millisecond becomes one second.

A second doesn’t look like much on a piece of paper, but do that twenty four times a day, and now you’ve burned through your regulatory allowance. Plug in your settings and our calculator does the math so you don’t have to guess how much channel space your telemetry realy takes up.

And payload size counts. If you have something that can send fifty bytes of JSON and only need four bytes of binary, that’s a luxurios LoRa can rarely afford. Each additional byte is a symbol in the packet, increasing its time on air. Those milliseconds are precious in a congested network, adding up to dropped frames and collisions.

The table on the page reference several different sensors and their corresponding payload sizes. There are eight for a door sensor: one flag plus a battery readout. There may be thirty if it is a weather station with rain, wind, temperature and humidity. Trim down your data to make it fit into the medium. If you’ve got big telemetry streams you can pack bits together (bit packing) or use delta encoding to compress them while preserving the most critical information. It doesn’t save much but it keeps you within your duty cycle budget.

Same goes for battery life. Depending on sleep draw and transmit current, the calculator works out how many days a given LiPo or coin cell lasts you. As you can imagine, the higher the spreading factor, the longer the radio stay on, burning through more juice per packet. And while cranking down the spreading factor saves time (which could be helpful in noisy environments), it also increases the likelihood of a retry if the receiving node can’t get your packet. Retries kill batteries faster then a single long transmission. So you want the lowest spreading factor that still gets your packets received reliably at whatever distance you’re shooting for.

How do you know? Test. Set the spreading factor as high as possible to test range. Then back off till you see packets start to drop. That’s your sweet spot. The calculator help you model this trade-off between speed and power by letting you adjust parameters and see results within days of operation.

The last boss is regulatory constraints. Yes, there’s a 1 percent duty cycle limit in Europe. That means you can’t transmit all the time. Frequency hopping and dwell time rules make things interesting in North America. Ignore them and you’ll get into hot water, or at least have a network that doesn’t work. To accommodate this, the calculator has fields for daily packet count and duty cycle limits. So long as it’s 0.8 percent of your daily allowance, you’re good. If it says 2 percent, its time to tweak something. Perhaps it is the update rate. Perhaps you switch to a narrower bandwidth if the hardware supports it. Perhaps you settle on a shorter range. Radio physics doesn’t offer any free lunches. Always expect to pay in capacity for range.

The reference tables list some common regional constraints so that you can compare your design to your local constraints. The whole point of designing a LoRa network is to manage expectations: do you care about high data rates? Do you need long range? Low power? You get to pick two. And the calculator make you choose explicitly.

Put in your link budget estimate, payload size, and desired update rate. What does the time on air look like? If it’s too long, reduce the spreading factor or shrink the packet. If it’s too short, maybe you are burning battery by being excessively reliable. It’s an iterative process. But it is much better than guesswork.

Well tuned LoRa nodes go completely unnoticed. They work silently for years. Poorly tuned ones fails after weeks. Usually it’s just a matter of a couple milliseconds of airtime.

LoRa Time on Air Calculator

Related posts

Leave a Comment