CHIP Ameba All Clusters Example#
A prototype application that demonstrates device commissioning and cluster control.
Supported Device#
The CHIP demo application is supported on Ameba RTL8722DM Board.
Building the Example Application#
Pull docker image:
``` $ docker pull ghcr.io/project-chip/chip-build-ameba:94 ```
Run docker container:
``` $ docker run -it -v ${CHIP_DIR}:/root/chip ghcr.io/project-chip/chip-build-ameba:94 ```
Setup build environment:
``` $ source ./scripts/bootstrap.sh ```
To build the demo application:
``` $ ./scripts/build/build_examples.py --target ameba-amebad-all-clusters build ```
The output image files are stored in
out/ameba-amebad-all-clusters/asdk/image
folder.The bootloader image files are stored in
out/ameba-amebad-all-clusters/asdk/bootloader
folder.After building the application, Ameba Image Tool is used to flash it to Ameba board.
Connect your device via USB and open Ameba Image Tool.
Select correct serial port and set baudrate as 115200.
Browse and add the corresponding image files in the Flash Download list to the correct locations
Click Download button.
Commissioning and Cluster Control#
Commissioning#
There are two commissioning modes supported by Ameba platform:
BLE mode#
In “connectedhomeip/config/ameba/args.gni”
Set
chip_config_network_layer_ble = true
In
connectedhomeip/src/platform/Ameba/CHIPDevicePlatformConfig.h
Set
#define CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE 1
Build and Flash
The all-clusters example will run automatically after booting the Ameba board.
Test with Chip-Tool
IP mode#
In
connectedhomeip/config/ameba/args.gni
Set
chip_config_network_layer_ble = false
In
connectedhomeip/src/platform/Ameba/CHIPDevicePlatformConfig.h
Set
#define CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE 0
Build and Flash
The all-clusters example will run automatically after booting the Ameba board.
Connect to AP using
ATW0, ATW1, ATWC
commandsTest with Chip-Tool
Cluster Control#
After successful commissioning, use the OnOff cluster command to control the OnOff attribute. This allows you to toggle a parameter implemented by the device to be On or Off.
Via Chip-Tool
``` $ ./chip-tool onoff on ${NODE_ID_TO_ASSIGN} 1 $ ./chip-tool onoff off ${NODE_ID_TO_ASSIGN} 1 ```
Running RPC Console#
Connect a USB-TTL Adapter as shown below
``` Ameba USB-TTL A19 TX A18 RX GND GND ```
Build the chip-rpc console
As part of building the example with RPCs enabled the chip_rpc python interactive console is installed into your venv. The python wheel files are also created in the output folder: out/debug/chip_rpc_console_wheels. To install the wheel files without rebuilding:
``` $ pip3 install out/debug/chip_rpc_console_wheels/*.whl ```
Launch the chip-rpc console after resetting Ameba board
``` $ chip-console --device /dev/tty<port connected to USB-TTL adapter> -b 115200 ```
Get and Set lighting directly using the RPC console
```python rpcs.chip.rpc.Lighting.Get() rpcs.chip.rpc.Lighting.Set(on=True, level=128, color=protos.chip.rpc.LightingColor(hue=5, saturation=5)) ```