Understanding Channel Masks

I’m a noob - so still trying to figure a lot of stuff out.

I’m trying to understand Channel Masks. I read https://docs.heltec.org/general/connect_to_single_channel_gateway.html

I believe that the link in the document to
that is suggested is " highly recommend read it carefully" and that takes you to a 404 page not found error. Perhaps it should be linking to this?

The default channel mask was
/LoraWan channelsmask, default channels 0-7/
uint16_t userChannelsMask[6]={ 0x00FF,0x0000,0x0000,0x0000,0x0002,0x0000 };

When I checked the Helium console, I found that my device (node) couldn’t join. I kept getting repeated Accept & Request notifications but no Acknowledge & Uplink notifications. By clicking on the Helium Console > Join Request > Hotspots I found that the frequency of the Requests to my local Helium hotspots were 904.3, 904.5 and 904.7. Using the LoRaWan parameters document at

(page 13 for USA) and by using the document and creating a spreadsheet I found that those frequencies were in a different band of frequency channels.

I switched my channel mask to:

uint16_t userChannelsMask[6]={ 0x00FF,0x0000,0x0000,0x0000,0x0002,0x0000 };

and now my device / node is connecting and I’m seeing Acknowledge & Uplink notifications in my Helium console.

I believe that according to the specification, I should be testing multiple sets of channels and therefore adjusting the channel mask so that I can make sure that I can reach hotspots from different manufacturers in different locations especially given that I’m using a CubeCell with GPS.

Do you agree with my comments on Channel Masks?

Lastly, I haven’t been able to figure out the Channel mask for the last band mentioned in the LoRaWan document (denoted by ? in the spreadsheet), neither have I figured out how the channel mask for Downlinks should be set. Any advice would be most welcome. Thanks!


1 Like

The before and after channel masks posted are exactly the same. Am I missing something here? Having similar issues with not being able to join, was hoping userChannelsMask would fix.