I’m newly born to the use of TTN (2 days old), I’m currently trying to connect a Feather m0 to some Gateways around myself (not owned). Using the TinyLora library and ABP Activation method I manage to connect to 2-3 gateways and receive the data properly both using a feather m0 and a 32u4 ( I tried this after I couldn’t manage OTTA).
So as I stated already when I tried to connect my feather m0 following the Adafruit Tutorial using the
MCCI_LoRaWAN_LMIC library I was not able to connect. I’ve done some intensive research on the forum and found the following potential errors.
A jumper is indeed connected between pin io1 and pin 6 ( yes, 6, not 9)
I have no experience with this board but I do see Temperature in your message.
Try the ttn-abp.ino and ttn-otaa.ino examples included with the LoRaWAN library first.
These will help you test the basics of your board without any additional code (which will only complicate things).
You should also provide some more information like what IDE you are using, how your pin mappings are configured, exactly how/where have you set your region (EU) etc.
Do you know the exact/correct hardware pinmappings for this board?
Check the start posts in the following two topics to get some more understanding about what is involved (the topics are for different microcontroller boards but give insight in which aspects play a role):
Except for checking serial output of the board also check the application data in the TTN Console and if you have your own gateway check the gateway log in the TTN Console also.
For a SAMD microcontroller based board like the Feather M0 it should not be necessary to relax timing using setClockError() so better don’t. Enabling a workaround that is not needed will not make things better (and possibly worse).
If you are going to use the MCCI repo, you should follow the MCCI instructions.
The thread you linked to is not a good reference at all - mostly it’s a bunch of people insisting on treating a multiple-times explained unimportant warning as if it were an error, which it is not.
If you go in to the LMIC library, change the LMIC_DEBUG_LEVEL to 1 or even 2 that you will find in config.h - that will give you far more detail about where it stops working.
Thanks a lot for the reply, it was a good idea to simplify the problem to a “Hello, world!” message. In the end it was necessary to relax the clock error.
// Let LMIC compensate for +/- 1% clock error;
LMIC_setClockError(MAX_CLOCK_ERROR * 2 / 100);
Once I figured out which was the main problem, it was not working without it, then with 1% it was unreliable and with 2% it’s always connected so far.
This prooved useful, once I realized it was really stuck ( but doing things), working around the “no join” was easier.
The final problem was indeed stupid, I read some MCCI instruction, restarted the tutorial (while testing everything) and I realized I had a faulty jumper wire