Welcome to the Pycom forum Forum
    • \[\[global:header.categories\]\]
    • \[\[global:header.recent\]\]
    • \[\[global:header.tags\]\]
    • \[\[global:header.popular\]\]
    • Login

    Explore Pybytes | Official Documentation | Report a Firmware Bug/Issue | GitHub

    Problem pairing OTAA Node to nano gateway in US TTN

    Scheduled Pinned Locked Moved LoPy
    lopyttnttn gateway
    9 Posts 2 Posters 3.1k Views 3 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • I Offline
      iotmaker
      last edited by

      The nano gateway says it is connected...

      I have configured like this :

      config.py

      LORA_FREQUENCY = 915100000
      LORA_DR = "SF7BW125"   # DR_5
      

      nanogateway.py

      RX_PK = {"rxpk": [{"time": "", "tmst": 0,
                         "chan": 0, "rfch": 0,
                         "freq": 915.1, "stat": 1,
                         "modu": "LORA", "datr": "SF7BW125",
                         "codr": "4/5", "rssi": 0,
                         "lsnr": 0, "size": 0,
                         "data": ""}]}
      

      Otaa Node

      lora = LoRa(mode=LoRa.LORAWAN)
      
      
      
      for channel in range(0, 72):
          lora.remove_channel(channel)
      
      lora.add_channel(0, frequency=915100000, dr_min=0, dr_max=4)
      

      I have not been able to make it join... any suggestions or things that i might be missing?

      J 1 Reply Last reply Reply Quote 0
      • J Offline
        jmarcelino @iotmaker
        last edited by jmarcelino

        @iotmaker

        Not sure if this is the problem, but according to the TTN band plan for US915, 915.1Mhz isn't a valid frequency, try 903.9

        I take it you've also changed config.py to SERVER = 'router.us.thethings.network' ?

        I 1 Reply Last reply Reply Quote 0
        • I Offline
          iotmaker
          last edited by

          thanks.. i will try to update the frequencies and try again...

          1 Reply Last reply Reply Quote 0
          • I Offline
            iotmaker @jmarcelino
            last edited by

            @jmarcelino said in Problem pairing OTAA Node to nano gateway in US TTN:

            903.9

            no luck.. my nano gateway is connected according to TTN but cant see the node..

            J 1 Reply Last reply Reply Quote 0
            • J Offline
              jmarcelino @iotmaker
              last edited by jmarcelino

              @iotmaker
              What do you have in your OTAA node code for this?

              # set the LoRaWAN data rate
              s.setsockopt(socket.SOL_LORA, socket.SO_DR, 5)
              

              SO_DR should be 3 instead of 5 for the US915 region.

              Also see the previous thread: https://forum.pycom.io/topic/983/otaa_node-py-error

              1 Reply Last reply Reply Quote 0
              • I Offline
                iotmaker
                last edited by iotmaker

                @jmarcelino this is my node code
                did the change but still no luck...

                from network import LoRa
                import socket
                import binascii
                import struct
                import time
                
                # Initialize LoRa in LORAWAN mode.
                lora = LoRa(mode=LoRa.LORAWAN)
                
                # create an OTA authentication params
                dev_eui = binascii.unhexlify('xxx'.replace(' ',''))
                app_eui = binascii.unhexlify('xxx'.replace(' ',''))
                app_key = binascii.unhexlify('xxx'.replace(' ',''))
                
                
                for index in range(0, 8):
                    lora.remove_channel(index)
                
                for index in range(16, 65):
                    lora.remove_channel(index)
                
                for index in range(66, 72):
                    lora.remove_channel(index)
                
                # set the 3 default channels to the same frequency (must be before sending the OTAA join request)
                lora.add_channel(0, frequency=903900000, dr_min=0, dr_max=3)
                lora.add_channel(1, frequency=903900000, dr_min=0, dr_max=3)
                lora.add_channel(2, frequency=903900000, dr_min=0, dr_max=3)
                
                # join a network using OTAA
                lora.join(activation=LoRa.OTAA, auth=(dev_eui, app_eui, app_key), timeout=0)
                
                # wait until the module has joined the network
                while not lora.has_joined():
                    time.sleep(2.5)
                    print('Not joined yet...')
                
                
                
                print("passed joined")
                # remove all the non-default channels
                for i in range(3, 16):
                    lora.remove_channel(i)
                
                # create a LoRa socket
                s = socket.socket(socket.AF_LORA, socket.SOCK_RAW)
                
                # set the LoRaWAN data rate
                s.setsockopt(socket.SOL_LORA, socket.SO_DR, 3)
                
                # make the socket blocking
                s.setblocking(False)
                
                time.sleep(5.0)
                
                for i in range (200):
                    s.send(b'PKT #' + bytes([i]))
                    time.sleep(4)
                    rx = s.recv(256)
                    if rx:
                        print(rx)
                    time.sleep(6)
                
                

                Mi config.py looks like this

                """ LoPy LoRaWAN Nano Gateway configuration options """
                
                GATEWAY_ID = '70B3D5499BFD0F7A'#
                
                SERVER = 'router.us.thethings.network'
                PORT = 1700
                
                NTP = "pool.ntp.org"
                NTP_PERIOD_S = 3600
                
                WIFI_SSID = 'xxx'
                WIFI_PASS = 'xxxx'
                
                LORA_FREQUENCY = 903900000
                LORA_DR = "SF9BW125"   # DR_3
                
                
                J 1 Reply Last reply Reply Quote 0
                • J Offline
                  jmarcelino @iotmaker
                  last edited by jmarcelino

                  @iotmaker

                  OK I see some issues. Your node code is a bit strange, you don't need to assign the same frequency to three channels, that's only for the EU868 region where the 3 channels are enforced by the spec. Use something like this instead:

                  for channel in range(0, 72):
                      lora.remove_channel(channel)
                  
                  lora.add_channel(0, frequency=903900000, dr_min=0, dr_max=4)
                  

                  and nothing else, no more add_channels or remove_channels after this.

                  s.setsockopt(socket.SOL_LORA, socket.SO_DR, 3) is OK

                  On the Gateway config change:

                  LORA_DR = "SF9BW125" to
                  LORA_DR = "SF7BW125"

                  Data rate (DR) 3 in the US915 region means SF 7 125Khz (these data rate numbers assignments have different meanings from EU868 region, see the LoRaWAN Regional Parameters specification)

                  This meant the gateway was listening for SF9 (SF set by that string) while your node was sending as SF7 (set by SO_DR = 3) and explains why you get nothing.

                  If all this still fails try setting up the node as ABP instead of OTAA, sometimes the receive window timings for OTAA are hard to achieve.

                  1 Reply Last reply Reply Quote 0
                  • I Offline
                    iotmaker
                    last edited by

                    @jmarcelino

                    Changed to ABP and now the gateway is receiving traffic...

                    thanks... will post my code once i do cleanup :)

                    thanks for your help @jmarcelino

                    1 Reply Last reply Reply Quote 0
                    • I Offline
                      iotmaker
                      last edited by

                      you can find the code that is working right now for TTN US here on my GitHub

                      I also made a guide on my blog

                      1 Reply Last reply Reply Quote 0

                      Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                      Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                      With your input, this post could be even better đź’—

                      Register Login
                      • 1 / 1
                      • First post
                        Last post

                      Pycom on Twitter

                      Pycom