Raspberry Pi RP2040#

This page explains Pigweed’s support for the Raspberry Pi RP2040 microcontroller and for boards built on top of the RP2040, such as the Raspberry Pi Pico.

Intended usage#

Pigweed’s mission is to help large teams develop embedded systems sustainably, robustly, and rapidly. Our support for the RP2040 revolves around making it easier for these teams to develop complex prototypes or mass market products on top of the RP2040. Our main goals are to make it easy to:

  • Do your end-to-end development lifecycle (building, flashing, testing, etc.) in Bazel.

  • Author your embedded system in portable C++. You can write most of your system on top of Pigweed’s hardware-agnostic modules. If there’s anything not covered by Pigweed’s modules, you can fallback to using the official C/C++ SDK directly.

If you’re building relatively simple stuff solely for the RP2040 and just want to get everything working very quickly and easily, then Pigweed probably won’t be a good fit for you. You’ll probably be happier with the official MicroPython SDK or the official C/C++ SDK.


The RP2040 showcase is our work-in-progress demonstration of using the RP2040, Bazel, and Pigweed together. The showcase is scheduled to be completed in July 2024.


Most Pigweed modules work on all hardware platforms. A few areas such as I2C require integrating with a specific Pigweed module.



Time primitives


GPIO (digital I/O)






Basic I/O for bringup and debugging