Raspberry Pi RP2040 and RP2350#
This page explains Pigweed’s support for the Raspberry Pi RP2040 and Raspberry Pi RP2350 micro-controllers, and for boards built on top of them, such as the Raspberry Pi Pico and Raspberry Pi Pico 2 (collectively we call them “RP2s”, and just “Pico”) .
Important
Some parts of Pigweed such as module names and other configuration files still identify themselves as for the “rp2040”, as that was first released, and so first supported. However the rp2350 is similar enough that the two can share most source code, so an rp2350 build will use them.
That said, you do have to specify the correct target name when using a
--config or --chip argument to certain commands, as there are details
such as the memory map that are incompatible.
Intended usage#
Pigweed’s mission is to help large teams develop embedded systems sustainably, robustly, and rapidly. Our support for the RP2s revolves around making it easier for these teams to develop complex prototypes or mass market products on top of the RP2s. 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 RP2s, 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.
Examples#
The Sense showcase is our work-in-progress demonstration product for using Pigweed with a Pico or Pico 2.
Modules#
Most Pigweed modules work on all hardware platforms. A few areas such as I2C require integrating with a specific Pigweed module.
Description |
Module |
|---|---|
Time primitives |
|
GPIO (digital I/O) |
|
I2C |
|
SPI |
|
Basic I/O for bringup and debugging |