CHIP Ameba Pigweed Example Application#
This example demonstrates the usage of Pigweed module functionalities in an application.
The example is based on CHIP, the 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.
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-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.
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.
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
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")