For The Things Network’s public community network the Fair Access Policy limits the data each end-device can send, by allowing:
- An average of 30 seconds uplink time on air, per day, per device.
- At most 10 downlink messages per day, including the ACKs for confirmed uplinks.
A good goal is to keep the application payload under 12 bytes, and the interval between messages at least several minutes.
The following regulations apply as well:
LoRaWAN data rate and application packet sizes
The data rate and maximum packet size roughly depend on the distance to the nearest gateway and the type of data to be sent, and are also defined in the specification for each region. Like for the European 863-870MHz band, the application packet size varies between 51 bytes for the slowest data rate, and 222 bytes for faster rates. Note that the LoRaWAN protocol adds at least 13 bytes to the application payload. And beware:
- Some libraries, such as LMiC, only support 51 bytes for all SF.
- Some providers, such as the Dutch KPN, only support 51 bytes for all SF.
- Some regions define a maximum dwell time, reducing the maximum payload size for slow data rates (high SF).
Devices with fixed hardcoded data rates of SF12 or SF11 are not allowed to join the network.
LoRaWAN transmit duty cycles and dwell times
To avoid network congestion, LoRaWAN defines some maximum transmit duty cycles and maximum transmit times (dwell times). These depend on many factors including the region and the type of operation (like sending data, or broadcasting a request to join a network).
For the European EU 863-870MHz ISM Band the specification limits the duty cycle to 1% for data:
The LoRaWAN enforces a per sub-band duty-cycle limitation. Each time a frame is transmitted in a given sub-band, the time of emission and the on-air duration of the frame are recorded for this sub-band. The same sub-band cannot be used again during the next Toff seconds where:
Toffsubband = (TimeOnAir / DutyCyclesubband) - TimeOnAir
During the unavailable time of a given sub-band, the device may still be able to transmit on another sub-band. If all sub-bands are unavailable, the device has to wait before any further transmission. The device adapts its channel hopping sequence according to the sub-band availability.
Example: A device just transmitted a 0.5 s long frame on one default channel. This channel is in a sub-band allowing 1% duty-cycle. Therefore this whole sub-band (868 – 868.6) will be unavailable for 49.5 s.
For other regions, quite similar limitations apply.
In an open network with many different end-devices (nodes), which are not connected but just start sending when they need to (ALOHA-like protocol), and all have a different data need and connection quality, there are many limiting factors to keep things working. Like when an end-device is far away from a gateway, it needs to use a low data rate to ensure at least one gateway receives its data. But a lower data rate implies a longer air time for each byte. This limits the maximum packet size, to ensure other end-devices get time to use the network as well. And when transmitting takes longer, a device cannot send as often as it might want to.
The uplink limit of the TTN Fair Access Policy is based on the following:
- 8 frequencies
- 5% receive duty cycle on the gateway
- 86,400 seconds in a day
- 1,000 nodes
Or: (8 × 86,400 × 0.05) / 1,000 yields approximately 30 seconds per node per day.
Fair Access Policy: Practice
- Golden rule: 30 seconds air-time per device per day
- For 10 bytes of payload, this translates in (approx.):
- 20 messages per day at SF12
- 500 messages per day at SF7
- more for SF7BW250 and FSK (local-area)
- If your application requires more bandwidth, think of another solution
- This allows for >1000 nodes per gateway
- Downlink bandwidth is even more restricted
- you can’t send all messages as ‘confirmed uplink’
This would mean that for each uplink message there would be a downlink message. But since the gateway also has a duty cycle, there is a limit on how much downlink we can support. So, this is also a restriction: confirmed uplink will not be possible for all devices. This means that people, application developers, should be careful when using this feature. […] By the way, the Fair Access Policy is more based on the gateway limitations than on the limitations of an individual node.
All devices have to comply with these regulations, so that includes gateways. As a result, downlink capacity of the network is even smaller than uplink capacity. This means that you should use unconfirmed messages unless you really need confirmed messages and send as little downlink data messages as possible.
Also note that current LoRaWAN gateways are all half-duplex, implying they cannot listen to incoming uplinks while transmitting a downlink packet to a node. Even more: while sending it can only transmit on one channel, while for listening it can use 8 channels simultaneously.
For the 10 downlink messages per day, @Thomas wrote on Slack:
It’s not in seconds because the node/app don’t have influence on the data rate (RX1 vs RX2). It does include ACK’s, but maybe we should exclude ADR. The main problem is to manage the TX time of the gateway(s), because at TX interrupts any ongoing RX, so it might affect network performance quite a bit. 10 messages of 10 byte payload (on average?) at SF9 (RX2) are about 2 seconds of airtime.
Finally, see LoRaWAN Limitations on the Wiki.
Close to an European gateway, an application payload of 55 bytes (out of the maximum of 222 bytes) might take 123.14 milliseconds when using EU868’s highest data rate, SF7/125kHz. This implies the end-device needs to wait just 12,314 milliseconds before it may try to use the same sub-band again, when limited by the 1% LoRaWAN duty cycle rule. (Other sub-bands might be available.) But given the TTN Fair Access Policy of 30 seconds, the device is also limited to sending only 243 packets of 123.14 milliseconds per day. So while for a 1% maximum duty cycle it may send another packet after waiting 12.3 seconds, on average it may only send once every 5.9 minutes.
Much further away from a gateway, sending the maximum application payload of 55 bytes using the lowest EU868 data rate of SF12/125kHz may take 24 times longer, 2,957.31 milliseconds. Then the device needs to wait 4.9 minutes before it may try to send another packet (in the same sub-band). But it can also only send 10 such packets per day, on average less than once every 2 hours.
Limiting the application payload to only 8 bytes (which will still need at least an extra 13 bytes for the LoRaWAN protocol) decreases the above air times to 56.58 and 1,482.75 milliseconds. That allows for twice as many packets per day when complying to the TTN Fair Access Policy.