スマートホームの新標準「Matter over Thread」を試してみた。

# はじめに

前回はM5Stack(ESP32)を使用してスマートホームの新標準「Matter」を試してみました。

https://qiita.com/kitazaki/items/43b26903a9ddcb7f3a96

https://qiita.com/kitazaki/items/548abb35431f215df919

「Matter」はアプリケーションレイヤーのプロトコルで、M5Stack(ESP32)は下位レイヤーにWi-Fiを使用しています。

![matter.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/27a4a2bd-7ba6-08bf-d02f-1f1eb4e69403.jpeg)

今回はnRF52840DK(Development Kit)とnRF52840Dongleを使用して、近距離無線通信規格IEEE802.15.4とThreadを試してみました。

# Threadとは

IPv6ベースの低消費電力メッシュネットワーク技術で、ボーダールーターを経由してインターネットに接続することも可能です。

![thread.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/adaee525-7334-ae87-bf10-01fe10b4373c.jpeg)

# 構成

ボーダールーターにApple TV 4K(第三世代)(Wi-Fi + Ethernetモデル)を使用し、tvOS、iOSのホームアプリでMatterの動作確認をしました。

![スクリーンショット 2023-03-13 9.31.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/8faf8ddc-8113-2382-4096-53bc717ce72d.png)

また、ボーダールーターにラズパイを使用してThreadの動作確認をしました。

![スクリーンショット 2023-03-13 13.52.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/39caf8f4-c535-e4b4-7526-1ce29b6984dd.png)

# ツールの準備

### Zephyrビルド環境、デバイスへのインストール、nRF Connect for Desktop

- M1 MacBook Air (2020)
- macOS Monterey (バージョン 12.6.1)

### IEEE802.15.4 Sniffer、Bluetooth LE Sniffer、nRF Connect for Desktop

- Intel MacBook Pro (2017)
- macOS Big Sur (バージョン 11.7.4)

### Border Router

- Raspberry Pi 4B (4GB)
- Raspberry Pi OS with desktop (32bit 2023/2/21版)
- nRF52840Dongle

### Thread Topology Monitor

- Windows10
- nRF52840Dongle

### デバイス(Threadデバイス、Matterデバイス)

Matterデバイス(Light bulbサンプル、Light switchサンプル)

- nRF52840DK(Development Kit)

Threadデバイス(ot-cli-ftd, ot-rcp, IEEE802.15.4 Sniffer, Thread Topology Monitor)

- nRF82840Dongle(E104-BT5040U、MDBT50Q-RX、Seeed XIAO BLE/BLE Sense)

### デバイスへの書き込みツール

nRF Connect for Desktopをダウンロードしてインストールします。

https://www.nordicsemi.com/Products/Development-tools/nRF-Connect-for-Desktop/Download

nRF Connect for Desktopを起動します。

![スクリーンショット 2023-03-13 20.02.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/a50c353b-0b14-addb-15fc-eeaeb9669403.png)

Programmerをインストールします。
インストール後、「Open」を押します。

![スクリーンショット 2023-03-13 20.02.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/b6f6f315-2d03-9583-dc9c-de40f14bcb22.png)

「SELECT DEVICE」を押して、書き込み対象のnRF52840デバイスを選択します。
nRF52840の場合はJ-LINKで接続されますが、nRF52840 Dongleデバイスの場合はリセットボタンを押して書き込みモード(DFUモード)に変更します。
hexファイルをドラック＆ドロップして「Write」ボタンを押してデバイスへ書き込みを行います。

![スクリーンショット 2023-03-13 20.04.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/595c49ce-d5a0-7081-10eb-6d2dc0fa61a3.png)

Seeed XIAO BLE/BLE SenseはAdafruit nRF52 Bootloaderが書き込まれていますので、UF2ファイル書き込みに対応しています。
ブートローダーモードにしてPCヘ接続するとドライブに見えます。
ドライブへuf2ファイルをコピーすると書き込みが行われます。

![xiao.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/32300165-ab77-f0a7-1973-376b0a6dbe5f.jpeg)

hexファイルをuf2ファイルへ変換するツールをインストールします。

