blob: 787ba5957a72abc5b15c29b55cf5911a357a69b0 [file] [log] [blame] [view]
# Commissioning nRF Connect Accessory using Android CHIPTool
You can use [CHIPTool](android_chiptool_building.md) for Android smartphones to
commission a Nordic Semiconductor device running an nRF Connect platform example
onto a Matter-enabled Thread network.
This guide references the nRF52840 DK and the door lock example application
based on the nRF Connect platform, but the instructions are also valid for the
nRF Connect lighting example application and can be adapted to other platforms
and applications as well.
<hr>
- [Overview](#overview)
- [Requirements](#requirements)
- [Setting up Thread Border Router](#setting-up-thread-border-router)
- [Building and programming nRF Connect Example Application](#building-example)
- [Building and installing Android CHIPTool](#building-chiptool)
- [Preparing accessory device](#preparing-accessory)
- [Commissioning accessory device](#commissioning-accessory)
- [Sending Matter commands](#sending-chip-commands)
<hr>
<a name="overview"></a>
## Overview
The commissioning process is composed of the following main stages:
1. CHIPTool discovers a Matter accessory device over Bluetooth LE.
2. CHIPTool establishes a secure channel to the device over Bluetooth LE, and
sends Matter operational credentials and Thread provisioning data.
3. The accessory device joins a Matter-enabled Thread network.
CHIPTool uses both Bluetooth LE and the IPv6 connectivity. Bluetooth LE is used
only during the commissioning phase. Afterwards, only the IPv6 connectivity
between the smartphone and the accessory device is needed to send operational
messages. The IPv6 address of the device is not exchanged during the
commissioning process and CHIPTool must use DNS Service Discovery (DNS-SD) to
learn or refresh the address before the controller initiates the IPv6-based
communication.
Since a typical smartphone does not have a Thread radio built-in, extra effort
is needed to prepare the fully-fledged testing environment that includes a
Thread Border Router configured on a Raspberry Pi.
The following diagram shows the connectivity between network components required
to allow communication between devices running the CHIPTool and Lock
applications:
![Matter nodes connectivity](./images/nrfconnect_android_connectivity.png)
<hr>
<a name="requirements"></a>
## Requirements
You need the following hardware and software for commissioning the nRF Connect
accessory using Android CHIPTool:
- Two nRF52840 DK (PCA10056)
- One nRF52840 DK is needed for running the
[OpenThread Radio Co-Processor](https://openthread.io/platforms/co-processor)
firmware. You can replace this DK with another compatible device, such
as the nRF52840 Dongle.
- One nRF52840 DK is needed for running the example application. You can
replace this DK with another compatible device, such as the nRF5340 DK.
- Smartphone compatible with Android 8.0 or later
- Raspberry Pi Model 3B+ or newer (along with an SD card with at least 8 GB of
memory)
- Wi-Fi Access Point supporting IPv6 (without the IPv6 Router Advertisement
Guard enabled on the router)
<hr>
<a name="setting-up-thread-border-router"></a>
## Setting up Thread Border Router
Follow the [OpenThread Border Router](openthread_border_router_pi.md) article to
set up OpenThread Border Router on the Raspberry Pi, with either the nRF52840 DK
or the nRF52840 Dongle acting as the
[OpenThread Radio Co-Processor](https://openthread.io/platforms/co-processor).
<hr>
<a name="building-example"></a>
## Building and programming nRF Connect Example Application
Build and program the example application onto your compatible device.
For this guide, see the documentation for the door lock example application to
learn how to build and program the example onto an nRF52840 DK.
<hr>
<a name="building-chiptool"></a>
## Building and installing Android CHIPTool
To build the CHIPTool application for your smartphone, read the
[Building Android CHIPTool](android_chiptool_building.md) guide.
After building, install the application by completing the following steps:
1. Install the Android Debug Bridge (adb) package by running the following
command:
$ sudo apt install android-tools-adb
2. Enable **USB debugging** on the smartphone. See the
[Configure on-device developer options](https://developer.android.com/studio/debug/dev-options)
guide on the Android Studio hub for detailed information.
3. If the **Install via USB** option is supported for your Android version,
turn it on.
4. Plug the smartphone into a USB port on your PC.
5. Run the following command to install the application, with _chip-dir_
replaced with the path to the Matter source directory:
$ adb install -r chip-dir/src/android/CHIPTool/app/build/outputs/apk/debug/app-debug.apk
6. Navigate to settings on your smartphone and grant **Camera** and
**Location** permissions to CHIPTool.
CHIPTool is now ready to be used for commissioning.
<hr>
<a name="preparing-accessory"></a>
## Preparing accessory device
To prepare the accessory device for commissioning, complete the following steps:
1. Use a terminal emulator to connect to the UART console of the accessory
device. For details, see the
[Using CLI in nRF Connect examples](nrfconnect_examples_cli.md) guide. This
will grant you access to the application logs.
2. Hold the appropriate button on the accessory device for more than 6 s to
trigger the factory reset of the device. See the user interface section in
the example documentation to check the button number.
3. Find a message similar to the following one in the application logs:
I: 615 [SVR]Copy/paste the below URL in a browser to see the QR Code:
I: 621 [SVR]https://dhrishi.github.io/connectedhomeip/qrcode.html?data=MT%3AW0GU2OTB00KA0648G00
4. Open the URL in a web browser to have the commissioning QR code generated.
5. Press the appropriate button on the device to start the Bluetooth LE
advertising. See the user interface section in the example documentation to
check the button number.
<hr>
<a name="commissioning-accessory"></a>
## Commissioning accessory device
To commission the accessory device onto the Thread network created in the
[Setting up Thread Border Router](#setting-up-thread-border-router) section,
complete the following steps:
1. Enable **Bluetooth** and **Location** services on your smartphone.
2. Connect the smartphone to the same Wi-Fi network as the Raspberry Pi which
runs OpenThread Border Router.
3. Open the CHIPTool application on your smartphone.
4. Tap the **PROVISION CHIP DEVICE WITH THREAD** button and scan the
commissioning QR code. Several notifications will appear, informing you of
commissioning progress with scanning, connection, and pairing. At the end of
this process, the Thread network settings screen appears.
5. In the Thread network settings screen, use the default settings and tap the
**SAVE NETWORK** button to send a Thread provisioning message to the
accessory device.
You will see the "Network provisioning completed" message when the accessory
device successfully joins the Thread network.
<hr>
<a name="sending-commands"></a>
## Sending Matter commands
Once the device is commissioned, the main application screen appears.
Check the IPv6 connectivity with the device using the following steps:
1. Tap **LIGHT ON/OFF & LEVEL CLUSTER**. The following screen appears:
![CHIPTool device control screen](./images/CHIPTool_device_commissioned.jpg)
The two textboxes at the top contain **Fabric ID** and **Node ID** of the
last commissioned device.
2. Tap **UPDATE ADDRESS** to learn or refresh the IPv6 address of the device.
CHIPTool will use a built-in DNS-SD client to resolve **Fabric ID** and
**Node ID** of the device to its IPv6 address. The result of the operation,
be it the address or an error message, will be displayed at the bottom of the
screen.
3. Tap the following buttons to change the lock state of the nRF Connect door
lock example application referenced in this guide:
- **ON** and **OFF** buttons lock and unlock the door, respectively.
- **TOGGLE** changes the lock state to the opposite.
The **LED 2** on the device turns on or off based on the changes of the lock
state.