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.

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.