# CHIP Ameba Pigweed Example Application This example demonstrates the usage of Pigweed module functionalities in an application. The example is based on [CHIP](https://github.com/project-chip/connectedhomeip), the [Pigweed](https://pigweed.googlesource.com/pigweed/pigweed) module, which is a collection of libraries that provide different functionalities for embedded systems, and the Ameba platform. You can use this example as a training ground for making experiments, testing Pigweed module features and checking what actions are necessary to fully integrate Pigweed in a CHIP project. Pigweed functionalities are being gradually integrated into CHIP. Currently, the following features are available: - **Echo RPC** - Creates a Remote Procedure Call server and allows sending commands through the serial port to the device, which makes echo and sends the received commands back. --- - [CHIP Ameba Pigweed Example Application](#chip-ameba-pigweed-example-application) - [Building the Example Application](#building-the-example-application) - [Testing the Example Application](#testing-the-example-application) --- ## Building the Example Application - Pull docker image: $ docker pull ghcr.io/project-chip/chip-build-ameba:81 - Run docker container: $ docker run -it -v ${CHIP_DIR}:/root/chip ghcr.io/project-chip/chip-build-ameba:81 - Setup build environment: $ source ./scripts/bootstrap.sh - To build the demo application: $ ./scripts/build/build_examples.py --target ameba-amebad-pigweed build The output image files are stored in `out/ameba-amebad-pigweed/asdk/image` folder. The bootloader image files are stored in `out/ameba-amebad-pigweed/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. ## Testing the Example Application 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) Reset Ameba board, then launch the chip-rpc console, where the Echo RPC commands can be invoked python -m pw_hdlc.rpc_console --device /dev/tty -b 115200 To send an Echo RPC message, type the following command, where the actual message is the text in quotation marks after the `msg=` phrase: rpcs.pw.rpc.EchoService.Echo(msg="hi")