K32W
Contoh ini berfungsi sebagai jenis perangkat bohlam, dengan kemampuan aktif/nonaktif. Langkah-langkah ini telah diverifikasi di board pengembangan mdpi K32W (kit pengembangan IOTZTB-DK006).
Penyiapan awal
- Pastikan Anda telah menginstal Python3 dan paket ini. Langkah-langkah dalam dokumen ini divalidasi dengan Python 3.8.
- Download dan instal K32W061 MCUXpresso SDK 2.6.9.
- Setelah SDK di-build, download paket SDK dan ekstrak ke direktori
utama Anda. Tetapkan variabel lingkungan
NXP_K32W0_SDK_ROOT
ke tempat Anda mengekstrak SDK. Sebaiknya tambahkan perintah ini ke file.*rc
untuk shell yang Anda gunakan, seperti.zshrc
:export NXP_K32W0_SDK_ROOT=$HOME/SDK_2_6_9_K32W061DK6/
Clone dan inisialisasi repo Camera/CameraX:
git clone https://github.com/NXPmicro/matter.git
cd matter
git fetch origin v1.0-branch-nxp
git checkout FETCH_HEAD
git submodule update --init --recursive
source ./scripts/activate.sh
Contoh ini menggunakan konfigurasi "Generic Switch Node". Pastikan jumper JP4/JP7 berada di posisi paling kiri (LPC-JN UART0):
Mengonfigurasi ulang board untuk JLink
- Download dan instal JLink di komputer.
- Di board, pastikan DFU dipilih di jumper BOOT di samping
port USB, lalu hubungkan board ke komputer dengan kabel USB mini.
- Download dan instal
LPCScrypt
di komputer Anda.
- Untuk MacOS, klik dua kali pada paket yang didownload untuk menginstalnya.
- Untuk Linux, buka folder tempat Anda mendownload paket:
chmod +x lpcscrypt-2.1.2_57.x86_64.deb.bin
./lpcscrypt-2.1.2_57.x86_64.deb.bin
- Setelah LPCScrypt diinstal, jalankan skrip ini untuk memprogram ulang
papan Anda (ganti
<LPCScrypt_InstallDir>
dengan jalur penginstalan yang sebenarnya dari LPCScrypt):<LPCScrypt_InstallDir>/scripts/program_JLINK
- Anda akan melihat pesan yang mirip dengan yang di bawah ini. Tekan Spasi untuk memulai pemrograman. Setelah selesai, tekan Enter untuk keluar.
LPCScrypt - J-Link firmware programming script v2.1.2 Nov 2020.
Connect an LPC-Link2 or LPCXpresso V2/V3 Board via USB then press Space. Booting LPCScrypt . LPCXpresso V2/V3 programmed with Firmware_JLink_LPCXpressoV2_20190404.bin -To use: remove DFU link and reboot the board
Connect next board then press Space (or <return> to Quit)
- Cabut board dan alihkan pelompat BOOT kembali ke NORMAL. Board Anda
kini telah dikonfigurasi ulang untuk menggunakan JLink guna melakukan flash image.
Membuat image
- Siapkan repo:
source ./scripts/activate.sh
- Instal dependensi:
pip3 install pycrypto pycryptodome
- Update
VENDOR_ID
dalam contoh konfigurasi project Anda (CHIPProjectConfig.h
). Ini harus berupa VID Anda sesuai spesifikasi Matter CSA, atau VID yang dialokasikan untuk tujuan pengujian. Nilai yang Anda berikan untukVENDOR_ID
harus cocok dengan nilai yang Anda gunakan saat membuat integrasi Matter di Google Home Developer Console.grep VENDOR_ID ./examples/lighting-app/nxp/k32w/k32w0/include/CHIPProjectConfig.h
* CHIP_DEVICE_CONFIG_DEVICE_VENDOR_ID #define CHIP_DEVICE_CONFIG_DEVICE_VENDOR_ID your-hex-VID
- Periksa
PRODUCT_ID
pada contoh konfigurasi project Anda (CHIPProjectConfig.h
). NilaiPRODUCT_ID
dapat tetap sama dengan nilai default contoh, atau diubah sesuai keinginan, tetapi harus mematuhi Pembatasan ID Produk yang dijelaskan dalam Prasyarat saat ini. Perhatikan juga bahwa nilai yang Anda berikan untukPRODUCT_ID
harus cocok dengan nilai yang Anda gunakan saat membuat integrasi Matter di Developer Console.grep PRODUCT_ID ./examples/lighting-app/nxp/k32w/k32w0/include/CHIPProjectConfig.h
* CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID #define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID 0x4B4C
- Build aplikasi pencahayaan:
- Jika board ekspansi OM15082 terpasang ke board K32W, pastikan
untuk menyetel argumen build
chip_with_OM15082
ke1
:cd examples/lighting-app/nxp/k32w/k32w0/
gn gen out/debug --args="k32w0_sdk_root="${NXP_K32W0_SDK_ROOT}" chip_with_OM15082=1 chip_with_ot_cli=0 is_debug=false chip_crypto="platform" chip_with_se05x=0 chip_pw_tokenizer_logging=true chip_enable_ota_requestor=false"
ninja -C out/debug
- Jika board ekspansi OM15082 tidak terpasang, hapus
argumen build
chip_with_OM15082
:
Perhatikan bahwa Pigweed tokenizer, yang merupakan modul pigweed yang memungkinkan hashing string untuk mengurangi flash yang diperlukan untuk log secara signifikan, diaktifkan di atas dengan menetapkancd examples/lighting-app/nxp/k32w/k32w0/
gn gen out/debug --args="k32w0_sdk_root="${NXP_K32W0_SDK_ROOT}" chip_with_ot_cli=0 is_debug=false chip_crypto="platform" chip_with_se05x=0 chip_pw_tokenizer_logging=true chip_enable_ota_requestor=false"
ninja -C out/debug
chip_pw_tokenizer_logging
ketrue
. Skrip detokenizer akan diperlukan untuk mengurai skrip yang di-hash. Lihat di sini untuk mengetahui informasi selengkapnya.
- Jika board ekspansi OM15082 terpasang ke board K32W, pastikan
untuk menyetel argumen build
Untuk pengguna MacOS (lewati langkah ini jika Anda TIDAK membuat aplikasi di MacOS):
Buka skrip
sign_images.sh
(terletak di$NXP_K32W0_SDK_ROOT/tools/imagetool/sign_images.sh
) di editor teks dan buat perubahan berikut:- Beri komentar atau hapus baris ini untuk mengatasi error "paket tidak diinstal"
di MacOS:
is_linux_package_installed "python3" is_linux_package_installed "python3-pip"
- Perbaiki argumen untuk utilitas
file
("-ib
" harus "-Ib
"), atau skrip penandatanganan akan otomatis menghasilkan file.bin
:MIME_SET="$(file -ib $FILENAME)"
Ubah ke:MIME_SET="$(file -Ib $FILENAME)"
- Beri komentar atau hapus baris ini untuk mengatasi error "paket tidak diinstal"
di MacOS:
Tanda tangani gambar:
chmod +x $NXP_K32W0_SDK_ROOT/tools/imagetool/sign_images.sh
$NXP_K32W0_SDK_ROOT/tools/imagetool/sign_images.sh out/debug/
Mem-flash board
- Luncurkan command line JLink dengan board yang terhubung melalui kabel USB mini:
JLinkExe -device K32W061 -if SWD -speed 4000 -autoconnect 1
- Di command line JLink, masukkan perintah
erase
untuk menghapus gambar yang ada di board. Hal ini diperlukan jika Anda telah mem-flash board sebelumnya.erase
Without any give address range, Erase Chip will be executed Erasing device... J-Link: Flash download: Total time needed: 2.878s (Prepare: 0.051s, Compare: 0.000s, Erase: 2.789s, Program: 0.000s, Verify: 0.000s, Restore: 0.037s) Erasing done. - Kemudian, flash image menggunakan perintah
loadbin
:loadbin out/debug/chip-k32w061-light-example.bin, 0
Downloading file [out/debug/chip-k32w061-light-example.bin]... J-Link: Flash download: Bank 0 @ 0x00000000: 1 range affected (586752 bytes) J-Link: Flash download: Total: 7.492s (Prepare: 0.054s, Erase: 2.738s, Program & Verify: 4.661s, Restore: 0.037s) J-Link: Flash download: Program & Verify speed: 122 KB/s O.K. - Keluar dari JLink CLI dengan mengetik
exit
. - Luncurkan ulang JLink:
JLinkExe -device K32W061 -if SWD -speed 4000 -autoconnect 1
- Lakukan flash image lagi, lewati perintah
erase
kali ini:loadbin out/debug/chip-k32w061-light-example.bin, 0
Downloading file [out/debug/chip-k32w061-light-example.bin]... J-Link: Flash download: Bank 0 @ 0x00000000: 1 range affected (586752 bytes) J-Link: Flash download: Total: 7.492s (Prepare: 0.054s, Erase: 2.738s, Program & Verify: 4.661s, Restore: 0.037s) J-Link: Flash download: Program & Verify speed: 122 KB/s O.K. - Setelah perintah
loadbin
selesai, tekan tombol SW2 di papan ekspansi untuk melakukan reset ke setelan pabrik, lalu tekan tombol SW4 RESET di board utama untuk mulai menjalankan image.
Memvalidasi contoh
- Perangkat harus berfungsi sebagai perangkat serial USB di
komputer Anda. Anda dapat mencarinya di
/dev/
:
Anda dapat membuka konsol serial dengan skrip python3 detokenizer.py, yang merupakan skrip yang mendekode log token token Pigweed dari port serial. Misalnya, jika perangkat berada dils -la /dev/tty*
/dev/ttyACM0
:python3 ./scripts/detokenizer.py serial -i /dev/ttyACM0 -d out/debug/chip-k32w061-light-example-database.bin
- Untuk mereset papan ke setelan pabrik, tekan tombol SW2. LED2 dan LED3
akan berkedip bersama untuk sementara waktu. Anda akan melihat pesan seperti ini di
konsol serial:
[Info]Factory Reset Triggered. Push the RESET button within 6000 ms to cancel! [Info]Device will factory reset... [Info]Performing factory reset
- Untuk mengaktifkan/menonaktifkan status bohlam, klik tombol SW3. Tombol ini harus mengaktifkan LED D3.
Prasyarat komisi
Sebelum memesan board pengembangan Camera K32W, perhatikan hal-hal berikut:
- Iklan BLE harus diaktifkan sebelum perangkat dapat ditemukan dan di-commit dalam ekosistem Google Home. Untuk mengaktifkan sementara iklan (selama 15 menit, sesuai spesifikasi Matter), tekan tombol USERINTERFACE.
Tanpa modul akselerator hardware kriptografi, board pengembangan K32 mungkin tidak dapat menyelesaikan komisi sebelum alur habis dari sisi perangkat seluler Android. Anda dapat mengidentifikasi bahwa waktu tunggu habis menggunakan
adb logcat
dari komputer yang terpasang ke ponsel Anda. Saat waktu tunggu habis, Anda akan melihat pesan log seperti:Device connection failed. Error third_party/connectedhomeip/src/protocols/secure_channel/CASESession.cpp:275: CHIP Error 0x00000032: Timeout
Lihat Pemecahan masalah untuk informasi selengkapnya tentang cara menyiapkan dan menggunakan
adb
.
Langkah berikutnya
Setelah contoh Matter Anda berhasil dibuat, buat project developer.