blob: 31969a2196b3433e63b519f7970176737101321c [file] [log] [blame] [view]
# CHIP Ameba All Clusters Example
A prototype application that demonstrates device commissioning and cluster
control.
---
- [CHIP Ameba All Clusters Example](#chip-ameba-all-clusters-example)
- [Supported Device](#supported-device)
- [Building the Example Application](#building-the-example-application)
- [Commissioning and cluster control](#commissioning-and-cluster-control)
- [Commissioning](#commissioning)
- [BLE mode](#ble-mode)
- [IP mode](#ip-mode)
- [Cluster control](#cluster-control)
- [Running RPC Console](#running-rpc-console)
---
## Supported Device
The CHIP demo application is supported on
[Ameba RTL8722DM Board](https://www.amebaiot.com/en/amebad).
## Building the Example Application
- Pull docker image:
```
$ docker pull ghcr.io/project-chip/chip-build-ameba:74
```
- Run docker container:
```
$ docker run -it -v ${CHIP_DIR}:/root/chip ghcr.io/project-chip/chip-build-ameba:74
```
- 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.
1. Connect your device via USB and open Ameba Image Tool.
2. Select correct serial port and set baudrate as **115200**.
3. Browse and add the corresponding image files in the Flash Download list to
the correct locations
4. Click **Download** button.
## Commissioning and Cluster Control
## Commissioning
There are two commissioning modes supported by Ameba platform:
### BLE mode
1. In "connectedhomeip/config/ameba/args.gni"
- Set `chip_config_network_layer_ble = true`
2. In `connectedhomeip/src/platform/Ameba/CHIPDevicePlatformConfig.h`
- Set `#define CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE 1`
3. Build and Flash
4. The all-clusters example will run automatically after booting the Ameba
board.
5. Test with
[Chip-Tool](https://github.com/project-chip/connectedhomeip/tree/master/examples/chip-tool)
### IP mode
1. In `connectedhomeip/config/ameba/args.gni`
- Set `chip_config_network_layer_ble = false`
2. In `connectedhomeip/src/platform/Ameba/CHIPDevicePlatformConfig.h`
- Set `#define CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE 0`
3. Build and Flash
4. The all-clusters example will run automatically after booting the Ameba
board.
5. Connect to AP using `ATW0, ATW1, ATWC` commands
6. Test with
[Chip-Tool](https://github.com/project-chip/connectedhomeip/tree/master/examples/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](https://github.com/project-chip/connectedhomeip/tree/master/examples/chip-tool#using-the-client-to-send-matter-commands)
```
$ ./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](https://github.com/project-chip/connectedhomeip/tree/master/examples/common/pigweed/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))
```