Hot![FAQ]Frequency Settings for EU 868 MHz, Plus Duty Cycle and Avoiding "no_free_ch" Messages

Author
@JDP
Moderator
  • Total Posts : 48
  • Reward points : 0
  • Joined: 2015/11/06 20:05:06
  • Location: 0
  • Status: offline
2016/09/09 10:48:56 (permalink)
4.33 (3)

Frequency Settings for EU 868 MHz, Plus Duty Cycle and Avoiding "no_free_ch" Messages

The RN2483 is set up with 3 channels by default (868.1, 868.3, 868.5 MHz) each with data rates 0-to-5 and 0.33% duty cycle.
 
All EU gateways are capable of supporting 8 channels, and some support 16. The RN2483 can manage a list of 16 channels. 
 
The additional channels can be added using these commands:
> mac set ch freq 3 868850000   // Sets ch3 to 868.850 MHz
> mac set ch dcycle 3 999       // Sets the duty cycle to 0.1% (= 99.9% off)
> mac set ch drrange 3 0 5      // Allows data rates 0 to 5 on this channel
> mac set ch status 3 on        // Enables the channel
Note that the default channels are numbers 0, 1 & 2. This group of commands sets up channel 3, and should be repeated for 4, 5, etc
 
Generally the overall duty cycle limit for an EU device is 1% (but it does vary some times by frequency band and region) and RN2483 keeps "on air" & "off air" timers for each channel to help ensure you don't violate the regs. By adding new channels, the overall duty cycle limit has increased above 1% and so you should correct the 3 default channels to a lower value and make sure that everything adds up to 1% (or whatever local limit you are targeting):
> mac set ch dcycle 0 999       // Sets the duty cycle to 0.1% (= 99.9% off)
> mac set ch dcycle 1 999       // Sets the duty cycle to 0.1% (= 99.9% off)
> mac set ch dcycle 2 999       // Sets the duty cycle to 0.1% (= 99.9% off)

When pseudo-randomly hopping around the channels, the algorithm looks at the next channel and decides if the timers have enough remaining duty cycle allocation for the transmission. If no, then it skips that channel and moves to the next. If you've used all the allocation for all channels, you get the "no_free_ch" response. 
 
This is quite a common problem during development/learning/debugging where you tend to send messages far more frequently than normal. In real "sleepy" applications it is rarely an issue. 
 
During testing you can cheat the safeguards just by raising the duty cycle limit for each channel using the same commands:
(From the cmd ref guide: The <dutyCycle> value that needs to be configured can be obtained from the actual duty
cycle X (in percentage) using the following formula: <dutyCycle>  = (100/X) – 1)
 
> mac set ch dcycle 0 9          // Sets channel 0 to 10% (= 90% off)
> mac set ch dcycle 1 99         // Sets channel 1 to 1% (= 99% off)
> mac set ch dcycle 2 999        // Sets channel 2 to 0.1% (= 99.9% off)
 
All of these frequency & duty cycle settings can be stored in EEPROM using the "mac save" command.
 
#1

