Quickstart#
Configure your workstation for Pigweed development#
Pigweed does its best to bundle all its dependencies into an isolated environment using pw_env_setup. While this doesn’t eliminate all prerequisites, it greatly accelerates new developer onboarding.
The first-time setup guides below are required for any Pigweed-based project, but only need to be done once per machine.
Prerequisites, first-time setup, and support notes for Linux, macOS, and Windows.
Recommendations on how to install Bazel.
Tour of Pigweed#
Want a guided, hands-on tour of Pigweed’s core features? Try our brand new Tour of Pigweed!
Explore key Pigweed features, such as hermetic building, full C++ code intelligence in VS Code, communicating with devices over RPC, host-side and on-device unit tests, and lots more.
Create a Pigweed-based project#
Fork our minimal, Bazel-based starter project to create a new Pigweed project from scratch. The project includes a basic blinky LED program that runs on Raspberry Pi Picos and can be simulated on your development host.
Learn how to set up a C++-based Zephyr project that is ready to use
Pigweed and then build the app with Zephyr’s native_sim board.
Check out the examples repo, a repository that outlines the recommended way to use Pigweed in a broader GN-based project. Note that Bazel is the recommended build system for new projects using Pigweed, whereas the examples repo uses GN.
Study the code of Kudzu, a just-for-fun Maker Faire 2023 project that demonstrates complex Pigweed usage. This project also uses GN.
Integrate Pigweed into an existing project#
Pigweed is modular: you can use as much or as little of it as you need.
Fork our minimal, Bazel-based starter project to create a new Pigweed project from scratch. The project includes a basic blinky LED program that runs on Raspberry Pi Picos and can be simulated on your development host.
Learn how to use Pigweed in an existing Bazel project: add Pigweed as a dependency, start using Pigweed modules, and set up static and runtime analysis.
Learn how to use Pigweed in an existing CMake project: add Pigweed as a dependency, configure backends, and use modules.
Learn how to set up GitHub Actions to build and test your Bazel-based Pigweed project.