nRF5 SDK for Thread and Zigbee v3.0.0
nRF Thread Topology Monitor

Table of Contents

nRF Thread Topology Monitor is a desktop application that helps to visualize the current network topology. The application requires a serial connection to an nRF52840 Development Kit with Nordic’s Thread solution.

Supported devices:

Supported operating systems:

Installation

Precondition
Depending on your operating system:
  • On Windows, you must install nRF Command Line Tools, which include the SEGGER J-Link software. See nRF5x Command Line Tools.
  • On Linux, you must install the SEGGER J-Link software. If you do not have it installed already, download and install the software from SEGGER J-Link or from your distrubution package manager.

Follow these steps to install nRF Thread Topology Monitor:

  1. Navigate to nRF5 SDK for Thread web page and download one of the following packages:
    • Windows: nRF_TTM-win32-x64_v0.12.0-1.alpha
    • Linux: nRF_TTM-linux-x64_v0.12.0-1.alpha.tar.gz
  2. Extract the package.
  3. Run the nRF Thread Topology Monitor executable file.

After starting nRF Thread Topology Monitor, the main window of the application appears. It consists of the following elements:

ttm_application_window.png
Main application window

Viewing network topology

nRF Thread Topology Monitor requires a serial port connection to a local nRF52840 Development Kit or Dongle. The nRF SoC on the development kit is controlled by the nRF Thread Topology Monitor that sends OpenThread CLI commands to it over serial port. Therefore, it must be programmed using the OpenThread CLI example.

Note
nRF Thread Topology Monitor filters serial ports to show only those with J-Link or OpenThread USB PIDs. If you use a custom board or firmware that are based on OpenThread CLI, click the Show all button in the dropdown menu when selecting the serial port.

Complete the following steps to set up an nRF52840 Development Kit or an nRF52840 Dongle:

  1. Connect the development kit or dongle to the computer through the J-Link USB.
  2. Use nrfjprog (from nRF5x Command Line Tools) to flash the nRF SoC with the OpenThread CLI example. Depending on the board you are using:
    • nRF52840 Development Kit (PCA10056):
      nrfjprog -f NRF52 --program <InstallFolder>/examples/thread/cli/uart/hex/thread_cli_pca10056.hex --chiperase --reset
    • nRF52840 Dongle (PCA10059): use the hex file located at <InstallFolder>/examples/thread/cli/usb/hex/thread_cli_pca10059.hex. See nRF52840 Dongle for detailed information about how to program PCA10059.
  3. In the navigation bar, click Select serial port.
  4. Select the serial port with the device that you want to use. The menu will show the name of the selected port.
  5. Click Start scan to attach the nRF SoC to the Thread network and to start polling nodes to get information on the current topology. nRF Thread Topology Monitor starts to communicate with a node using OpenThread serial CLI. After a couple of seconds, topology of the Thread network appears in the central area of the application.

If the nRF SoC is the first Thread device in the network, it becomes a Leader, as shown in the figure below.

ttm_leader.png
First Thread Leader being connected

After other Thread devices have been attached to the network, nRF Thread Topology Monitor visualizes them as shown in the figure below.

You can:

ttm_nodes.png
Visualization of other Thread nodes in the network

Configuration

The panel to the right of the main application window contains the Configuration section. Because nRF SoC acts as an OpenThread CLI device, you must configure the basic Operational Dataset. During this configuration, you can specify the following parameters of the Thread Network:

ttm_config_wizard.png
Configuration wizard

Apart from Thread network configuration, you can also specify two parameters related to polling:

Interacting with nodes

nRF Thread Topology Monitor allows to select a specific node in a Thread network and perform operations on it:

ttm_device_parameters.png
Device parameters

Principle of operation

The background process of nRF Thread Topology Monitor communicates with nRF SoC using OpenThread CLI, sending commands described in OpenThread CLI Reference.

The application first attaches the nRF SoC to the network and then periodically retrieves the current list of routers. Each router is polled by sending the standard Thread diagnostic messages (MGMT_DIAG.req). In response, routers in the network send their current link set (current connected neighbors), child table, and basic network parameters, such as Network Address or Extended MAC Address.

Troubleshooting

This section contains some known issues that you can encounter when using Thread Topology Monitor.

Device does not change parameters

Issue:
An nRF Thread device does not change its Radio Channel/PAN ID/Master Key.
Solution:
Thread parameters listed above are a part of Operational Dataset that can be changed only after factory reset. Make sure to check the Perform factory reset checkbox to change these network parameters.

Node changes its name to the default one

Issue:
A node in the Thread network changed its name to the default one, even after I set a custom label.
Solution:
Thread protocol randomly chooses a new Extended Address on the Perform factory reset procedure. Therefore, the application cannot match its Extended Address with the previously assigned label.

Topology is not visible

Issue:
After being a Thread Leader, I restarted the application with the Perform factory reset checkbox checked. Now I cannot see the topology.
Solution:
nRF Thread device connected to the Thread Topology Monitor has to become a Thread Router to obtain all routing information. In Thread protocol, only the Leader of the network can allow a Child to become a Thread Router. If the Leader has been restarted and some other Thread Routers exist in the network, they need to time out the previous Leader and elect a new one. This procedure may take up to two minutes.

Cannot open /dev/ttyACM0

Issue:
nRF Thread Topology Monitor shows the Cannot open /dev/ttyACM0: Permission denied log under Linux OS.
Solution:
The user does not have sufficient permissions to access the /dev/ttyACM0 serial port. You must add the current user to a proper group and log out to refresh the user credentials. The group name is distibution-dependent and in order to read it, run the following command:

ls -l /dev/ttyACM0

For example, on the Ubuntu distribution, the group name is dialout.

sudo adduser USERNAME dialout


EACCES: permission denied

Issue:
nRF Thread Topology Monitor shows the EACCES: permission denied, open '/home/USERNAME/.config/nRF_TTM/storage/commdataset.json' log under Linux OS.
Solution:
The user does not have sufficient permissions to access storage files that keep information like the last configuration and node names. nRF_TTM might have been run with sudo permissions for the first time and now the application is run without them.

sudo chown -hR USERNAME /home/USERNAME/.config/nRF_TTM/


Error while loading shared libraries libgconf

Issue:
On Linux platform, the libgconf library is required to run nRF Thread Topology Monitor.
Solution:
Install the missing dependency using your package manager. For example, under Ubuntu, type:

sudo apt-get install libgconf-2-4



Documentation feedback | Developer Zone | Subscribe | Updated