7 Replies Related Threads

    @JDP
    Moderator
    • Total Posts : 48
    • Reward points : 0
    • Joined: 2015/11/06 20:05:06
    • Location: 0
    • Status: offline
    Re: Frequency Settings for EU 868 MHz, Plus Duty Cycle and Avoiding "no_free_ch" Messages 2016/09/11 06:58:50 (permalink)
    3 (1)
    Frequency plan used by EveryNet:
     
    Ch0: 868,100,000 MHz, DR-range: 0-to-5 (LoRa 125 KHz)    // Default LoRaWAN EU Channel
    Ch1: 868,300,000 MHz, DR-range: 0-to-5 (LoRa 125 KHz)    // Default LoRaWAN EU Channel
    Ch2: 868,500,000 MHz, DR-range: 0-to-5 (LoRa 125 KHz)    // Default LoRaWAN EU Channel
    Ch3: 867,100,000 MHz, DR-range: 0-to-5 (LoRa 125 KHz)
    Ch4: 867,500,000 MHz, DR-range: 0-to-5 (LoRa 125 KHz)
    Ch5: 867,700,000 MHz, DR-range: 0-to-5 (LoRa 125 KHz)
    Ch6: 867,900,000 MHz, DR-range: 0-to-5 (LoRa 125 KHz)
    Ch7: 867,300,000 MHz, DR-range: 6-to-6 (LoRa 250 KHz)
    Ch8: 867,700,000 MHz, DR-range: 7-to-7 (FSK)
    RX2: 869,525,000 MHz, DR 0    // Default LoRaWAN EU RX2 settings
    #2
    @JDP
    Moderator
    • Total Posts : 48
    • Reward points : 0
    • Joined: 2015/11/06 20:05:06
    • Location: 0
    • Status: offline
    Re: Frequency Settings for EU 868 MHz, Plus Duty Cycle and Avoiding "no_free_ch" Messages 2016/09/11 07:26:56 (permalink)
    3 (1)
    Various frequency plans available on Loriot.io:
    https://loriot.io/home/documentation.html#docu/frequency-plan 
    #3
    @JDP
    Moderator
    • Total Posts : 48
    • Reward points : 0
    • Joined: 2015/11/06 20:05:06
    • Location: 0
    • Status: offline
    Re: Frequency Settings for EU 868 MHz, Plus Duty Cycle and Avoiding "no_free_ch" Messages 2016/09/11 07:55:54 (permalink)
    3 (1)
    Frequency plan used by Actility / ThingPark:
     
    Ch0 (aka LC1, band g1): 868,1 MHz, DR-range: 0-to-5 (LoRa 125 KHz)    // Default LoRaWAN EU Channel
    Ch1 (aka LC2, band g1): 868,3 MHz, DR-range: 0-to-5 (LoRa 125 KHz)    // Default LoRaWAN EU Channel
    Ch2 (aka LC3, band g1): 868,5 MHz, DR-range: 0-to-5 (LoRa 125 KHz)    // Default LoRaWAN EU Channel
    Ch3 (aka LC4, band g2): 868,85 MHz, DR-range: 0-to-5 (LoRa 125 KHz)
    Ch4 (aka LC5, band g2): 869,05 MHz, DR-range: 0-to-5 (LoRa 125 KHz)
    Ch5 (aka LC6, band g3): 869,525 MHz, DR-range: 0-to-5 (LoRa 125 KHz)
    Ch6 (aka LC7, band g1): 868,3 MHz, DR-range: 6-to-6 (LoRa 250 KHz @ SF7 = 10 kbps)
    Ch7 (aka FC1, band g1): 868,3 MHz, DR-range: 7-to-7 (FSK = 100 kbps)
    RX2: uses LC6 with DR3 (=SF9)
     
    Band g1 allows +14dBm & 1% Duty Cycle
    Band g2 allows +14dBm & 0.1% Duty Cycle
    Band g3 allows +27dBm & 10% Duty Cycle
    (LBT AFA also allowed)
    post edited by @JDP - 2016/09/23 01:37:44
    #4
    usmanasghar
    New Member
    • Total Posts : 16
    • Reward points : 0
    • Joined: 2017/03/05 06:32:07
    • Location: 0
    • Status: offline
    Re: Frequency Settings for EU 868 MHz, Plus Duty Cycle and Avoiding "no_free_ch" Messages 2017/05/05 13:44:15 (permalink)
    0
    @JDP
    The RN2483 is set up with 3 channels by default (868.1, 868.3, 868.5 MHz) each with data rates 0-to-5 and 0.33% duty cycle.
     
    All EU gateways are capable of supporting 8 channels, and some support 16. The RN2483 can manage a list of 16 channels. 
     
    The additional channels can be added using these commands:
    > mac set ch freq 3 868850000   // Sets ch3 to 868.850 MHz
    > mac set ch dcycle 3 999       // Sets the duty cycle to 0.1% (= 99.9% off)
    > mac set ch drrange 3 0 5      // Allows data rates 0 to 5 on this channel
    > mac set ch status 3 on        // Enables the channel
    Note that the default channels are numbers 0, 1 & 2. This group of commands sets up channel 3, and should be repeated for 4, 5, etc
     
    Generally the overall duty cycle limit for an EU device is 1% (but it does vary some times by frequency band and region) and RN2483 keeps "on air" & "off air" timers for each channel to help ensure you don't violate the regs. By adding new channels, the overall duty cycle limit has increased above 1% and so you should correct the 3 default channels to a lower value and make sure that everything adds up to 1% (or whatever local limit you are targeting):
    > mac set ch dcycle 0 999       // Sets the duty cycle to 0.1% (= 99.9% off)
    > mac set ch dcycle 1 999       // Sets the duty cycle to 0.1% (= 99.9% off)
    > mac set ch dcycle 2 999       // Sets the duty cycle to 0.1% (= 99.9% off)

    When pseudo-randomly hopping around the channels, the algorithm looks at the next channel and decides if the timers have enough remaining duty cycle allocation for the transmission. If no, then it skips that channel and moves to the next. If you've used all the allocation for all channels, you get the "no_free_ch" response. 

    This is quite a common problem during development/learning/debugging where you tend to send messages far more frequently than normal. In real "sleepy" applications it is rarely an issue. 

    During testing you can cheat the safeguards just by raising the duty cycle limit for each channel using the same commands:
    (From the cmd ref guide: The <dutyCycle> value that needs to be configured can be obtained from the actual duty
    cycle X (in percentage) using the following formula: <dutyCycle>  = (100/X) – 1)

    > mac set ch dcycle 0 9          // Sets channel 0 to 10% (= 90% off)
    > mac set ch dcycle 1 99         // Sets channel 1 to 1% (= 99% off)
    > mac set ch dcycle 2 999        // Sets channel 2 to 0.1% (= 99.9% off)
     
    All of these frequency & duty cycle settings can be stored in EEPROM using the "mac save" command.
     




    If i change the dutycycle limit and increase it to 10% as you have written for one channel then would it work ? If yes then how the devices are regulated ? I have RN2483 motes and am really confused about the data cycle.
     
    I have increased the duty cycles to 1% for each of default loRa channel (it should not have been possible but still i have made it). Then if i make a uplink from LoRa mote on default channel (default application sending light and temp) then the same channel should not be able to send another uplink for atleast 60-90 seconds. However  if i make another uplink within this time slot i can send it most of the time. So LoRa motes are not strictly restricted to this dutycycling in ISM band?
     
    Could you kindly explain this what is happening ? I am confused 
    #5
    Nikolay_Po
    Super Member
    • Total Posts : 1658
    • Reward points : 0
    • Joined: 2012/04/01 13:49:27
    • Location: Russia, Novorossiysk
    • Status: offline
    Re: Frequency Settings for EU 868 MHz, Plus Duty Cycle and Avoiding "no_free_ch" Messages 2017/05/05 14:12:37 (permalink)
    4 (1)
    usmanasghar
    So LoRa motes are not strictly restricted to this dutycycling in ISM band?

    Yes. It is possible to program the device the way that violates legal limits. It is system designer and integrator responsibility to program the motes properly. If many motes will violate the limits the congestion of the air will occur. And legal regulators can monitor the air, determine the MAC addresses and the devices which are violating. A prosecution of an offender can be a hypothetical result.
    #6
    usmanasghar
    New Member
    • Total Posts : 16
    • Reward points : 0
    • Joined: 2017/03/05 06:32:07
    • Location: 0
    • Status: offline
    Re: Frequency Settings for EU 868 MHz, Plus Duty Cycle and Avoiding "no_free_ch" Messages 2017/05/05 14:50:35 (permalink)
    0
    Thanks a lot. Could you also explain how is it possible that using lora evaluation kit we can send uplinks on same channels without any pause. Because there must be a pause according to lorawan specifications.
    Thanks once again
    #7
    ricardo09
    New Member
    • Total Posts : 1
    • Reward points : 0
    • Joined: 2016/06/23 05:56:19
    • Location: 0
    • Status: offline
    Re: Frequency Settings for EU 868 MHz, Plus Duty Cycle and Avoiding "no_free_ch" Messages 2017/06/29 02:15:06 (permalink)
    0
    Hello everybody
     
    I'm looking the correct way to connect to TTN with my RN2483 my configuration is OTAA but with this configuration said no_free_ch:
     
    or OTAA join denied
    mac set deveui XXXXXXXXXXXXXXX

    mac set appeui XXXXXXXXXXXXXXX

    mac set appkey XXXXXXXXXXXXXXXXXXXXXXXXX

    mac set devaddr 26XXXXXX

    mac set nwkskey XXXXXXXXXXXXXXXXXXXXXX

    mac set appskey XXXXXXXXXXXXXXXXXXXXXXX

    mac set ch status 0 off

    mac set ch status 1 off

    mac set ch status 2 off

    mac set ch freq 3 864862500

    mac set ch dcycle 3 0

    mac set ch drrange 3 0 5

    mac set ch status 3 on

    mac set ch freq 4 865062500

    mac set ch dcycle 4 0

    mac set ch drrange 4 0 5

    mac set ch status 4 on

    mac set ch freq 5 865402500

    mac set ch dcycle 5 0

    mac set ch drrange 5 0 5

    mac set ch status 5 on

    mac set ch freq 6 865602500

    mac set ch dcycle 6 0

    mac set ch drrange 6 0 5

    mac set ch status 6 on

    mac set ch freq 7 865985000

    mac set ch dcycle 7 0

    mac set ch drrange 7 0 5

    mac set ch status 7 on

    mac set ch freq 8 866200000

    mac set ch dcycle 8 0

    mac set ch drrange 8 0 5

    mac set ch status 8 on

    mac set ch freq 9 866400000

    mac set ch dcycle 9 0

    mac set ch drrange 9 0 5

    mac set ch status 9 on

    mac set ch freq 10 866600000

    mac set ch dcycle 10 0

    mac set ch drrange 10 0 5

    mac set ch status 10 on

    mac set rx2 2 866550000

    mac save

    mac join otaa
     
    results no_free_ch
     
    and with other config, making that you before changing duty cycle to 10%
     
    mac set deveui XXXXXXXXXXXXXXX

    mac set appeui XXXXXXXXXXXXXXX

    mac set appkey XXXXXXXXXXXXXXXXXXXXXXXXX

    mac set devaddr 26XXXXXX

    mac set nwkskey XXXXXXXXXXXXXXXXXXXXXX

    mac set appskey XXXXXXXXXXXXXXXXXXXXXXX
    mac set ch status 0 off

    mac set ch status 1 off

    mac set ch status 2 off

    mac set ch freq 3 864862500

    mac set ch dcycle 3 1

    mac set ch drrange 3 1 5

    mac set ch status 3 on

    mac set ch freq 4 865062500

    mac set ch dcycle 4 1

    mac set ch drrange 4 1 5

    mac set ch status 4 on

    mac set ch freq 5 865402500

    mac set ch dcycle 5 1

    mac set ch drrange 5 1 5

    mac set ch status 5 on

    mac set ch freq 6 865602500

    mac set ch dcycle 6 1

    mac set ch drrange 6 1 5

    mac set ch status 6 on

    mac set ch freq 7 865985000

    mac set ch dcycle 7 1

    mac set ch drrange 7 1 5

    mac set ch status 7 on

    mac set ch freq 8 866200000

    mac set ch dcycle 8 1

    mac set ch drrange 8 1 5

    mac set ch status 8 on

    mac set ch freq 9 866400000

    mac set ch dcycle 9 1

    mac set ch drrange 9 1 5

    mac set ch status 9 on

    mac set ch freq 10 866600000

    mac set ch dcycle 10 1

    mac set ch drrange 10 1 5

    mac set ch status 10 on

    mac set rx2 2 866550000

    mac save

    mac join otaa
    results otaa join denied
     
    #8
    Jump to:
    © 2017 APG vNext Commercial Version 4.5