1. この演習用のベースコードを開きます。
Visual Studio Codeの「WELCOME」パネルで、Open an existing applicationを選択し、コースのGitHubリポジトリに移動してl5/l5_e2ディレクトリを開きます。アプリケーションはAPPLICATIONSパネルの下に表示されるはずです。
このアプリケーションはMatter Lockサンプルのコピーであり、この演習のコードスニペットを入力する場所の指示が追加されています。
注:nRF Connect SDKのすべてのMatterサンプルはデフォルトでOTAリクエスタロールをサポートしているため、どのMatterサンプルでも使用できます。
2. Bluetooth LE経由のSMPを使用したDFUのサポートを有効にします。
2.1 ビルド構成を追加し、通常通りターゲットボードを選択します。次に、「Extra CMake arguments」の下にあるAdd Argumentをクリックし、以下の行を追加して、Bluetooth LE経由のSMPを使用したDFUのサポートを有効にします(Matterサンプルではデフォルトで無効になっています)。
-DCONFIG_CHIP_DFU_OVER_BT_SMP=yKconfig
2.2 「Generate and Build」ボタンをクリックし、コンパイルが終了したら、アプリケーションをNordicデバイスに書き込みます。
3. Matter Lockサンプルを少し修正します。
ソフトウェアアップデートが機能することを確認するには、アプリケーションに修正を加え、バイナリを再度ビルドする必要があります。
3.1 ソフトウェアアップデートを簡単に確認できるように、ログ行を追加します。
src/app_task.cppファイルのStartApp()メソッドに、ソフトウェアアップデートが機能したことを簡単に確認するための新しいログ行を追加します。
以下の行を追加してください。
LOG_INF("================ NEW SOFTWARE IMAGE IS WORKING!!! ===============");C++3.2 VERSIONファイルを修正し、PATCHLEVELの値を0以外の値(例:4)に変更します。
修正後、ファイルは以下のようになります。
VERSION_MAJOR = 3
VERSION_MINOR = 2
PATCHLEVEL = 4
VERSION_TWEAK = 0
EXTRAVERSION =C++3.3 サンプルをビルドしますが、DKに再度書き込まないでください。
3.4 ソフトウェアアップデートが成功したことを確認するために必要となるため、デバイスのシリアルポートを開き、ログが表示されていることを確認してください。
CONNECTED DEVICESパネルのVCOMを使用して、ボードのシリアルポートを開きます。VCOMの右側にある「Connect to Serial Port」アイコンをクリックします。
デバイスからのログが表示されない場合は、nRF54LシリーズDKのRESETボタンを押してください。
nRF54LシリーズDKは2つのシリアルポートとして認識され、その番号はPCによって異なる場合があります。番号の大きい方のVCOMを選択してください。例えば、VCOM0とVCOM1が利用可能な場合は、VCOM1を使用します。
4. スマートフォンにnRF Connect Device Managerアプリケーションをインストールします。
4.1 スマートフォンにnRF Connect Device Managerアプリケーションをダウンロードしてインストールします。
4.2 スマートフォンでアプリケーションにBluetooth LEの使用許可が与えられていることを確認してください。
4.3 <path_to_sample>/build/dfu_application.zipディレクトリからスマートフォンにソフトウェアアップデートイメージを転送します。
これは、USBケーブルを使用してスマートフォンをPCに接続する、ワイヤレスプロトコルで転送する、オンラインドライブ経由で送信するなど、さまざまな方法で行うことができます。これは、使用しているスマートフォンの特定のモデルによって異なります。
5. Bluetooth LE経由でソフトウェアアップデートを実行します。
5.1 Nordic DKのボタン0を押して、Bluetooth LE経由のアドバタイズを開始します。
5.2 スマートフォンでnRF Connect Device Managerアプリケーションを実行します。Bluetooth LEスキャナーが自動的に開始され、近くにある他のBluetooth LEデバイスの中からMatterLockデバイスが見つかるはずです。
MatterLockデバイスをクリックします。

5.3 下の画像に示すように、下部メニューにあるImageボタンをクリックします。

5.4 Select Fileオプションをクリックし、スマートフォン上のdfu_application.zipファイルの場所を指定します。ファイルが読み込まれると、以下のようにSizeフィールドとHashフィールドの括弧内にlock.signed.binファイル名が表示されます。

5.5 Startボタンをクリックし、Select Modeを求められたら、Confirm only (Recommended)を選択します。その後、ソフトウェアの転送プロセスが開始され、アプリケーションでStateがUPLOADINGになり、以下のようにプログレスバーが更新されるのを確認できます。

さらに、DKのログには、以下のようなアップデートの進行状況を知らせるメッセージが多数表示されます。
I: 386863 [SWU]DFU over SMP progress: 806012/807732 B of image 0
I: 386921 [SWU]DFU over SMP progress: 806164/807732 B of image 0
I: 386979 [SWU]DFU over SMP progress: 806316/807732 B of image 0
I: 386997 [SWU]DFU over SMP progress: 806468/807732 B of image 0
I: 387042 [SWU]DFU over SMP progress: 806620/807732 B of image 0
I: 387103 [SWU]DFU over SMP progress: 806772/807732 B of image 0
I: 387161 [SWU]DFU over SMP progress: 806924/807732 B of image 0
I: 387219 [SWU]DFU over SMP progress: 807076/807732 B of image 0
I: 387227 [SWU]DFU over SMP progress: 807228/807732 B of image 0Terminalプロセスが終了すると、Nordic DKは自動的に再起動してソフトウェアイメージを入れ替えます。これには数秒かかる場合があります。その後、新しいソフトウェアイメージが起動し、nRF Connect Device ManagerのStateの値がUPLOAD COMPLETEに変わります。

5.6 Nordic DKのログをチェックして、ソフトウェアイメージが更新されたかどうかを確認します。ログには以下のメッセージが含まれているはずです。
I: 168 [SVR]Server Listening...
I: 171 [DL]Device Configuration:
I: 174 [DL] Serial Number: 11223344556677889900
I: 178 [DL] Vendor Id: 65521 (0xFFF1)
I: 182 [DL] Product Id: 32774 (0x8006)
I: 185 [DL] Product Name: Matter Door Lock
I: 189 [DL] Hardware Version: 0
I: 192 [DL] Setup Pin Code (0 for UNKNOWN/ERROR): 20202021
I: 197 [DL] Setup Discriminator (0xFFFF for UNKNOWN/ERROR): 3840 (0xF00)
I: 204 [DL] Manufacturing Date: 2022-01-01
I: 208 [DL] Device Type: 65535 (0xFFFF)
I: 211 [SVR]SetupQRCode: [MT:8IXS142C00KA0648G00]
I: 216 [SVR]Copy/paste the below URL in a browser to see the QR Code:
I: 222 [SVR]https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3A8IXS142C00KA0648G00
I: 230 [SVR]Manual pairing code: [34970112332]
I: ================ NEW SOFTWARE IMAGE IS WORKING!!! ===============
E: 241 [DL]Long dispatch time: 187 ms, for event type 2Terminalログは、Bluetooth LE経由のSMPを使用したソフトウェアアップデートが成功したことを示しています。