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
Initialize a new operational dataset:
sudo ot-ctl dataset init newDone
Set the network credentials:
sudo ot-ctl dataset panid 0xdeadDone
sudo ot-ctl dataset extpanid dead1111dead2222Done
sudo ot-ctl dataset networkname OpenThreadGuideDone
sudo ot-ctl dataset networkkey 11112233445566778899DEAD1111DEADDone
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:
./pskc j01Nme DEAD1111DEAD2222 OpenThreadGuide198886f519a8fd7c981fee95d72f4ba7
Set the PSKc:
sudo ot-ctl dataset pskc 198886f519a8fd7c981fee95d72f4ba7Done
Commit the active dataset, set the on-mesh prefix, and form the Thread network:
sudo ot-ctl dataset commit activeDone
sudo ot-ctl prefix add fd11:22::/64 pasorDone
sudo ot-ctl ifconfig upDone
sudo ot-ctl thread startDone
sudo ot-ctl netdata registerDone
Confirm the network configuration:
sudo ot-ctl stateleader Done
sudo ot-ctl pskc198886f519a8fd7c981fee95d72f4ba7 Done
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.
-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.
When commissioning a Joiner, it's important to understand the following terms and concepts:
Joining Device Credential: You'll need to provide a Passphrase to commission a device, for example
J01NU5. This Passphrase is separate from the Commissioner Credential you created when forming your Thread network, and has different requirements:
- Must be a string of all uppercase alphanumeric characters (0-9 and A-Y, excluding I, O, Q, and Z for readability), with a length between 6 and 32 characters.
The Joining Device Credential might also be referred to as Join Passphrase, Joiner Password, or PSKd. This Passphrase is used to authenticate a device during Thread Commissioning. You can also use it with a device's EUI64 value to generate a unique QR Code.
PSKd: Pre-Shared Key for the Joiner. The PSKd is the Joining Device Credential when it's specifically encoded in binary form.
EUI-64: 64-bit Extended Unique Identifier, for example
0000b57fffe15d68. This is a Joiner device's factory-assigned IEEE EUI-64, used to generate a QR code and uniquely identify a device.
Once the Joiner device is ready, obtain its factory-assigned IEEE EUI-64. Use
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.