```bash
$ git clone https://github.com/microsoft/uf2/
$ cd uf2/utils
```

ダウンロードしたhexファイルを同じディレクトリに置きます。

(nRF Sniffer for Bluetooth LEツールの場合)

https://www.nordicsemi.com/Products/Development-tools/nrf-sniffer-for-bluetooth-le/download

```bash
$ python uf2conv.py -c -f 0xada52840 -o sniffer_nrf52840dongle_nrf52840_4.1.1.uf2 sniffer_nrf52840dongle_nrf52840_4.1.1.hex
```

(nRF Sniffer for 802.15.4ツールの場合)

https://github.com/NordicSemiconductor/nRF-Sniffer-for-802.15.4

```bash
$ git clone https://github.com/NordicSemiconductor/nRF-Sniffer-for-802.15.4
```

```bash
$ python uf2conv.py -c -f 0xada52840 -o nrf802154_sniffer_dongle.uf2 nrf802154_sniffer_dongle.hex
```

## OpenThread CLI

ot-cli-ftd.hexファイルを作成し、デバイスへ書き込みを行います。

```bash
$ git clone https://github.com/openthread/ot-nrf528xx
$ cd ot-nrf528xx
$ git submodule update --init
$ ./script/bootstrap
$ ./script/build nrf52840 USB_trans -DOT_BOOTLOADER=USB
$ arm-none-eabi-objcopy -O ihex build/bin/ot-cli-ftd ot-cli-ftd.hex
```

## OpenThread Border Router

ot-rcp.hexファイルを作成し、デバイスへ書き込みを行います。
(OpenThread CLIの手順と途中まで同じです)

```bash
$ arm-none-eabi-objcopy -O ihex build/bin/ot-rcp ot-rcp.hex
```

ラズパイへボーダールーターのソフトウェアをインストールします。
Raspberry Pi Imagerを使用してRaspberry Pi OSをSDカードへ書き込みを行います。
ラズパイへSDカードを挿入し、nRF52840 DongleデバイスをUSBへ接続して起動します。

```bash
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install dnsutils
$ git clone https://github.com/openthread/ot-br-posix
$ cd ot-br-posix
$ ./script/bootstrap
```

(Wi-Fiを使用する場合)

```bash
$ INFRA_IF_NAME=wlan0 WEB_GUI=1 ./script/setup
```

(有線LANを使用する場合)

```bash
$ INFRA_IF_NAME=eth0 WEB_GUI=1 ./script/setup
```

各サービスのステータスを確認します。
State: runningになっていれば正常です。

```bash
$ sudo service mdns status
$ sudo service otbr-agent status
$ sudo service otbr-web status
```

PCのブラウザからラズパイへアクセスし、ボーダールーターの管理画面を表示します。

![ot-br.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/4017e6e5-6a5c-b2f2-29ec-e3cae35812ce.jpeg)

## IEEE802.15.4 Sniffer

IEEE802.15.4のパケットキャプチャを解析したい場合は、IEEE802.15.4 Snifferをインストールします。
nRF52840 Dongleデバイスへファームウェアを書き込み、Wiresharkへ設定を追加してパケットキャプチャを取得します。

https://infocenter.nordicsemi.com/topic/ug_sniffer_802154/UG/sniffer_802154/installing_sniffer_802154.html

![802154_sniffer.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/e05965f8-5561-15a7-ace9-a39f6f45635d.jpeg)

## Bluetooth LE Sniffer

Matterの初期設定(コミッショニング)はBLEで行われますので、BLEのパケットキャプチャを解析したい場合は、Bluetooth LE Snifferをインストールします。
nRF52840 Dongleデバイスへファームウェアを書き込み、Wiresharkへ設定を追加してパケットキャプチャを取得します。

https://infocenter.nordicsemi.com/topic/ug_sniffer_ble/UG/sniffer_ble/installing_sniffer.html

![BLE_sniffer.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/92b8ad0b-d517-0f41-0961-e48b525869a1.jpeg)

## Thread Topology Monitor

Windows用のソフトウェア(zipファイル)をダウンロードします。(macOSはサポートされていません)

