This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Thread Border Router networking fail

Hello Nordic Taam:

I follow the WEB steps below

https://infocenter.nordicsemi.com/index.jsp?topic=%2Fsdk_tz_v4.1.0%2Fthread_ot_performance_measurement.html

Software Development Kit > nRF5 SDK for Thread and Zigbee v4.1.0 > Thread > Thread tools > Thread Border Router

nRF52840 DK Version:nRF5_SDK_for_Thread_and_Zigbee_v4.1.0_32ce5f8\examples\thread\ncp\ftd\uart\hex

Raspberry Pi 3 Version:RaspPi_OT_Border_Router_Demo_v4.1.0-1.alpha

Use nRF52840 DK UART connect Raspberry Pi 3 to get the following information

wpan0 => [
"NCP:State" => "associating"
"Daemon:Enabled" => true
"NCP:Version" => "OPENTHREAD/20191113-00534-gc6a258e3; NRF52840; Apr 5 2020 21:51:18"
"Daemon:Version" => "0.08.00d (; Apr 21 2020 19:11:43)"
"Config:NCP:DriverName" => "spinel"
"NCP:HardwareAddress" => [F4CE363EC3C45B0E]
]


pi@raspberrypi:~ $ sudo wpanctl status
wpan0 => [
"NCP:State" => "uninitialized"
"Daemon:Enabled" => true
"NCP:Version" => ""
"Daemon:Version" => "0.08.00d (; Apr 21 2020 19:11:43)"
"Config:NCP:DriverName" => "spinel"
"NCP:HardwareAddress" => [F4CE363EC3C45B0E]
]

If I have the wrong steps or have not completed, please give me some pointers, thank you.

Also, can you teach me how to set up the Thread Border Router successfully on Raspberry Pi 3?

Best Regards

Rick.

