This documentation page applies to the legacy Things Network Stack V2. Documentation for The Things Stack V3 is available here

Duty Cycle

Duty Cycle indicates the fraction of time a resource is busy.
When a single device transmits on a channel for 2 time units every 10 time units, this device has a duty cycle of 20%.
Single Channel Duty Cycle

However, if we also consider channels, things get a bit more complicated. When we have a device that transmits on 3 channels instead of one, each individual channel is still occupied for 2 time units every 10 time units (so 20%). However, the device is now transmitting for 6 time units every 10 time units, giving it a duty cycle of 60%.
Multiple Channel Duty Cycle

In our European frequency plan, we have channels in different sub-bands, so when considering the duty cycle, we also have to consider these. Let’s say the 3 channels we used before, are in 2 different sub-bands. Each separate channel still has a duty cycle of 20%, the device still has a duty cycle of 60%, but we now see that Band 1 is in use for 2 time units every 10 time units (20%), while Band 2 is in use for 4 time units every 10 time units (40%).
Multiple Band Duty Cycle

Maximum Duty Cycle

The duty cycle of radio devices is often regulated by government. If this is the case, the duty cycle is commonly set to 1%, but make sure to check the regulations of your local government to be sure.

In Europe, duty cycles are regulated by section 7.2.3 of the ETSI EN300.220 standard. This standard defines the following sub-bands and their duty cycles:

  • g (863.0 – 868.0 MHz): 1%
  • g1 (868.0 – 868.6 MHz): 1%
  • g2 (868.7 – 869.2 MHz): 0.1%
  • g3 (869.4 – 869.65 MHz): 10%
  • g4 (869.7 – 870.0 MHz): 1%

Additionally, the LoRaWAN specification dictates duty cycles for the join frequencies, the frequencies devices of all LoRaWAN-compliant networks use for over-the-air activations (OTAA) of devices. In most regions this duty cycle is set to 1%.

Finally, on The Things Network’s public community network, we have a Fair Access Policy that limits the uplink airtime to 30 seconds per day (24 hours) per node and the downlink messages to 10 messages per day (24 hours) per node. If you use a private network, these limits do not apply, but you still have to be compliant with the governmental and LoRaWAN limits.


Every radio device must be compliant with the regulated duty cycle limits. This applies to both nodes and gateways.

In practice, this means that you should program your nodes in such a way, that they stay within the limits. The easiest way to do this, is to calculate how much airtime each message consumes using one of the many airtime calculators and use that information to choose a good transmit interval.

Some radio modules (such as the RN2483) also enforce the duty cycle limits. If you exceed the limits, the module will complain with a message no_free_ch. Specifically, the RN2483 limits the duty cycle on a per-channel basis. This means that if you only have 1 channel configured, the module will start enforcing the duty cycle after the first message.

The figure below shows enforcement on a resource with a 20% duty cycle limit
Single Channel Off-air

In the European band, a transmission on a channel within a frequency band, also influences the other frequencies in that band.

The figure below shows enforcement on two bands, each with a 20% duty cycle limit
Multiple Band Off-air

As a per-channel duty cycle limit is easier to implement, you can also divide the sub-band duty cycle over the number of channels in that sub-band. So for example, in a sub-band with 8 channels and a duty cycle of 1%, each channel has a duty cycle of 1/8% (that’s 0.125%).

This method is also implemented by the RN2483 module, and as a result, instead of seeing the no_free_ch when you send too quickly after the first message you can send multiple messages before all 8 channels are “blocked” and the duty cycle is enforced.

The figure below shows enforcement on those same two bands, but enforced per channel
Multiple Band Off-air

(note: channel 3 is blocked until slot 11)