https://www.nordicsemi.com/Products/Development-tools/nrf-thread-topology-monitor

zipファイルを解凍し、hexフォルダの中のnrf52840_xxaa_mbr_pca10059_usb.hexファイルをデバイスへ書き込みを行います。

![スクリーンショット 2023-03-13 19.27.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/aa0cbf0b-4853-0b93-723b-7d270f2736d5.png)

Windows上でnRF_TTM.exeを実行します。

![nrf_ttm.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/551d696b-eaa9-4eb2-03a6-da9c0e11aaea.jpeg)

![スクリーンショット.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/9a0e1057-5c73-6703-0925-7501b0cbff2a.png)

# ThreadデバイスをCLIで操作する

ot-cli-ftd.hexファイルを書き込んだ2台のThreadデバイスを使用して通信を行ってみる。
PCへnRF52840 Dongleを接続し、シリアルポート番号を確認する。

```bash
$ ls -la /dev/cu*
/dev/cu.usbmodemDE6CC665A64E2
```

screenコマンドを使用してシリアルポートへ接続する。

```bash
$ screen /dev/cu.usbmodemDE6CC665A64E2 115200
```

(ot-cli-ftd 1台目)

```bash
> dataset init new
Done

> dataset
Active Timestamp: 1
Channel: 13
Channel Mask: 0x07fff800
Ext PAN ID: 50ac06f2eda43aa5
Mesh Local Prefix: fd9b:7e79:d1b3:fb3f::/64
Network Key: 390b52814b7fe57a611f701cc553fa2d
Network Name: OpenThread-df6d
PAN ID: 0xdf6d
PSKc: fef7bf43bd3de696c7fe77e3f3e7f514
Security Policy: 672 onrc
Done

> dataset commit active
Done

> ifconfig up
Done

> thread start
Done

> state
detached
Done

> state
leader
Done

> ipaddr
fd9b:7e79:d1b3:fb3f:0:ff:fe00:fc00
fd9b:7e79:d1b3:fb3f:0:ff:fe00:f000
fd9b:7e79:d1b3:fb3f:30fb:b37a:1c0c:641a
fe80:0:0:0:6c22:e487:e01e:f6f9
Done
```

(ot-cli-ftd 2台目)

```bash
> dataset networkkey 390b52814b7fe57a611f701cc553fa2d
Done

> dataset commit active
Done

> ifconfig up
Done

> thread start
Done

> state
detached
Done

> state
child
Done

> ipaddr
fd9b:7e79:d1b3:fb3f:0:ff:fe00:8000
fd9b:7e79:d1b3:fb3f:f999:97b5:df46:cfb7
fe80:0:0:0:386d:7a15:70d2:b3a4
Done

> ping fd9b:7e79:d1b3:fb3f:30fb:b37a:1c0c:641a
16 bytes from fd9b:7e79:d1b3:fb3f:30fb:b37a:1c0c:641a: icmp_seq=7 hlim=64 time=8ms
1 packets transmitted, 1 packets received. Packet loss = 0.0%. Round-trip min/avg/max = 8/8.0/8 ms.
Done
```

ボーダールーター経由でIPv6からIPv4へpingができていることも確認できます。

```bash
> ping 192.168.3.20
Pinging synthesized IPv6 address: fdf5:88ff:11c1:2:0:0:c0a8:314
16 bytes from fdf5:88ff:11c1:2:0:0:c0a8:314: icmp_seq=1 hlim=63 time=125ms
1 packets transmitted, 1 packets received. Packet loss = 0.0%. Round-trip min/avg/max = 125/125.0/125 ms.
Done
```

![ping.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/2689cc82-35c7-fd85-b2c4-a29c7f2cfec8.png)

# Matterデバイスを操作する

基本的には以下のページの手順に従って開発環境を構築します。

https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/getting_started/installing.html

### nRF Command Line Toolsをインストールする

nRF Command Line Toolsをダウンロードして、nRF ToolsとJ-LINKをインストールします。

https://www.nordicsemi.com/Products/Development-tools/nrf-command-line-tools/download

