$ repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-scarthgap -m imx-6.6.23-2.0.0.xml
$ repo sync
$ cd sources
# download meta-smart-appliance layer
$ git clone ssh://git@bitbucket.sw.nxp.com/mpucnse/meta-smart-appliance.git
$ git checkout Q2
# download meta-matter layer
$ git clone https://github.com/nxp-imx/meta-nxp-connectivity.git -b imx_matter_2024_q2
MACHINE=imx93-9x9-lpddr4-qsb DISTRO=fsl-imx-wayland source sources/meta-smart-appliance/tools/imx-setup-smart-appliance.sh -b build-imx93qsb
$ bitbake core-image-minimal
- i.MX93 9x9 QSB board (need HW rework for low power)
- IW611 Ubox WIFI/BT M.2 module
- LCD module: Adafruit DPI TFT suite
- Logi C920e UVC camera (any camera support VGA/YUYV is ok)
- USB Type-C HUB (for UVC and Touch screen)
- USB current metering (if you want to measure board power)
- WIFI Access Point
- OTBR & Matter-Zigbee bridge
- i.MX93 11x11 EVK
- IW612 WIFI/BT module
- K32W061 USB dongle (for Zigbee bridge)
- Device node
- Matter Bulb light
- Zigbee temperature sensor
Dowload flash.bin from nxp.com
-
Embedded Linux for i.MX Applications Processors -> Linux Past Releases -> Linux 6.6.23_2.0.0 -> i.MX 93 EVK, QSB, 14x14 -> Unzip LF_v6.6.23-2.0.0_images_IMX93EVK.zip -> imx-boot-imx93-9x9-lpddr4-qsb-sd.bin-flash_singleboot
-
copy the imx-boot-imx93-9x9-lpddr4-qsb-sd.bin-flash_singleboot to the path same to uuu.exe
-
burn emmc boot fuse (This is for emmc fast boot only)
1.Flash the boot image using UUU tool sudo uuu -b emmc ./imx-boot-imx93-9x9-lpddr4-qsb-sd.bin-flash_singleboot 2.Boot i.MX93qsb board and burn emmc boot fuse at uboot phase u-boot=> fuse prog 3 0 0x000E0000 Input y or Y when you see the log "Really perform this fuse programming? <y/N>" 3.You can check the burning result by the command below u-boot=> fuse read 3 0 Reading bank 3: Word 0x00000000: 000e0000
Go to "flash the image" directly if you do not need emmc fast boot.
-
flash the image
1. change the core-image-minimal-imx93-9x9-lpddr4-qsb.rootfs.wic in uuu.auto-imx93-9x9-lpddr4-qsb to the name of compiled wic 2. copy tmp/deploy/images/imx93-9x9-lpddr4-qsb/imx-boot-imx93-9x9-lpddr4-qsb-sd.bin-flash_singleboot to the path same to uuu.exe and rename it to falcon 3. uuu.exe uuu.auto-imx93-9x9-lpddr4-qsb
i.MX 93 pre-built binary demo file for Matter (Q2 2024)
- Download K32W061DK6 SDK 2.6.11
- Install DK6Programmer.exe
- path: SDK_2_6_11_K32W061DK6\tools\JN-SW-4407-DK6-Flash-Programmer\JN-SW-4407 DK6 Production Flash Programmer v4564.exe
# Flash imx93 matter image
uuu –b emmc_all imx-image-multimedia-imx93evk-matter.wic
# Flash K32W061 Zigbee Bridge image to K32W061 dongle
1. Put DK6Programmer.exe and ControlBridge_Full_GpProxy_1000000.bin under the same folder
2. Connect the K32W dongle to PC and check <COM_PORT> through device manager
3. DK6Programmer.exe -s <COM_PORT> -e FLASH -p ControlBridge_Full_GpProxy_1000000.bin
# example: DK6Programmer.exe -s COM10 -e FLASH -p ControlBridge_Full_GpProxy_1000000.bin
# Copy imx-chip-bridge-app from imx93QSB to imx93EVK
scp usr/bin/imx-chip-bridge-app root@${imx93_ip}:/root
# Copy matter setup script to imx93EVK
scp meta-smart-appliance/recipes-application/application/files/imx93_matter.sh root@${imx93_ip}:/root
-
Modify the imx93_matter.sh SSID and WIFI_PWD, Must connect to 2.4G WIFI. Otherwise, Some devices may not be able to join to Matter network.
-
Create folder to save matter & Zigbee Bridge network information
mkdir -p /usr/share/matter rm -rf /usr/share/matter/* mkdir -p /usr/share/iot rm -rf /usr/share/iot/*
-
Setup OTBR and zigbee bridge on i.MX93 EVK (Recommended to connect the antenna)
# sync current time date -s 2024-09-20 date -s 14:44:30 # Run OTBR script,If OTBR setup success, should saw the thread interface wpan0 after run ifconfig # default SSID/PWD, SSID=IMXSE-5G-1 WIFI_PWD=12345678. If different, modify it in imx93_matter.sh ./imx93_matter.sh init # Run Matter-Zigbee bridge app chmod a+x imx-chip-bridge-app ./imx-chip-bridge-app #(Do not quit)
-
connect to zigbee temperature sensor
# 1. Input "1" on bridge terminal after running mx-chip-bridge-app-persist, set Zigbee network as permit join status. # 2. Factory reset Zigbee temperature sensor(Press and hold the reset button for 5s. Please read the Production user guide for detail) ## if successful you will see these logs [95.868989][353:357] CHIP:DMG: Endpoint 1, Cluster 0x0000_001D update version to f66c120 [95.869027][353:357] CHIP:DMG: Endpoint 0, Cluster 0x0000_001D update version to 8da25478 [95.869041][353:357] CHIP:DL: Device[Zigbee TempSensor 59231]: ONLINE [95.869162][353:357] CHIP:DL: Added device Zigbee TempSensor 59231 Saddr e75f to dynamic endpoint 3 (index=0)
-
kill lvgl_demo
killall lvgl_demo
-
clear old matter network data
rm -rf /usr/share/matter/* rm -rf /tmp/chip_*
-
sync current time
date -s 2024-09-20 date -s 14:44:30 hwclock -w
-
Matter over wifi bulb commission
# Get Matter Bulb INFO from QR code # Use any smartphone app that can QR code to scan Bulb QR code, get MT:XXXX # For example, get the result is "MT:ENA279BN163VTL1UV10" # Parse QR code on i.MX93-9X9-QSB (smart-appliance) $ chip-tool payload parse-setup-payload MT:ENA279BN163VTL1UV10 [1713263718.503182][1051:1051] CHIP:SPL: Version: 0 [1713263718.503200][1051:1051] CHIP:SPL: VendorID: 5120 [1713263718.503210][1051:1051] CHIP:SPL: ProductID: 1020 [1713263718.503218][1051:1051] CHIP:SPL: Custom flow: 0 (STANDARD) [1713263718.503231][1051:1051] CHIP:SPL: Discovery Bitmask: 0x02 (BLE) [1713263718.503241][1051:1051] CHIP:SPL: Long discriminator: 974 (0x3ce) <-- Descriptor [1713263718.503250][1051:1051] CHIP:SPL: Passcode: 86907143 <-- PIN CODE # Bulb Factory Rest,switching on and off 4 times, the light turns white and flashes. Stay the turn on status. chip-tool interactive start --paa-trust-store-path /etc/dcl_paas --storage-directory /usr/share/matter >>> pairing ble-wifi 1234 ${SSID} ${WIFI_PWD} ${PIN CODE} ${Descriptor} # Example: >>> pairing ble-wifi 1234 IMXSE 12345678 86907143 974 # Test to control Bulb on/off >>> onoff toggle 1234 1
-
Matter-Zigbee Bridge commission
# commnissioning >>> pairing onnetwork-commissioning-mode 8888 20202021 # Test read sensor data >>> temperaturemeasurement read measured-value 8888 3
Because the network configuration was completed in the previous step, there is no need to configure the network for subsequent displays.
1.Setup OTBR on i.MX93 EVK
./imx93_matter.sh init
./imx-chip-bridge-app
2.boot i.MX93-9X9-QSB board
You can control the Bulb if you can see the temperature with a numerical value.