Using Particle Mesh Devices with the OpenThread Border Router

I have been using ubuntu laptops instead of my RPI3 anyway. Got any old windows laptops lying around?

My Ubuntu desktop running 18.04 works fine with the border router and nrf-connect-for-desktop , but I have been trying older 32 bit laptops which need ubuntu 16.04 LTS.

I have just caused myself a ton of headaches by forgetting to use the software updater once I installed 16.04. (I am my own worst enemy). Have just installed the updates so will try again with border routers.

By the way I am having huge success with po-util for loading OpenThread C code onto the Argon and Xenon, see thread here: (Everyone should try http://po-util.com as an option for both local building and OTA over the air. It is a very easy to use and powerful combination of tools. I have it setup on the cloud then download my firmware.bin file to the computer and use DFU to install the code. Nice thing with DFU is it tells you if it worked or not. OTA is a bit of guesswork if it ever installed.)

I now have access to openThread RSSI and can start doing some fancy antenna testing, however I want to get these OpenThread functions working so I can connect the particle to the OpenThread Border Router or set the Particle Devices to use the regular OpenThread settings..

To retrieve the Particle device Thread Network configuration, you can use:

otDatasetGetActive() to retrieve all the parameters in one structure, or:

otLinkGetChannel()
otLinkGetPanId()
otThreadGetMasterKey()
otThreadGetNetworkName()

to retrieve them individually.

With the configuration information in hand, try the following commands on OTBR:

$ wpanctl leave
$ wpanctl join -T r -p panid -c channel -k masterkey -n networkname

I find the OpenThread API a bit confusing, I work best with example programs but not finding many of those. Any ideas about what the above methods return. Not sure if they return strings, integers or some special object. The first one (otDatasetGetActive() ) obviously returns an object but presently not sure how to get the data from that object.

4 Likes