دستورالعملهای زیر از مثال برنامه نورپردازی از Matter SDK به همراه یک برد توسعه Nordic nRF52840 استفاده میکنند.
تنظیمات محیط
این دستورالعملها بر اساس نصب مبتنی بر داکر از ابزار nRF Connect هستند. اگر ترجیح میدهید از داکر استفاده نکنید، دستورالعملهای نصب nRF Connect به صورت بومی روی رایانه میزبان در سایت Nordic موجود است.
کیت توسعه نرمافزاری Matter را بررسی کنید
user@host> mkdir otaprep
user@host> cd otaprep
user@host> git clone https://github.com/project-chip/connectedhomeip.git
user@host> cd connectedhomeip/
user@host> git fetch origin v1.0-branch
user@host> git checkout FETCH_HEAD
ایمیج داکر صحیح مورد استفاده را بررسی کنید. از یکی از ایمیجهای ایجاد شده برای ادغام مداوم Matter SDK استفاده کنید.
user@host> cat .github/workflows/examples-nrfconnect.yaml | grep chip-build
            image: connectedhomeip/chip-build-nrf-platform:0.5.99
برد Nordic را به کامپیوتر وصل کنید. شمارش USB رابط سریال آن را بررسی کنید:
در macOS:
user@host> ls /dev/tty.usbmodem*
/dev/tty.usbmodem0123456789000
در لینوکس، یکی از موارد زیر:
user@host> ls /dev/tty*AC*
/dev/ttyACM0
یا
user@host> ls /dev/tty*USB*
/dev/ttyUSB0
با استفاده از اطلاعات جمعآوریشده در دستور قبلی، یک کانتینر را اجرا کنید. پرچمها را برای نصب پوشه میزبان Matter SDK و رابط سریال USB به کانتینر ارسال کنید.
user@host> docker run --name container_name -it --user $(id -u):$(id -g) --mount source=$(pwd),target=/workspace,type=bind connectedhomeip/chip-build-nrf-platform:0.5.99 /bin/bash
کانتینر Matter Docker را متوقف و شروع کنید
 هر زمان که دستور docker run اجرا میکنید، یک کانتینر جدید با تصویر مشخص شده ایجاد خواهید کرد. وقتی این کار را انجام میدهید، دادههای قدیمی شما که در نمونه کانتینر قبلی ذخیره شده بودند، از بین میروند. گاهی اوقات این چیزی است که میخواهید اتفاق بیفتد، زیرا به شما امکان میدهد با یک نصب جدید شروع کنید. اما در این مثال، به احتمال زیاد میخواهید پیکربندی کار و محیط خود را بین جلسات ذخیره کنید.
