Quickstarts#

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.

Install Bazel

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!

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#

Bazel quickstart

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.

Zephyr

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.

Examples

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.

Kudzu

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.

Bazel

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

GitHub Actions

How to set up GitHub Actions to build and test your Bazel-based Pigweed project.