blob: d997bccd5353c45488d2171c6dd16c68eec65c15 [file] [log] [blame] [view]
# 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:50
- Run docker container:
$ docker run -it -v ${CHIP_DIR}:/root/chip ghcr.io/project-chip/chip-build-ameba:50
- 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<USB-TTL port> -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")