user@host> docker stop container_name
وقتی دوباره آماده اجرا شدید، کانتینر را اجرا کرده و یک پنجره ترمینال باز کنید:
user@host> docker start container_name
user@host> docker exec -it container_name /bin/bash
شما میتوانید با استفاده از دستور زیر، نشستهای ترمینال بیشتری را برای کانتینر خود باز کنید:
user@host> docker exec -it container_name /bin/bash
یا با استفاده از دستور زیر یک جلسه روت (root session) ایجاد کنید:
user@host> docker exec -u 0 -it container_name /bin/bash
مقداردهی اولیه SDK
در کانتینر، Matter SDK و متغیرهای محیطی مربوط به زنجیره ابزار Nordic nRF52 را مقداردهی اولیه کنید. مقداردهی اولیه Matter SDK اغلب چند دقیقه طول میکشد.
cd /workspacegit submodule update --init --recursivesource ./scripts/bootstrap.shsource ./scripts/activate.shexport ZEPHYR_BASE=/opt/NordicSemiconductor/nrfconnect/zephyrexport GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"scripts/run_in_build_env.sh "python3 scripts/setup/nrfconnect/update_ncs.py --update --shallow"source /opt/NordicSemiconductor/nrfconnect/zephyr/zephyr-env.shساخت و فلش
VID و PID دستگاه را پیکربندی کنید:
cd examples/lighting-app/nrfconnectwest build -b nrf52840dk_nrf52840 -t menuconfigدر گزینههای منوی تعاملی:
- Modules --->
- connectedhomeip --->
- [*] Connected Home over IP protocol stack --->
- Device vendor ID(VID) و- Device product ID(PID) را در قالب عدد صحیح پایه ۱۰ وارد کنید.
- مطمئن شوید که گزینهی - [*] Enable OTA requestorانتخاب شده باشد.
- برای ذخیره تنظیمات، دکمه s را فشار دهید، برای تأیید Enter را فشار دهید، سپس برای خروج از - menuconfigدکمه q را فشار دهید.
تنظیم گواهیهای آزمون
برای ایجاد گواهیهای CD، DAC و PAI، مراحل موجود در گواهیهای تست دستگاه Create Matter را دنبال کنید.
دستگاه خود را بسازید
west build -b nrf52840dk_nrf52840دستگاه خود را فلش کنید
این کار روی کامپیوتر میزبان انجام میشود، نه در کانتینر داکر.
اگر ابزارهای خط فرمان nRFConnect را ندارید، آنها را دانلود و نصب کنید .
user@host> nrfjprog --program build/zephyr/merged.hex --chiperase -f NRF52
یک اتصال ترمینال به دستگاه خود، چه روی میزبان و چه روی کانتینر، باز کنید. از ابزار ترمینال مورد علاقه خود مانند minicom یا GNU screen استفاده کنید. 
user@host> minicom -c on -D /dev/ttyACM0 115200
user@host> screen /dev/ttyACM0 115200
ایجاد و آپلود تصویر OTA
پس از فلش کردن دستگاه، تنظیمات ساخت را یک بار دیگر تغییر دهید تا یک تصویر OTA با نسخه نرمافزار دستگاه افزایشی ایجاد شود.
 menuconfig Zephyr را اجرا کنید: 
west build -b nrf52840dk_nrf52840 -t menuconfigدر گزینههای منوی تعاملی:
- Modules -->
- connectedhomeip -->
- Connected Home over IP protocol stack -->
- Device Software Versionرا به- 2تغییر دهید.
- Device Software Version Stringرا به- prerelease-2تغییر دهید.
- برای ذخیره تنظیمات، دکمه s را فشار دهید، برای تأیید Enter را فشار دهید، سپس برای خروج از - menuconfigدکمه q را فشار دهید.
 فایل بسته OTA جدید Matter را بسازید. خروجی در build/zephyr/zephyr.bin قرار میگیرد. 
/workspace/src/app/ota_image_tool.py create -v hex_VID -p hex_PID -vn version_no -vs version_string path_to_binary -da digest_algorithm path_to_ota_fileویژگیهای فایل بسته OTA Matter تولید شده خود را تأیید کنید:
/workspace/examples/lighting-app/nrfconnect# /workspace/src/app/ota_image_tool.py show firmware-ota-update-test.binMagic: 1beef11e
Total Size: 951784
Header Size: 72
Header TLV:
  [0] Vendor Id: XXXXX (0xXXXX)
  [1] Product Id: 32768 (0x8000)
  [2] Version: 2 (0x2)
  [3] Version String: prerelease-2
  [4] Payload Size: 951696 (0xe8590)
  [8] Digest Type: 1 (0x1)
  [9] Digest: 75f2e8b0c8e922b8bb3841504190bcdd83533e936a284c7254d29327d605c930
از آنجا که Matter SDK از میزبان کانتینر شما نصب شده است، تصویر OTA نیز در میزبان کانتینر شما موجود است. با دنبال کردن دستورالعملهای آپلود OTA، تصویر OTA را در Google Home Developer Console آپلود کنید.
دستگاه را راهاندازی کنید و فرآیند OTA را مشاهده کنید.
 یک اتصال ترمینال به دستگاه، چه روی میزبان و چه روی کانتینر، باز کنید. از ترمینال مورد علاقه خود مانند minicom یا GNU screen استفاده کنید: 
