IMPORTANT: You must be part of the Matter Private Beta Program to start developing Matter devices and apps in the Google Home Developer Console. Apply now

Realtek

Ameba D

This example functions as a light bulb device type, with on/off capabilities. The steps were verified on Ameba D board.

Initial setup

  1. Clone the Ameba SDK and checkout interop_testing_te9:
    mkdir ameba_matter
    cd ameba_matter
    git clone -b interop_testing_te9 https://github.com/pankore/ambd_sdk_with_chip_non_NDA.git
  2. Clone the connectedhomeip repository and checkout the specific SHA for the Ameba SDK:
    git clone https://github.com/project-chip/connectedhomeip.git
    cd connectedhomeip
    git switch interop_testing_te9
  3. Make sure you have the folder structure like so:
    ameba_matter/
    ├── ambd_sdk_with_chip_non_NDA
    └── connectedhomeip

Build the images

  1. Initialize the connectedhomeiprepo:
    git submodule update --init --recursive
    source scripts/activate.sh
  2. Build the lighting-app
    $PWD/../ambd_sdk_with_chip_non_NDA/project/realtek_amebaD_va0_example/GCC-RELEASE/build.sh $PWD ninja $PWD/out lighting-app
    cd out ; ninja
    1. The output of the build is found at:
      connectedhomeip/out/asdk/image/km0_km4_image2.bin

Flash the board

Set up the Ameba D hardware as shown in the diagram:

image

  1. Go to the appropriate ImageTool directory for your computer. ImageTool is used for flashing the example to your board. All ImageTool versions are located at ambd_sdk_with_chip_non_NDA/tools/AmebaD/:
    OS ImageTool location
    Linux /Image_Tool_Linux/AmebaD_ImageTool
    MacOS 10.X /Image_Tool_MacOS/MacOS_v10/Ameba_1-10_MP_ImageTool_MacOS
    MacOS 11 /Image_Tool_MacOS/MacOS_v11/Ameba_1-10_MP_ImageTool_MacOS11
  2. For Linux, go to the /Image_Tool_Linux/AmebaD_ImageTool directory:
    cd ../../ambd_sdk_with_chip_non_NDA/tools/AmebaD/Image_Tool_Linux/
    1. Change the tool permissions if needed. For example, on Linux:
      chmod +x AmebaD_ImageTool
    2. Check the tool usage:
      ./AmebaD_ImageTool -help
  3. Flash the image to the Ameba D board. Connect the Micro-B USB to the board and connect the other side to the PC. Check the UART port and modify it if the UART port is not assigned to /dev/ttyUSB0:
    ./AmebaD_ImageTool -add device /dev/ttyUSB0
    command finish
    total device to add 1
    /dev/ttyUSB0 existed
  4. Copy the three Ameba D images you built earlier to the current directory (where ImageTool is):
    cp ../../../../connectedhomeip/out/asdk/bootloader/km0_boot_all.bin ./
    cp ../../../../connectedhomeip/out/asdk/bootloader/km4_boot_all.bin ./
    cp ../../../../connectedhomeip/out/asdk/image/km0_km4_image2.bin ./
  5. Combine the three images to generate Image_all.bin:
    ./AmebaD_ImageTool -combine km0_boot_all.bin 0x0000 km4_boot_all.bin 0x4000 km0_km4_image2.bin 0x6000
    command finish
    Combine Image Success
  6. Verify that the final setting has been set:
    ./AmebaD_ImageTool -show
    command finish
    Current Settings
    CPU      : AmebaD
    UART     : 1500000 bps parity:N flow control:False
    FW NAME  : Image_All.bin
    FW ADDR  : 0x08000000
    FW LEN   : 0
    OPTS     : keep data    :   True
           keep wifi cal:   True
           verification :   False
           reset device :   False
           factory mode :   False
           save log     :   True
    Port Settings
    PORT 0: active:True device:/dev/ttyUSB0
    PORT 1: active:False device:NONE
    PORT 2: active:False device:NONE
    PORT 3: active:False device:NONE
    PORT 4: active:False device:NONE
    PORT 5: active:False device:NONE
    PORT 6: active:False device:NONE
    PORT 7: active:False device:NONE
    PORT 8: active:False device:NONE
    PORT 9: active:False device:NONE
  7. On the Ameba D board, hold the UART_DOWNLOAD button and press the RESET button, then release the UART_DOWNLOAD button to enter the download mode.
  8. Flash the image to the Ameba D board:
    ./AmebaD_ImageTool -download
    log file = log_2021_11_15_23_42_10.txt
    [100, 0, 0, 0, 0, 0, 0, 0, 0, 0]command finish
    
    status: ['OK 53.0s', 'Check PORT', 'Off', 'Off', 'Off', 'Off', 'Off', 'Off', 'Off', 'Off']
    close log file

Reset the board

  1. Press the RESET button on the board to reboot the system.
  2. Open a serial console to the board with minicom or screen. For example, if the device is at /dev/ttyUSB0:
    screen /dev/ttyUSB0 115200
  3. If the Ameba D board has been paired before, it's recommended that you factory reset it before continuing. Enter ATS# in the console to do so:
    #
    ATS#
    xPortGetTotalHeapSize = 204800
    xPortGetFreeHeapSize = 104512
    xPortGetMinimumEverFreeHeapSize = 98176
    _[dct_init_valid_module]: erase flash address 0x001ec00

Next steps

When your Matter example has been successfully built, create a developer project.