![スクリーンショット 2023-03-14 17.55.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/40fb33fe-da23-0e07-c8dd-ae13894674d9.png)

### Homebrewと必要なツールをインストールする

```bash
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
$ brew install cmake ninja gperf python3 ccache qemu dtc wget libmagic
```

### GN toolをインストールする

```bash
$ mkdir ${HOME}/gn && cd ${HOME}/gn
```

(M1/M2 Macの場合)

```bash
$ wget -O gn.zip https://chrome-infra-packages.appspot.com/dl/gn/gn/mac-arm64/+/latest
```

(Intel Macの場合)

```bash
$ wget -O gn.zip https://chrome-infra-packages.appspot.com/dl/gn/gn/mac-amd64/+/latest
```

zipファイルを解凍します。

```
$ unzip gn.zip
$ rm gn.zip
```

以下の内容を~/.bashrcファイル、または ~/.zshrcファイルに追加して、gnコマンドのパスを追加します。

```bash
export PATH=${HOME}/gn:"$PATH"
```

以下のコマンドを実行する、または、ターミナルを再度開いて環境変数を有効にします。

```bash
$ source ~/.bashrc
または
$ source ~/.zshrc
```

### westコマンドをインストールする

```bash
$ pip3 install west
```

### nRF Connect SDK codeを取得する

ncsディレクトリを作成し、その中にnRF Connect SDK codeを取得します。
--mrオプションでリリース番号を指定します。

```bash
$ mkdir ncs && cd ncs
$ west init -m https://github.com/nrfconnect/sdk-nrf --mr v2.3.0
```

GitHubの最新データを取得する場合は以下を実行します。

```bash
$ west init -m https://github.com/nrfconnect/sdk-nrf --mr main
```

データを更新する場合は、以下のコマンドを実行します。

```bash
$ west update
```

以下のコマンドを実行して、Zephyr CMake packageを出力します。
(nRF Connect SDKアプリケーションをビルドするために必要)

```bash
$ west zephyr-export
```

### Pythonモジュールをインストールする

```bash
$ pip3 install -r zephyr/scripts/requirements.txt
$ pip3 install -r nrf/scripts/requirements.txt
$ pip3 install -r bootloader/mcuboot/scripts/requirements.txt
```

### Zephyr SDKをインストールする

latest Zephyr SDKの最新リリース番号を取得し、取得したファイルを解凍して展開します。

(M1/M2 Macの場合)

```bash
$ cd ~
$ wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.15.2/zephyr-sdk-0.15.2_macos-aarch64.tar.gz
$ tar xvf zephyr-sdk-0.15.2_macos-aarch64.tar.gz
```

(Interl Macの場合)

```bash
$ cd ~
$ wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.15.2/zephyr-sdk-0.15.2_macos-x86_64.tar.gz
$ tar xvf zephyr-sdk-0.15.2_macos-x86_64.tar.gz
```

セットアップスクリプトを実行します。

```bash
$ cd zephyr-sdk-0.15.2
$ ./setup.sh
```

### ビルド環境変数を設定する

以下のコマンドを実行して、ビルド環境変数を設定します。

```bash
$ cd ~/ncs
$ source zephyr/zephyr-env.sh
```

## サンプルアプリケーションをビルドする(nRF Connect SDK)

nRF Connect SDKに含まれるサンプルアプリケーションを使用します。

https://github.com/nrfconnect/sdk-nrf

### Light bulb

基本的に以下のページを参考にサンプルアプリケーションのビルドとデバイスへのインストールを行います。

https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/samples/matter/light_bulb/README.html

nRF52840 DKデバイス用にビルドとインストールを行います。

```bash
$ cd ~/ncs/nrf/samples/matter/light_bulb
$ west build -b nrf52840dk_nrf52840 -d build_nrf52840dk_nrf52840 -- -DCONF_FILE=prj.conf
$ west flash -d build_nrf52840dk_nrf52840
```

(使い方)
LED1: 待機している時は点滅します。初期設定(コミッショニング)が完了すると常時点灯します。
LED2: ライトとして使用します。Matterコントローラー(iOSホームアプリ)からの操作でON/OFF(点灯/消灯)、明るさ(0%〜100%)を変更できます。
LED3: 使いません
LED4: 使いません