minicom -c on -D /dev/ttyACM0 115200دکمه تنظیم مجدد دستگاه را فشار دهید تا گزارشهای مربوط به بوت را مشاهده کنید.
در خروجی دستگاه، باید VID و PID تنظیمشده و همچنین URL مربوط به کد QR راهاندازی را مشاهده کنید:
I: nRF5 802154 radio initialized
I: 4 Sectors of 4096 bytes
(...)
I: 681 [SVR]Server Listening...
I: 684 [DL]Device Configuration:
I: 687 [DL]  Serial Number: 11223344556677889900
I: 692 [DL]  Vendor Id: XXXXX (0xXXXX)
I: 695 [DL]  Product Id: XXXXX (0xXXXX)
I: 699 [DL]  Hardware Version: 0
I: 702 [DL]  Setup Pin Code (0 for UNKNOWN/ERROR): 20202021
I: 708 [DL]  Setup Discriminator (0xFFFF for UNKNOWN/ERROR): 3840 (0xF00)
I: 714 [DL]  Manufacturing Date: (not set)
I: 718 [DL]  Device Type: 65535 (0xFFFF)
I: 723 [SVR]SetupQRCode: [MT:6FCJ142C00KA0648G00]
I: 727 [SVR]Copy/paste the below URL in a browser to see the QR Code:
I: 733 [SVR]https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%000000000000000000000
I: 742 [SVR]Manual pairing code: [30900112302]
I: 747 [DL]CHIP task running
I: 752 [DL]CHIPoBLE advertising started
I: 757 [DL]NFC Tag emulation started
مطمئن شوید که هاب شما آنلاین است و دستگاه را با استفاده از کد QR از لینک موجود در گزارش، با Google Home app (GHA) راهاندازی کنید.
پس از راهاندازی، دستگاه را در حال ثبت فعالیتهایش رها کنید.
شما باید متن زیر را در لاگ دستگاه مشاهده کنید:
/* Hub OTA provider identification */
I: 69642 [SWU]OTA Requestor received AnnounceOTAProvider
D: 69647 [SWU]  FabricIndex: 1
D: 69649 [SWU]  ProviderNodeID: 0x00000000XXXXXXXX
D: 69654 [SWU]  VendorID: 0x6006
D: 69657 [SWU]  AnnouncementReason: 0
D: 69660 [SWU]  Endpoint: 2
...
D: 69799 [SWU]Establishing session to provider node ID 0x00000000FC843D94 on fabric index 1
...
D: 262265 [SWU]QueryImageResponse:
D: 262268 [SWU]  status: 0
D: 262271 [SWU]  imageURI: bdx://00000000FC843D94/37f09fd6-0000-0000-0000-000000000000
D: 262278 [SWU]  softwareVersion: 2
D: 262281 [SWU]  softwareVersionString: 2
D: 262285 [SWU]  updateToken: 36
D: 262288 [SWU]  userConsentNeeded: 0
D: 262292 [SWU]Update available from version 0 to 2
...
D: 262372 [SWU]Establishing session to provider node ID 0x00000000FC843D94 on fabric index 1
...
D: 262409 [SWU]BDX::SendMessage
پس از اعمال ایمیج، دستگاه مجدداً راهاندازی میشود. پس از راهاندازی مجدد، زمان کامپایل ایمیج باید با زمان آپلود شده در Developer Console مطابقت داشته باشد.
بهروزرسانی نرمافزار OTA را تأیید کنید
نسخه نرمافزار دستگاه را میتوان با استفاده از برنامه Google Home (GHA) بررسی کرد. پس از راهاندازی دستگاه، این مراحل را دنبال کنید:
- در صفحه اصلی GHA ، روی کاشی دستگاه لمس طولانی کنید.
- روی نماد در بالا سمت راست ضربه بزنید
- اطلاعات اضافی
- فیلد نسخه نرمافزار را بررسی کنید