Parents
  • Hi,

    The instructions on Thread Border Router is the latest and should be correct. It also looks like you are using the correct versions of the firmware and border router image. 

    I have tested this multiple times before, and have not had any issues with getting the network up and running.

    Are you using a revision 1 DK or later? Did you have the DK connected to the RPi before you booted it? Did you run 'erase all' command on the DK before flashing the NCP FW? You did not run any other commands on the border router prior to the "sudo wpanctl status" command?

    If nothing works, I would suggest that you start over and flash the DK and border router image again to the devices to see if that solves any issues.

    Best regards,
    Jørgen

  • Hi Jørgen:

    How are you today!

    Is there any update?

    Pls kindly help advise how to solve it?

    Best Regards,

    Rick.

  • Hi Jørgen

    I want to get the IP address for Openthread device from the border router or mobile phone, how can get it?
    because I have a case, need to use a mobile phone control Openthread device.
    or you have good kindly advised?

    I use version is:
    nRF52840 DK Version:nRF5_SDK_for_Thread_and_Zigbee_v4.1.0_32ce5f8\examples\thread\ncp\ftd\uart\hex

    Raspberry Pi 3 Version:RaspPi_OT_Border_Router_Demo_v4.1.0-1.alpha

    1. Pls kindly advise how to get IP Address of all Thread devices?

    2. Pls kindly advise how to get locate the IP Address of other Mesh Local devices from Border Router or End Device?

    3. Pls kindly advise how can get IP address of other Router and End device from Border Router?

    4.Pls kindly advise how to get the IP Address, assigned by the Border Router, to the Devices?

    5. Pls kindly advise how can see any Thread log from Border Router? (ex. IP assigned, join flow, -MLE----- information et. )

    Best Regards,

    Rick.

  • Hi,

    1.-4. See this page for detail pg IPv6 addressing used by OpenThread. You can get Mesh- and Link-Local address of nodes by doing a multicast ping to the ff02::1/ff03::1 addresses from the Border Router:

    Link-Local:

    pi@raspberrypi:~ $ ping -6 -I wpan0 ff02::1
    PING ff02::1(ff02::1) from fe80::900e:ea92:8be6:51f8%wpan0 wpan0: 56 data bytes
    64 bytes from fe80::900e:ea92:8be6:51f8%wpan0: icmp_seq=1 ttl=64 time=0.193 ms
    64 bytes from fe80::1028:aa0a:fd4c:649%wpan0: icmp_seq=1 ttl=64 time=36.5 ms (DUP!)
    64 bytes from fe80::a813:d16e:3821:861e%wpan0: icmp_seq=1 ttl=64 time=48.4 ms (DUP!)
    ^C
    --- ff02::1 ping statistics ---
    1 packets transmitted, 1 received, +2 duplicates, 0% packet loss, time 0ms
    rtt min/avg/max/mdev = 0.193/28.411/48.481/20.538 ms
    

    Mesh-Local:

    pi@raspberrypi:~ $ ping -6 -I wpan0 ff03::1
    PING ff03::1(ff03::1) from fd11:22::ec33:5809:17a8:aa3a wpan0: 56 data bytes
    64 bytes from fd11:22::ec33:5809:17a8:aa3a: icmp_seq=1 ttl=64 time=0.199 ms
    64 bytes from fd11:22::52db:33fd:683f:65dc: icmp_seq=1 ttl=64 time=37.8 ms (DUP!)
    64 bytes from fd11:22::b3eb:df1f:8f1c:aeaf: icmp_seq=1 ttl=64 time=49.7 ms (DUP!)
    ^C
    --- ff03::1 ping statistics ---
    1 packets transmitted, 1 received, +2 duplicates, 0% packet loss, time 0ms
    rtt min/avg/max/mdev = 0.199/29.271/49.773/21.126 ms
    

    You can also get the RLOC16 address of all routers in the network from the RouterTable property:

    pi@raspberrypi:~ $ sudo wpanctl getprop "Thread:RouterTable"
    Thread:RouterTable = [
            "920EEA928BE651F8, RLOC16:0000, RouterId:0, NextHop:63, PathCost:0, LQIn:0, LQOut:0, Age:0, LinkEst:no"
            "1228AA0AFD4C0649, RLOC16:4400, RouterId:17, NextHop:41, PathCost:1, LQIn:3, LQOut:3, Age:8, LinkEst:yes"
            "AA13D16E3821861E, RLOC16:a400, RouterId:41, NextHop:17, PathCost:1, LQIn:3, LQOut:3, Age:31, LinkEst:yes"
    ]

    The nodes can be addressed using the MeshLocal prefix + 0000:00ff:fe00:RLOC16, for instance fdde:ad00:beef::ff:fe00:4400.

    5. You can view logs in Syslog, see the instructions on this page. The grep string may not work with our SDK example, but removing it should give you all Syslog output.

    Best regards,
    Jørgen

  • Hi Jørgen

    How are you today!

    Thanks for your explanation.

    But I have a case that needs to use the mobile phone or PC control the Thread Device. Pls kindly advise how can get the IP address of Thread Device from a mobile phone or PC?

    Or you have any advice can be using a mobile phone or PC control Thread Device?

    Best Regards,
    Rick.


  • Hi Jørgen:

    How are you today!

    Are you have any advice?

    Pls kindly help advise how to solve it?

    Best Regards,

    Rick.

  • Hi Rick,

    I can't think of any simple way to do that. Does the phone/PC have IPv6 connectivity? Is the border router and the phone/PC in the same local network?

    The nodes would somehow have to communicate with a central server/point, where the phone/PC could get their IP from a database. If the nodes and the phone/PC both have global IPv6 connectivity, it is possible to communicate directly between the nodes once the phone/PC get hold of the IPv6 addresses.

    If you can provide more details about your use-case, we may be able to help you with finding the best approach and/or alternative solutions.

    Best regards,
    Jørgen

Reply
  • Hi Rick,

    I can't think of any simple way to do that. Does the phone/PC have IPv6 connectivity? Is the border router and the phone/PC in the same local network?

    The nodes would somehow have to communicate with a central server/point, where the phone/PC could get their IP from a database. If the nodes and the phone/PC both have global IPv6 connectivity, it is possible to communicate directly between the nodes once the phone/PC get hold of the IPv6 addresses.

    If you can provide more details about your use-case, we may be able to help you with finding the best approach and/or alternative solutions.

    Best regards,
    Jørgen

Children
Related