Trouble connecting to TTN


Thank you for taking time to read my post.

I am having trouble connecting my end device to TTN.

I get the following serial logs:

Sending: mac join otaa
Response is not OK: no_free_ch
Send join command failed
Sending: mac join otaa
Response is not OK: no_free_ch
Send join command failed
Sending: mac join otaa
Response is not OK: no_free_ch
Send join command failed
Sending: mac join otaa
Join not accepted: denied
Check your coverage, keys and backend status.

While I appreciate that there may be tons of topics regarding this, there is no clear instruction how to resolve this problem.

I have spent days trying everything.

My AppEUI is all Zeros - I have come to understand that this is okay…

I use DeviceInfo example to find the DevEUI

I followed the instructions exactly as per tutorial but with no luck and the above logs.

I have considered the fact that I may be out of range, but I have tried several locations based off the coverage map in the London TTN community. - I am attempting it again today in central London, near a gateway with the same errors.

Is there something I am missing here or is there another way to authenticate the device to the network?

Thanks again for taking the time to address my issue.


The no_free_ch error message is the device stack telling you that you sent too many messages already and it is currently refusing to send any more. The way joining works is that you get a reply if (and only if) the OTAA join is processed/approved by the network. If there’s anything wrong with it, you simply get no reply. So that leads to the device retrying until it finally runs against the legal radio duty cycle, triggering the no_free_ch condition.

It can be very tricky to debug problems like these. It can be insufficient coverage, but also some kind of mistake in the credentials. It’s easy to get this wrong, e.g. typing errors, putting the bytes in the wrong order, etc.

Really the best way is to have some view into the gateway traffic. So either you get permission of a close gateway owner to access the gateway live traffic stream, or you run your own gateway. This could be a relatively inexpensive TheThingsIndoorGateway for example.
Once you can view gateway traffic, you can know for sure if the join packets are arriving at all at the gateway, and also see if the gateway get instructions from the backend to send back a join accept message (i.e. the credentials are accepted).

Thank you for your swift response bertrik

It seems that buying my own gateway may be the way forward.
After a quick search I found “The Things Industries Indoor Gateway 868MHz TTIG-868-IN”

I was hoping that at this stage of development I can connect to a public gateway in order to test my application.

Going forward, I was looking at building my own gateway but this is a great suggestion and a good place to start.


Make sure you get the right model, matched to the radio regulation appropriate for your region.
You said you are in London, then perhaps this particular model (IN868) is not suitable.
You do need one for 868 MHz I think, I guess the EU868.

What are you using for a device?

What sketch are you using?

How often are you sending a uplink?

Do you see anything in you application live data?

How far away from a gateway?

Best will be to get your own gateway to try to analyze issues, as you wil be able to look at your application and gateway live data.

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.