Perhatian! Program Pratinjau Developer yang baru akan segera diluncurkan. Daftar di sini dan jadilah salah satu developer pertama yang mencoba alat baru serta berikan masukan.

ABCD

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

  1. Pastikan Anda telah menginstal Python3 dan paket ini. Langkah-langkah dalam dokumen ini divalidasi dengan Python 3.8.
  2. Download dan instal K32W061 MCUXpresso SDK 2.6.9.
  3. 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/
  4. 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
    

  5. Contoh ini menggunakan konfigurasi "Generic Switch Node". Pastikan jumper JP4/JP7 berada di posisi paling kiri (LPC-JN UART0):
    gambar

  1. Download dan instal JLink di komputer.
  2. Di board, pastikan DFU dipilih di jumper BOOT di samping port USB, lalu hubungkan board ke komputer dengan kabel USB mini.
    gambar
  3. Download dan instal LPCScrypt di komputer Anda.
    1. Untuk MacOS, klik dua kali pada paket yang didownload untuk menginstalnya.
    2. 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
  4. 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
  5. 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)
  6. Cabut board dan alihkan pelompat BOOT kembali ke NORMAL. Board Anda kini telah dikonfigurasi ulang untuk menggunakan JLink guna melakukan flash image.
    gambar

Membuat image

  1. Siapkan repo:
    source ./scripts/activate.sh
  2. Instal dependensi:
    pip3 install pycrypto pycryptodome
  3. 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 untuk VENDOR_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
  4. Periksa PRODUCT_ID pada contoh konfigurasi project Anda (CHIPProjectConfig.h). Nilai PRODUCT_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 untuk PRODUCT_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
  5. Build aplikasi pencahayaan:
    1. Jika board ekspansi OM15082 terpasang ke board K32W, pastikan untuk menyetel argumen build chip_with_OM15082 ke 1:
      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
    2. Jika board ekspansi OM15082 tidak terpasang, hapus argumen build chip_with_OM15082:
      cd 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
      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 menetapkan chip_pw_tokenizer_logging ke true. Skrip detokenizer akan diperlukan untuk mengurai skrip yang di-hash. Lihat di sini untuk mengetahui informasi selengkapnya.
  6. 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:

    1. 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"
    2. 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)"
  7. 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

  1. Luncurkan command line JLink dengan board yang terhubung melalui kabel USB mini:
    JLinkExe -device K32W061 -if SWD -speed 4000 -autoconnect 1
  2. 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.
  3. 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.
  4. Keluar dari JLink CLI dengan mengetik exit.
  5. Luncurkan ulang JLink:
    JLinkExe -device K32W061 -if SWD -speed 4000 -autoconnect 1
  6. 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.
  7. 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

  1. Perangkat harus berfungsi sebagai perangkat serial USB di komputer Anda. Anda dapat mencarinya di /dev/:
    ls -la /dev/tty*
    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 di /dev/ttyACM0:
    python3 ./scripts/detokenizer.py serial -i /dev/ttyACM0 -d out/debug/chip-k32w061-light-example-database.bin
  2. 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
  3. 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:

  1. 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.
  2. 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.