Gateway-profile enabled channels / LoRa Server extra channels



I was trying to configure channels with the appserver like this:

But they seems to not be added to CFList


The only way I can add this channels is editing loraserver configuration file [extra_channels].
Which one is the right way to enable this channels?


Added to loraserver configuration, it seems to work here:

OTA Channel Manager AU923
Configuring end device different channel set
Multiple Uplink Channel

Please note:

The channels active in this gateway-profile as specified in the LoRaWAN Regional Parameters sepecification. Separate channels by comma, e.g. 0, 1, 2. Extra channels must not be included in this list.

For the EU band the Enabled channels should be: 0, 1, 2.

In the latest LoRa App Server release the channel-configuration has been renamed to gateway-profiles as this profile allows you to configure the gateway channel-plans. This does not reflect the device channel configuration. E.g. for EU you could have two gateway-profiles with 8 channels each. Then using the [[network_server.network_settings.extra_channels]] you would configure all 16 channels if you would like to enable these on your devices.

See also:


Yes. I saw that but got a little confused. Thought I had to add the channels in the appserver.

Then I was doing it right I guess.

Thanks for clarification.


Ok. I have another question.

If I comment the [network_server.network_settings.extra_channels] section in loraserver.toml and then add the extra channels in appserver

Like this:
Enabled: 0, 1, 2. And all the rest below in [extra channels]

Should I add them to CFList? Because if this doesnt add them or configure extra channels I don’t know why it is in the appserver if I can edit everything in loraserver.toml


No, it will configure your gateways to support the channels configured in the gateway-profile, but it will not affect your devices. E.g. in some cases you want to configure channels on your gateway that are not used by your devices (for whatever reason).

The other way around, when you configure channels in the [[network_server.network_settings.extra_channels]] sections that are not supported by your gateways, then your device will start operating on frequencies that are not used by your gateway.

In short, use the loraserver.toml to make sure your devices operate on the wanted frequencies and use the gateway-profiles to make sure you gateways are listening on the wanted frequencies.


Oooh I see. I kind of understand now.



I don’t understand, this definitely could be made clearer in the documentation…

This is what my config looks like, and it results in the server blowing a gasket…

enabled_uplink_channels=[0, 1, 2]






First line: this should have a double [[

For troubleshooting why LoRa Server doesn’t start, you could also run loraserver --config /etc/loraserver/loraserver.toml (or any other path where the configuration is located).


The old adage about a 2nd pair of eyes…

Yep - one too many “x”'s in Vim while uncommenting the lines.
That seems to have fixed the issue I was having - thanks!


well - I was able to get my Gateway configured and added and application and a device - BUT…

When the device initially joins, it receives the full 8 supported channels - cheers!
After 1-2 uplinks by the device, it then receives a new ADR and this seems to trigger the device reverting to only the 3 base EU channels.
Obviously, I’d like the 5 additional channels to hang around more than just a few transactions…



Now that I’m working in 915Hybrid I have a doubt how to enable channels to work with CFList

This is what I have configured, note that extra channels are not configured:

 # enabled_uplink_channels=[0, 1, 2, 3, 4, 5, 6, 7]
   enabled_uplink_channels=[0, 1, 2, 3, 4, 5, 6, 7]

   # Extra channel configuration.
   # Use this for LoRaWAN regions where it is possible to extend the by default
   # available channels with additional channels (e.g. the EU band).
   # The first 5 channels will be configured as part of the OTAA join-response
   # (using the CFList field).
   # The other channels (or channel / data-rate changes) will be (re)configured
   # using the NewChannelReq mac-command.
   # Example:
   # [[network_server.network_settings.extra_channels]]
   # frequency=867100000
   # min_dr=0
   # max_dr=5

   # [[network_server.network_settings.extra_channels]]
   # frequency=867300000
   # min_dr=0
   # max_dr=5

   # [[network_server.network_settings.extra_channels]]
   # frequency=867500000
   # min_dr=0
   # max_dr=5

   # [[network_server.network_settings.extra_channels]]
   # frequency=867700000
   # min_dr=0
   # max_dr=5

   # [[network_server.network_settings.extra_channels]]
   # frequency=867900000
   # min_dr=0
   # max_dr=5

I was reading the LoRaWan Regional parameters, and US915 Joins are weird. How do I add all 8 channels to CFList? In the comments says that only the first 5 will be added.

I only add one channel in frequency band 0 to my device. Make join. Get all 8 channels.
Is this possible or am I mistaken?



You don’t use the extra channel configuration for the US band. Just use the enabled_uplink_channels as you already to to enable channels 0 - 7.

The extra channels are for channels that your devices is not aware of, e.g. to use in Europe where there are only 3 pre-defined channels. For the US band all channels are predefined by the spec.


Okay, seems that I’ve got it right.

I don’t know why is not working. Seems a module bug. Debugging with lora-app-server mqtt I see the CFList but the device seems to ignore it.


When you don’t have any extra_channels configured, you should not see a CFList.


Now I’m confused.
LoRaWan Regional Parameters specifies an optional CFList. Thought this was implemented. My bad. I got confused by ChMask.

So no CFList for AU915 and US915.
Thanks for the answer


Regional Parameters 1.0.2:

442 2.2.4 US902-928 JoinAccept CFList
443 The US902-928 LoRaWAN does not support the use of the optional CFlist appended to the
444 JoinAccept message. If the CFlist is not empty it is ignored by the end-device.

However, this will change with LoRaWAN 1.1 where the CFList will contain the channel-mask in case of US (like) bands. This has not yet been implemented, but will come in the future :slight_smile:



Thanks for clarification. I was checking on 1.1


This topic is really confusing me… I have a question that . I have 8 working channels. should the device still send uplink on those frequencies that i haven’t configured in the loraserver configuration. ?? Means i have few working frequencies that i have not configured. will I still get uplink on those unconfigured frequencies?

  • The gateway-profiles configure your gateways to listen on a set of frequencies (given that you have configured this too in your LoRa Gateway Bridge configuration)
  • The [[network_server.network_settings.extra_channels]] configure extra channels (that are not defined by the LoRaWAN Regional Parameters specification) for your device to transmit on
  • The enabled_uplink_channels define which channel-numbers as specified by the LoRaWAN Regional Parameters are enabled.

When you prefer to configure your gateway manually (by editing global_conf.json or local_conf.json), then you can forget about the gateway-profiles completely :slight_smile:


US band


  • enabled_uplink_channels=[0, 1, 2, 3, 4, 5, 6, 7]


Configure the frequencies that map to channels 0 - 7.



  • enabled_uplink_channels=[] (when left blank this implies all uplink channels active, thus enabled_uplink_channels=[0, 1, 2]
  • [[network_server.network_settings.extra_channels]] use this to configure channel 3 - 7 (optional extra channels).


Configure the channels that map to 0 - 2 (default LoRaWAN channels) + optionally also the frequencies of channel 3 - 7 that you defined yourself.


When I add few channels in the [[network_server.network_settings.extra_channels]], does the server give a NewChannelReq?