Understanding Duty Cycle Coding Rate Packet Structure in LoRa
Duty Cycle
In the previous section, we explored Spreading Factors and ADR in LoRaWAN. Duty Cycle indicates what portion of time a resource or channel is actively in use. For example: If a device operates on a channel for 10 time units but transmits for only 2 units, its Duty Cycle = 20%.

Single Channel
Calculation is simple: Transmitted time ÷ Total time → 2 / 10 = 20%
Multiple Channels
Things get more complex. Suppose the device transmits on 3 different channels, each with 2 units transmitted per 10 units → 20% per channel. Total transmission: 6 units out of 10 → Overall device Duty Cycle = 60%
In simple terms: Adding more channels allows the device to be active longer overall, even if per-channel limits are respected.

Europe: Sub-bands Matter
In European frequency plans, channels are grouped into sub-bands. Duty Cycle is calculated per sub-band, not just per channel.
Example continuation:
- 3 channels, each 20% Duty Cycle
- But they belong to 2 sub-bands:
- Sub-band 1: 2 units / 10 → 20%
- Sub-band 2: 4 units / 10 → 40%
Key point: Regulations in Europe define separate Duty Cycle caps per sub-band (e.g., 1%, 0.1%, 10%). → You must track usage per sub-band to stay compliant.
This ensures fair spectrum sharing and reduces interference in dense networks.

Maximum Duty Cycle
In many countries, radio device Duty Cycle is restricted by regulators. The most common limit is 1% — meaning a device may transmit only 1% of the time on a given channel. Always check local regulations, as limits vary.
In Europe, these are defined by ETSI EN300.220-2 V3.2.1 (2018-06), Section 4.3.3. The standard specifies maximum Duty Cycle per sub-band:
Additionally, LoRaWAN specifications impose Duty Cycle limits on Join channels (used for OTAA). In most regions, Join channels are limited to 1% Duty Cycle.
Forward Error Correction (FEC) and Coding Rate
LoRa improves reliability using Forward Error Correction (FEC). How it works: Before transmission, redundant bits are added to the payload. If noise or interference corrupts the message (e.g., flipping 0→1 or 1→0), the receiver uses these extra bits to detect and correct errors.
Coding Rate (CR) defines the ratio of real data to total transmitted bits. LoRaWAN supports four standard coding rates:
Example: CR = 5/7 → For every 5 real data bits, the encoder sends 7 bits total → 2 redundant.
In simple terms:
- Lower Coding Rate (e.g., 4/8) → More redundancy → Stronger error resistance → Lower data rate
- Higher Coding Rate (e.g., 4/5) → Less redundancy → Faster data rate → Less error tolerance
This gives flexibility: Use high CR in good conditions for speed. Use low CR in noisy or distant links for reliability.

LoRa Physical Layer Packet Format
LoRa uses two packet formats for data transmission: Explicit and Implicit.
Explicit Mode
The LoRa packet includes the following components:
- Preamble
- Used for receiver-transmitter synchronization.
- Standard length: 8 symbols (per LoRaWAN Regional Parameters).
- Radio automatically adds 4.25 symbols → Total: 12.25 symbols.
- PHDR (Physical Header)
- Optional — only in Explicit mode.
- Contains payload size and CRC status.
- PHDR_CRC (Header CRC)
- Optional field.
- Provides error detection/correction for the header.
PHDR and PHDR_CRC are encoded with Coding Rate = 4/8.
- PHYPayload
- Contains the entire MAC-layer frame.
- Maximum size varies by Data Rate (DR) and regional regulations.
- CRC
- Optional field for uplink payload error detection.
PHYPayload and CRC are encoded with one of the Coding Rates: 4/5, 4/6, 4/7, or 4/8
The entire frame is transmitted using one of the Spreading Factors (SF7 to SF12).
The LoRa physical layer is designed for flexibility (optional CRC, configurable header) and high reliability in IoT communications — balancing efficiency, robustness, and regional compliance.
| Preamble | PHDR | PHDR_CRC | PHYPayload | CRC |
Physical structure of an uplink packet
| Preamble | PHDR | PHDR_CRC | PHYPayload |
Physical structure of a downlink packet
Implicit Mode The header is removed from the packet. Reason:
- Payload size and Coding Rate are predefined or fixed
- No need to send extra header to convey this information
Key Example: Beacons in LoRa
- Gateways use Implicit mode to send time synchronization information
- Packet structure is known in advance → removing header makes the packet shorter and simpler
Summary
Physical structure of a beacon
FAQ – Understanding Duty Cycle Coding Rate Packet Structure in LoRa
Resources
Compare generations, choose the right hardware, and future-proof your network in one go.
Dive into Part 6: Introduction and Comparison of LoRaWAN Concentrators and Transceivers Across Generations –
to select optimal devices and scale with confidence.

