Get Started#

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.

First-time setup

Prerequisites, first-time setup, and support notes for Linux, macOS, and Windows.

Create a Pigweed-based project#


Fork our minimal, Bazel-based starter code. Bazel is the recommended build system for new projects using Pigweed.


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.

Upstream Pigweed

Get set up to contribute to upstream Pigweed.

Use Pigweed modules in an existing project#

Pigweed is modular: you can use as much or as little of it as you need.


Instructions for how to use a Pigweed module in an existing Bazel project.