Hello to all,
First, I would like to congratulate everyone on their job. And thank you to all the more advanced people who work on the project and support this community. Really an amazing job!
I currently live in Singapore and I’m working on my master thesis which I’ll do about IoT-LoRa implementation. I have started with this single channel gateway version as a first prototype, since the hardware for the full gateway is a little bit expensive for me. My setup is the following:
Raspberry Pi with inAir9b and the code available at the beginning of this thread
Arduino MEGA2560 with inAir9b and the Arduino-LMIC library code from matthijs.
TTN server. (ABP)
They seem to communicate properly as I can see in the ttn console that the gateway receives frames sent by the node as well as in the stat update. However, the server drops those packets and don’t get to the application (and you see that the node is “never seen” and it took me a while to realize that it was because the device address received at the gateway side (and then forwarded to the server) is not the same as the one sent by the node. I printed both device addresses, one before exiting the node on the radio side and the other on the gateway side, and I found that they are different. I followed this How can I tell which nodes are connected to my gateway to check for the device addresses. I don’t know why this is. Also, I cannot see if the payload is correct because it is encrypted. This was with the 868MHz frequency band. If I change to 915MHz it doesn’t even work. Should I change the gateway code to the center frequency or the one for the first channel?
I then changed the gateway to one based on Lua and ESP8266 which has been developed by Jaap Braam, and everything is working now. So I’m guessing that there is something wrong with Rpi gateway. I don’t know if it can be the wiring (although I had a problem like that before and the error was a version assertion) or something on the radio part of the code. However, I guess it is working for everybody else so…
And to make use of the post (sorry it’s too long) here are a couple of questions:
If a node sends a confirmed data up and doesn’t get an ack, does it resend the same packet or that case has to be handled on a higher level?
Can it be send some command with the ack, as part of the body of the ack? As long it’s short enough to send in the Rx windows. In order to not need a class B end-device.
Last, in the Arduino-LMIC code/part, it seems I can only send unconfirmed data up. How can I make it confirmed so that I get an ack back?
Finally, if there’s anybody in Singapore that would like to meet, it would be great!
Sorry in advance for my misunderstanding concepts or inaccurate language or naming. If there is anything I can do to clarify please tell me.
Thank you all!