ボタン1: 長押し(3秒以上)すると、LED1〜4が全て点灯し、ボタンを離すと初期化されます。(アプリを書き換えたり、繰り返し初期設定のテストをする場合、初期化が有効です。)
ボタン2: LED2のON/OFF状態を変更します。
ボタン3: 使いません
ボタン4: 初期設定(コミッショニング)のためのBluetooth LE(BLE)アドバタイズを有効にします。

### Light switch

基本的に以下のページを参考にサンプルアプリケーションのビルドとデバイスへのインストールを行います。

https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/samples/matter/light_switch/README.html

```bash
$ cd ~/ncs/nrf/samples/matter/light_switch
$ west build -b nrf52840dk_nrf52840 -d build_nrf52840dk_nrf52840 -- -DCONF_FILE=prj.conf
$ west flash -d build_nrf52840dk_nrf52840
```

(使い方)
LED1: 待機している時は点滅します。初期設定(コミッショニング)が完了すると常時点灯します。
LED2: コマンドを受信すると点滅します。(後述で、iOSホームアプリからMatterデバイスとして正常に認識されなかったため、動作確認できませんでした。)
LED3: 使いません
LED4: 使いません

ボタン1: 長押し(3秒以上)すると、LED1〜4が全て点灯し、ボタンを離すと初期化されます。(アプリを書き換えたり、繰り返し初期設定のテストをする場合、初期化が有効です。)
ボタン2: 使いません
ボタン3: 使いません
ボタン4: 初期設定(コミッショニング)のためのBluetooth LE(BLE)アドバタイズを有効にします。

### Door lock

基本的に以下のページを参考にサンプルアプリケーションのビルドとデバイスへのインストールを行います。

https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/samples/matter/lock/README.html

nRF52840 DKデバイス用にビルドとインストールを行います。

```bash
$ cd ~/ncs/nrf/samples/matter/lock
$ west build -b nrf52840dk_nrf52840 -d build_nrf52840dk_nrf52840 -- -DCONF_FILE=prj.conf
$ west flash -d build_nrf52840dk_nrf52840
```

(使い方)
LED1: 待機している時は点滅します。初期設定(コミッショニング)が完了すると常時点灯します。
LED2: ロックされている状態で点灯します。ロック解除されている状態で消灯します。
LED3: 使いません
LED4: 使いません

ボタン1: 長押し(3秒以上)すると、LED1〜4が全て点灯し、ボタンを離すと初期化されます。(アプリを書き換えたり、繰り返し初期設定のテストをする場合、初期化が有効です。)
ボタン2: 使いません
ボタン3: 使いません
ボタン4: 初期設定(コミッショニング)のためのBluetooth LE(BLE)アドバタイズを有効にします。

### Window covering

基本的に以下のページを参考にサンプルアプリケーションのビルドとデバイスへのインストールを行います。

https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/samples/matter/window_covering/README.html

nRF52840 DKデバイス用にビルドとインストールを行います。

```bash
$ cd ~/ncs/nrf/samples/matter/window_covering
$ west build -b nrf52840dk_nrf52840 -d build_nrf52840dk_nrf52840 -- -DCONF_FILE=prj.conf
$ west flash -d build_nrf52840dk_nrf52840
```

(使い方)
LED1: 待機している時は点滅します。初期設定(コミッショニング)が完了すると常時点灯します。
LED2: 窓が閉まっている状態で点灯します。窓が開いている状態で消灯します。
LED3: 使いません
LED4: 使いません

ボタン1: 長押し(3秒以上)すると、LED1〜4が全て点灯し、ボタンを離すと初期化されます。(アプリを書き換えたり、繰り返し初期設定のテストをする場合、初期化が有効です。)
ボタン2: 使いません
ボタン3: 使いません
ボタン4: 初期設定(コミッショニング)のためのBluetooth LE(BLE)アドバタイズを有効にします。

## サンプルアプリケーションをビルドする(connectedhomeip)

