Pigweed#
Sustained, robust, and rapid embedded product development for large teams
Get started#
Understand the core components of Pigweed and determine whether Pigweed is a good fit for your project.
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 in a guided walkthrough.
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.
Set up a C++-based Zephyr project, set up GitHub Actions, integrate Pigweed into an existing Bazel project, and more.
What’s new in Pigweed?#
Highlights:
Rust detokenization support in pw_tokenizer - The initial support includes loading token databases from CSV and binary formats, configuring custom prefix characters, and detokenizing text. Error formatting behavior matches the C++ version of pw_tokenizer.
New pw_assert crate - The new Rust crate provides crash-safe assert and panic macros for embedded systems where standard library panics might not be suitable, or where specific logging/recovery behavior is needed.
New pw_time crate - The initial Rust crate supports time, instants, and durations.
In-memory protobuf serialization with BufferEncoder - The new
BufferEncoderC++ class provides zero-copy in-place message serialization with significant speedups.C++20 coroutine generator support in pw_async2 - pw_async2 now supports C++20 coroutine generators yielding asynchronous value streams via
co_yieldandNext().
And more! See What’s new in Pigweed: June 2026.
What is Pigweed?#
Over 150 libraries (“modules”) enabling you to use modern C++ and software development best practices without compromising performance, code size, or memory
Easier automated building, testing, and linting for Bazel, GN, and CMake projects
Hermetic and reproducible development environments for your entire team - no more struggling with toolchains and the “it worked on my machine” problem
Who’s using Pigweed?#
Pigweed has shipped in millions of devices, including Google’s suite of Pixel devices, Nest thermostats, satellites, and autonomous aerial drones.
Showcase: pw_console#
pw_console is our multi-purpose, pluggable REPL and log viewer. It’s designed to be a complete development and manufacturing solution for interacting with hardware devices via pw_rpc over a pw_hdlc transport. Gone are the days of hacking together a REPL and log viewer for each new project!
Using pw_console to interact with a device#
Talk to us#
For real-time discussion with the Pigweed team, head over to our Discord.
Our next Pigweed Live is Mon Jul 27, 2026 1PM (PDT). Please join us to discuss what’s new in Pigweed and anything else Pigweed-related that’s on your mind. Join our mailing list to receive an invite to the next meeting.
Found a bug? Got a feature request? Please create a new issue in our tracker.