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.

  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

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")