Matterプロジェクト(旧:Project CHIP)に含まれるサンプルアプリケーションを使用します。

https://github.com/project-chip/connectedhomeip/

### lighting-app

下記のページを参考に開発環境を構築します。

https://qiita.com/kitazaki/items/548abb35431f215df919

```bash
$ cd ~/connectedhomeip
$ source ./scripts/activate.sh
$ cd examples/lighting-app/nrfconnect
```

nRF52840 DKデバイス用にビルドとインストールを行います。

```bash
$ west build -b nrf52840dk_nrf52840 -d build_nrf52840dk_nrf52840 -- -DCONF_FILE=prj.conf
$ west flash -d build_nrf52840dk_nrf52840
```

nRF52840 Dongleデバイス用にビルドとインストールを行います。

```bash
$ west build -b nrf52840dongle_nrf52840 -d build_nrf52840dongle_nrf52840 -- -DCONF_FILE=prj_no_dfu.con
$ west flash -d build_nrf52840dongle_nrf52840
```

### light-switch-app

下記のページを参考に開発環境を構築します。

https://qiita.com/kitazaki/items/548abb35431f215df919

```bash
$ cd ~/connectedhomeip
$ source ./scripts/activate.sh
$ cd examples/light-switch-app/nrfconnect
```

nRF52840 DKデバイス用にビルドとインストールを行います。

```bash
$ west build -b nrf52840dk_nrf52840 -d build_nrf52840dk_nrf52840 -- -DCONF_FILE=prj.conf
$ west flash -d build_nrf52840dk_nrf52840
```

## アプリの比較(iOSホームアプリでの見え方、動作確認)

### ライトアプリ

iOSホームアプリの見え方は異なりましたが、すべて正常に動作しました。

- nRF Connect SDK版
  - nRF52840 DK
- connectedhomeip版
  - nRF52840 DK
  - nRF52840 Dongle

(nRF Connect SDK版)
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/15eba1cb-0444-a368-d55a-751337c45011.png" width="33%"> <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/07ff10c9-b33d-3907-3852-c4e8d692d583.png" width="33%">

(connectedhomeip版)
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/dccc457a-0aff-f9e5-d252-8c681f227226.png" width="33%"> <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/2444731a-c740-32a2-46b8-f6c0dc15648b.png" width="33%">

![dk_1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/e42b7cad-231c-fde5-db2d-477f08293308.jpeg)

![dongle.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/26a76500-84bc-ee9f-cee8-010baa37fa95.jpeg)

### スイッチアプリ

iOSホームアプリの見え方が異なり、nRF Connect SDK版はMatterデバイスとして認識されず(非対応表示)、connectedhomeip版はMatterデバイスとして認識されました(その他)が、正常に動作しませんでした。(デバイスのログでは、ボタン2の操作が出力される)

- nRF Connect SDK版
  - nRF52840 DK
- connectedhomeip版
  - nRF52840 DK

(nRF Connect SDK版)
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/170cb57a-847a-de9f-e2cd-92e204daeb57.png" width="33%">

(connectedhomeip版)
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/598924d3-96cd-8e16-9943-bf7696dc9aaa.png" width="33%">

### ドアロックアプリ

正常に動作しました。

- nRF Connect SDK版
  - nRF52840 DK

(nRF Connect SDK版)
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/4ca62f67-0aec-795f-ecac-5d370d77af08.png" width="32%"> <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/b7edf045-b779-1ff9-1087-064828cfbc8c.png" width="32%"> <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/6463c0f1-4f04-3f11-dc09-762f608d2705.png" width="32%">

### 窓ブラインドアプリ

正常に動作しました。

- nRF Connect SDK版
  - nRF52840 DK

(nRF Connect SDK版)
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/896c4e9b-bcbf-3eb6-3d89-ff5b4a842300.png" width="33%"> <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/df3582a3-cf91-690a-e852-fad333366af2.png" width="33%">

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/4ee2cc72-1ca0-8cc4-a143-79a20c1b54a8.png" width="33%">
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/f65c62b6-b438-beff-55a3-214c923338cb.png" width="33%">