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.

Top Replies

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 Rick,

    As mentioned in the release notes, PCA10056 is only supported from v1.0.0 (production silicone). I would recommend you to get new boards.

    Rick said:
    how can set 'erase all' command, I use win 10.

    You can use 'nrfjprog --eraseall' command. If you are using --chiperase option when flashing application, there is no need to do eraseall first.

    Rick said:
    RPi border router, I only input the access id and password. Does any other command need input?

    No, this should be handled by the boot scripts if the DK is connected when you power the RPi.

    Rick said:
    wpantund.conf the NCP configuration and the RCP configuration both need all open? or only one open?

    You should only enable one config. Since you are using NCP, the RCP config shall be commented out of the config file.

    Best regards,
    Jørgen

  • Hi Jørgen

    Thanks for your reply.

    But I find the problem, I use Old SDK (nRF5_SDK_for_Thread_and_Zigbee_v3.2.0), it can successfully work.

    But I use New SDK(nRF5_SDK_for_Thread_and_Zigbee_v4.1.0 or nRF5_SDK_for_Thread_and_Zigbee_v4.0.0) , it fail. and the New SDK Thread CLI example the same too.

    Now. I have new question.
    1. Border Router join FTD is Leader in nRF52840, but my FTD did not have 2000 prefix, how can I create 2000 prefix?

    this Border Router information.

    this FTD information.

    2. FTD is timeout, when I use (dns resolve ipv6.google.com) and (dns resolve ipv4.google.com) , how can I do it?

    3. I need to test two cases, use different Wi-Fi AP mutual Ping and mutual send UDP, how can I do it?
    case 1:
    Border Router_1 connects Wi-Fi A, and Thread Networks is creat, and have FTD_1.

    Border Router_2 connects Wi-Fi B, and Thread Networks is creat, and have FTD_2.

    How can ping and send UDP for FTD1 and FTD2?

    case 2:
    Border Router_1 connects Wi-Fi A, and Thread Networks is creat, and have FTD_1.

    the computer connects Wi-Fi B

    How can ping and send UDP for FTD1 and computer?

    Best Regards,

    Rick.

  • Rick said:
    But I find the problem, I use Old SDK (nRF5_SDK_for_Thread_and_Zigbee_v3.2.0), it can successfully work.

    I can't see any list of supported devices in SDK 3.2.0 that limits it to support only 1.0.0 or above boards. Errata workarounds etc. may have been removed in newer SDK versions as we want customers to use production silicone to limit testing and prevent erratas from engineering silicone to cause issues in examples. 

    Rick said:
    1. Border Router join FTD is Leader in nRF52840, but my FTD did not have 2000 prefix, how can I create 2000 prefix?

    The ifconfig shows that wlan0 only has a global IPv6 address with prefix of 64. To provide global address to end node (which will have /64 prefix according to Thread protocol specifications), a /62 prefix address or lower is required in the border router. This can be limited by your ISP, or more likely the network equipment. Many routers will only provide a /64 prefix address, even if the ISP allows you a larger address space. Some OpenWRT firmware can support the correct prefix.

    Rick said:
    2. FTD is timeout, when I use (dns resolve ipv6.google.com) and (dns resolve ipv4.google.com) , how can I do it?

    You will not be able to resolve IPv6 address if you do not have global IPv6 connectivity to the Thread end node. Did you test the command from the documentation?

    dns resolve ipv4.google.com fdaa:bb:1::2

    Rick said:
    How can ping and send UDP for FTD1 and FTD2?

    This will require a global IPv6 address on both nodes.

    Rick said:
    How can ping and send UDP for FTD1 and computer?

    Same as above. It may be possible to ping over IPv4 if both WiFi networks are connected somehow so there is a route between them. See this post.

  • Hi Jørgen

    Thanks for your quick response.

    About this answer, I still don't know how to make it execute normally, please could you explain in detail?

    1. Border Router join FTD is Leader in nRF52840, but my FTD did not have 2000 prefix, how can I create 2000 prefix?
    The ifconfig shows that wlan0 only has a global IPv6 address with prefix of 64. To provide global address to end node (which will have /64 prefix according to Thread protocol specifications), a /62 prefix address or lower is required in the border router. This can be limited by your ISP, or more likely the network equipment. Many routers will only provide a /64 prefix address, even if the ISP allows you a larger address space. Some OpenWRT firmware can support the correct prefix.

    Best Regards,

    Rick.

Reply
  • Hi Jørgen

    Thanks for your quick response.

    About this answer, I still don't know how to make it execute normally, please could you explain in detail?

    1. Border Router join FTD is Leader in nRF52840, but my FTD did not have 2000 prefix, how can I create 2000 prefix?
    The ifconfig shows that wlan0 only has a global IPv6 address with prefix of 64. To provide global address to end node (which will have /64 prefix according to Thread protocol specifications), a /62 prefix address or lower is required in the border router. This can be limited by your ISP, or more likely the network equipment. Many routers will only provide a /64 prefix address, even if the ISP allows you a larger address space. Some OpenWRT firmware can support the correct prefix.

    Best Regards,

    Rick.

Children
  • Most likely you need another WiFi router to connect the RPi border router to, which supports larger than /64 prefix address space. I do not have any lists of devices that support this, but we have used OpenWRT firmware on a few different routers to support this.

    You also need to check in the router configuration that you receive a large enough address space from your ISP. Some ISPs will only provide /64 prefix addresses to end-users, but some provide larger like /48 prefixes. Since you get a /64 address on the RPi, I assume this is OK.

  • Hi Jørgen


    How are you today!

    Thanks for your explanation.

    If I share Wifi AP from my cell phone to connect the RPi border router to, not use Wi-Fi Router, Can I successful in the above three questions?

    because I Wired network not support IPv6, but My cellphone ISP can support IPv6, so my case method always from cellphone Wi-Fi AP.

    Best Regards,
    Rick.

  • My answers are valid for any WiFi equipment, regardless if you are using a normal WiFi router or a mobile phone. Most likely you will not get the correct IPv6 prefix from the phone. If you only get a /64 prefix address from the phone, the IPv6 network is not usable together with the Thread network anyways as the end nodes will not receive global IPv6 addresses.


  • Hi Jørgen:

    If I need to use openWRT in Raspberry pi 3, how can I set it? or it has support??

    because I OTBR has support IPv6 form my phone, but not have Open WRT can distribution IP to my FTD accessory.

    and I need to set the wpanctl gateway for RPi border router?

    Best Regards,

    Rick.

  • Hi Rick,

    If you only have IPv6 connectivity through your phone, it will not help to introduce an OpenWRT router in the network. You need to get IPv6 connection natively from the internet service provider in a router that can assign IPv6 addresses further with larger address space than /63 prefix. The phone is not able to do that, and adding a router between the phone and the border router will not help with that.

    If you cannot get this kind of IPv6 setup, you can still use the border router with IPv4 network devices, for instance, the Google Cloud example uses IPv4 and NAT64 to send data from the nodes to the cloud.

    Best regards,
    Jørgen

Related