Skip to content

nxp-imx-support/meta-smart-appliance

Repository files navigation

HOW to add the meta layer of smart appliance

Download imx-6.6.23-2.0.0 yocto

$ 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

Add meta-smart-appliance layer and meta-nxp-connectivity layer

$ 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

Build

$ bitbake core-image-minimal

Demo setup

HARDWARE

imx93qsb Smart-appliance

  • 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)

imx93evk OTBR-Zigee bridge

  • 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

Software

Smart-appliance flash steps [imx93qsb]

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
    

OTBR-Zigee bridge flash steps [imx93evk & k32w061]

1. Download Matter Image

i.MX 93 pre-built binary demo file for Matter (Q2 2024)

2. Download K32W0 Zigbee Bridge Image

Zigbee control bridge

3. Install DK6Programmer.exe

  • 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

4. Flash images (Host Side)

# 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

Run demo

1. setup otbr & Zigbee bridge (IMX93EVK side)

  • 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)

2. connect matter devices (IMX93qsb side)

  • 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

3. reboot qsb board (IMX93qsb side)

Second show demo

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.

About

Smart refrigerator appliance

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published