LoRa/The packet and the noise/Airtime is the real payload cost
Lesson 5 of 12 · in 3D and VR

Airtime is the real payload cost

What a message costs on a LoRa link is the time it occupies the channel, and that is set mostly by the radio settings, not the bytes. This lesson works one reproducible packet through the airtime formula.

Lonely BinaryUpdated 2026-10-144 min readNo board required

View it in VR

Lesson 5 of the LoRa course opens in a VR headset, on a table in front of you, and a voice starts three seconds after you arrive. Type this short address into the browser on a headset such as Meta Quest or Apple Vision Pro, and press Enter VR. No headset? Press Start the lesson: the same lesson, full screen.

learn.lonelybinary.com/vr/lora/5

The sum

A packet costs the time it occupies the channel: its symbols multiplied by the time of one symbol, which is 2 to the power of the spreading factor divided by the bandwidth. At SF9 and 125 kHz a symbol lasts 4.096 ms.

The preamble is the programmed 8 symbols plus 4.25 for the sync word and the start of the frame, 12.25 before any data. Then come 8 symbols for the header and the start of the payload, and as many more as the payload and its check need at the coding rate.

The reference packet on the bench is six bytes, SF9, 125 kHz, coding rate 4/5, explicit header, check on, 8-symbol preamble. Preamble 12.25 plus body 18 is 30.25 symbols, and 30.25 times 4.096 ms is 123.9 ms. With the header left out the same bytes take 103.4 ms, which is a different packet.

Bytes come in blocks

The coder works on groups, so time does not climb byte by byte. Six, seven and eight bytes at SF9 all take 123.9 ms; nine takes 144.4 ms. One byte over a step edge costs a whole block.

One setting outweighs the bytes

Each step of spreading factor doubles the symbol time. The same six bytes take 62 ms at SF8, 124 ms at SF9 and nearly a second at SF12. No saving in the payload comes close.

What else is in the packet

A LoRaWAN uplink with a port carries 13 bytes of its own before your six, so the report becomes 19 bytes and about 185 ms at SF9. Some regions also limit airtime. A 1% duty cycle is 36 seconds an hour, which holds about 290 reference packets. Australia's class licence sets none, so there the cost is the battery and the shared channel. The rules lesson sets out the Australian conditions.

Common mistakes

  • Pricing a message by its bytes. The cost is airtime, which moves in blocks and with every setting. Compute it for the settings you will use.
  • Forgetting the protocol's own bytes. LoRaWAN adds 13 before the payload, so a six-byte report is a 19-byte packet.
  • Quoting one airtime for every setting. The figure belongs to one packet at one set of parameters. Change the spreading factor, bandwidth, coding rate, header or check and it changes.

Edit this page — content/fundamentals/lora/airtime-is-the-real-payload-cost.mdx

Discuss this article

Ask about this page. The answer stays here, on the page it belongs to, for whoever hits the same wall next.

Browse Fundamentals on the forum →