Pigweed lets anyone contribute to the project, regardless of their employer. The Pigweed project reviews and encourages well-tested, high-quality contributions from anyone who wants to contribute to Pigweed.
Contributions to this project must be accompanied by a Contributor License Agreement (CLA).
To see any Contributor License Agreements on file or to sign a CLA, go to https://cla.developers.google.com/.
For more information about the Google CLA, see Contributor License Agreements.
All changes require review, including changes by project members.
For detailed instructions on how to contribute changes, see the Gerrit docs.
This project observes the following community guidelines:
We don’t have hardware-in-the-loop testing yet, so the following manual testing is needed before merging any change to this repo.
//BUILD.bazel
with updated deps on :refresh_compile_commands
.//.bazelrc
presubmit section with the new binaries you want built in CQ after the line build:presubmit -- \
//tools/airmaranth/device.py
with the proto imports under get_all_protos()
.:airmaranth_lib
in //tools/BUILD.bazel
For now, assumes you have a full setup:
In terminal 1: Run simulator $ bazelisk run //apps/blinky:simulator_blinky
In terminal 2:
$ bazelisk run //apps/blinky:simulator_console
>>> device.rpcs.pw.rpc.EchoService.Echo(msg='hello')
Return value shown in console is: (Status.OK, pw.rpc.EchoMessage(msg=’hello’))
In a terminal (or in VSCode by “Run target”):
$ bazelisk run //apps/blinky:flash
$ bazelisk run //apps/blinky:rp2040_console
RpcDevice BLINKY Toggling Led
In the console, run: >>> device.rpcs.pw.rpc.EchoService.Echo(msg='hello')
Return value shown in console is: (Status.OK, pw.rpc.EchoMessage(msg=’hello’))
$ bazelisk run //apps/blinky:rp2040_toggle_blinky
. The Pico LED should stop blinking.$ bazelisk run //apps/blinky:rp2040_toggle_blinky
again. The Pico LED should start blinking.$ bazelisk run \ @pigweed//targets/rp2040/py:unit_test_server \ -- --debug-probe-only
$ bazelisk test --config=rp2040 //...
Test runner successfully connects to the device. Tests run and pass.