Prepare the Thread Network and Joiner Device

View source on GitHub

In this guide, learn how to use OTBR Web GUI to form the Thread Network. Then, choose a supported platform and build a Joiner device.

To set up a Border Router, refer to OpenThread Border Router Build and Configuration.

Form the Thread network


The recommended way to form a Thread network is via the OTBR Web GUI. When doing so, change all the default values on the Form menu option, except for the On-Mesh Prefix.

Make note of the Passphrase used. This passphrase is the Commissioner Credential and is used (along with the Extended PAN ID and Network Name) to generate the Pre-Shared Key for the Commissioner (PSKc). The PSKc is needed to authenticate the Thread Commissioner (the external device) to the network.


The Thread network can also be formed manually on the command line of OpenThread POSIX, using ot-ctl.

  1. Initialize a new operational dataset:

    sudo ot-ctl dataset init new

  2. Set the network credentials:

    sudo ot-ctl dataset panid 0xdead

    sudo ot-ctl dataset extpanid dead1111dead2222
    sudo ot-ctl dataset networkname OpenThreadGuide
    sudo ot-ctl dataset networkkey 11112233445566778899DEAD1111DEAD
  3. Generate a hex-encoded PSKc by using a Passphrase (Commissioner Credential), the Extended PAN ID, and the Network Name with the PSKc Generator tool on the OTBR. Make sure to use the same Extended PAN ID and Network Name that was used in the operational dataset:

    cd ~/ot-br-posix/build/otbr/tools
    ./pskc J01NME DEAD1111DEAD2222 OpenThreadGuide

  4. Set the PSKc:

    sudo ot-ctl dataset pskc 198886f519a8fd7c981fee95d72f4ba7

  5. Commit the active dataset, set the on-mesh prefix, and form the Thread network:

    sudo ot-ctl dataset commit active

    sudo ot-ctl prefix add fd11:22::/64 pasor
    sudo ot-ctl ifconfig up
    sudo ot-ctl thread start
    sudo ot-ctl netdata register
  6. Confirm the network configuration:

    sudo ot-ctl state

    sudo ot-ctl pskc

Prepare the Joiner device

Build and flash a device with OpenThread, to function as the Joiner. For an overview of building OpenThread, see the Building Guide.

Use the -DOT_JOINER=ON build option to enable the Joiner role.

Specific instructions on building supported platforms with GNU Autotools can be found in each example's platform folder.

Once the Joiner device is ready, obtain its factory-assigned IEEE EUI-64. Use the eui64 command in the OpenThread CLI:


Select Commissioner type

OpenThread Commissioner provides several ways to externally commission a device:

The OT Commissioner CLI runs on the same host machine as OTBR. In the next guide, learn how to use the OT Commissioner CLI to connect to a border router and commission a new device, or skip to External Commissioning for Android.

For Thread 1.1 networks, additional options include the Thread 1.1 Commissioning App for Android.