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.

  • Hi,

    Using example applications from older SDKs should work in general. For the cloud examples, external things outside our control can change over time, making the documentation outdated.

    Regarding the border router, there can be small changes in semantics between releases, breaking compatibility if you mix the versions. I would highly recommend using the NCP firmware from the corresponding SDK to the Border Router image used (i.e. nRF5 SDK for Thread and Zigbee v4.1.0 together with RaspPi_OT_Border_Router_Demo_v4.1.0-1.alpha, etc).

    Best regards,
    Jørgen

  • Hi Jørgen
    I use new boards and SDK 4.1 it is work.

    I can send temp data to thething.io server from coap.

    1. but how I can get thething.io control my device from coap?

    2. how can use CLI send to CoAP Command get/post to thething.io from nRF52840 EVK?
    I use command is fail.
    coap post coap.thethings.io/v2/things/GITM86uZNPu9Ukmja16PM-X-enajMxP01PODgS3tYVI/ temp {"values":[{"key":"temp","value":"9"}]}

    coap get coap.thethings.io/v2/things/GITM86uZNPu9Ukmja16PM-X-enajMxP01PODgS3tYVI/ temp

    Best Regards,
    Rick.

  • Hi Rick,

    1. Controlling the Thread node from the IPv4 based CoAP Cloud service is not trivial. There is no direct connection between the cloud and the node, so the cloud does not have any address to send the commands to. Communication from the node to cloud goes through NAT64, which translates the IPv6 packets to IPv4, and handles forwarding of the responses to the correct node. Something similar is possible using NAT46, but this is not supported by default in the border router image. If you get native IPv6 connection, this will provide a global IPv6 address for each node, that allows the cloud service to communicate directly with a node to control it.

    2. You can have a look at the CoAP CLI API reference here. I do not think this API is intended for sending CoAP messages to the cloud services, it is mainly for testing CoAP messages between Thread nodes in the same network. The API most certainly does not support converting the full URL with token to a correct CoAP message.

    Best regards,
    Jørgen

  • Hi Jørgen:

    1. I try to do the DNS resolve command from the CLI, to check if you are able to get the IP from thethings.IO cloud solution, but it fails too.
    it is somehow blocked?
    Pls kindly help advise how to solve it?

    2. I need your help for me, assistance to double-check, My IP address support IPv4 or IPv6??

    3. I need your help for me, assistance to double-check, My Border Router can support IPv6 assign global IPv6 to the device?

    4. If I want to use CoAP sned get resource data of thething.io server from example thethings_io_coap, how I can modify it?
    I want to timer get resource data.

       

    Best Regards,

    Rick.

  • Hi Rick,

    1. Yes, it looks like there is something blocking you from reaching the address. Can you try to ping it (coap.thethings.io) from a computer in the same network?

    2. Since you are able to ping the 64:ff9b::0808:0808 address, you have IPv4 connectivity. You do not have global IPv6 connectivity, since you do not get a 200x:: address on the end nodes. This is either caused by the ISP not providing IPv6 address with large enough scope to allow subnetting to the required Thread /64 prefix, or the network equipment/router is preventing you from getting the correct prefix on the border router (you can see that the wlan0 from your ifconfig shows that you have a global address with /64 prefix, this needs to be /62 or lower to allow IPv6 connectivity to the Thread nodes).

    3. This is not something we can help you with. You need to check in your router/modem if you are assigned a large enough scope from your ISP, or you need to check with the manufacturer of the network equipment how you can configure it to assign larger prefix address to the border router.

    Best regards,
    Jørgen

Related