OTTA only joins successfully if close enough to the Gateway

  • I have been struggling with the OTTA join for a while. Initially, I thought it would be an issue with the Nano Gateway code, but when I have moved to proper gateways, I still have the issue.

    When trying to join using OTTA, if the node is not very close to the gateway (10-20m away), it keeps trying to join forever. The Gateway receives de join request and returns the Join Accept message:


    The Join Request is received even by multiple Gateways with low RSSI (<-100dB):


    However, the node never joins the LoRaWAN network. Only when I come closer to the Gateway or I switch on a new one closer to the node, the Join request can be completed. After that, everything works like a charm.

    I have found some references of unsuccessful join requests but mainly related to the NanoGateway code.

    Has anyone experienced something like this?

  • Banned

    This post is deleted!

  • @jcaron thank you for reply. I will look into this with more details.

    It seems like the problem is quite common and could be more complex than I expected:

  • @berni The timestamps shown in your screenshots lacksresolution, but there seems to be 4 seconds between request and accept, while the standard for EU868 is 5 seconds in RX1 (same channel and DR as the request, as seems to be the case here) for joins.

    I'm not quite sure how the distance could make much of a change (it's not like it's far enough that propagation time will add a full second), but depending on the exact timings it may explain it.

    Do you have any way of seeing higher resolution timestamps? Do you have control over the exact value of JOIN_ACCEPT_DELAY1?

    Are you using multiple gateways but always the same server (and/or settings)?

  • @robert-hh in the screenshot of my original message, the join requests are sent every 10s, with the acceptance message sent after 3-4s. There are still 4-5s until the next request. I agree that it should be enough time.

    My application doesn't use downlink messages, so I can't really tell if they are received.

  • @berni As far as I recall, join requests are repeated after 15 seconds. That is long after the RX2 window for join accepts.
    Do you see the same problem with other downlink messages too?

  • Thank you @robert-hh, this problem is quite recurrent and I have experienced this across multiple devices and circumstances (different gateways, firmware versions, etc...). My strategy so far has been to do the OTTA join next to the gateway and save everything on the NVRAM. Once joined the LoRaWAN network, the data is received across multiple gateways, even several km away. Therefore, I am pretty sure it is not an antenna problem.

    There has to be something else... Is it possible that the LoPy doesn't wait long enough before sending another join request on a different channel? It doesn't explain why it happens only with low RSSI, but I am just wondering.

  • @berni That looks more like an antenna problem. Check the antenna & pigtail cable. If you are using a LoPy4, verify that you are using the right antenna plug on the board, and that the connector fits properly. For 868MHz it is the one opposite to the reset switch.

Log in to reply

Pycom on Twitter