OSS TanbouSign in with GitHub

Raspberry Pi Pico SDK

Build C and C++ firmware for RP-series microcontrollers with hardware APIs, libraries, and CMake tooling

About these scores

OSS scale score is an unbounded metric that log-compresses and weights Stars, Watchers, Forks, and Contributors. Discovery score is the current OSS scale score minus the score at discovery. Update pace is commits in the last 30 days, growth momentum is the OSS scale score difference within the recent observation window, and OSS health is a 0–100 rating based on available recency, Community Health, and release data.

Stars
4,986
Primary language
C
License
BSD-3-Clause
Repository last updated
Oct 1, 2026
On this page

Overview

Raspberry Pi Pico SDK supplies headers, libraries, and a CMake build system for C, C++, and assembly firmware targeting RP-series microcontrollers such as Pico and Pico 2. Programs use a conventional main() while the SDK covers PIO, timers, synchronization, networking, USB, and multicore features.

Features and best fit

Based on official documentation; not hands-on tested · Content checked:

Key features

Bring the main workload into one foundation

C-level APIs expose RP-series peripherals including PIO without requiring applications to look up register addresses, while fully commented register definitions remain available for low-level control.

Higher-level libraries cover timers, synchronization, Pico W networking, USB, and multicore programming, supporting projects from small firmware to runtimes and bootrom code.

Sources: [1]

Best fit

Where it fits

It fits embedded projects that need an official C/C++ path for Pico or Pico 2, including board selection, hardware access, and ELF/UF2 build outputs.

Sources: [1]

Before adoption

Constraints to check before adoption

The terse command-line path targets Linux and requires CMake 3.13+, Python 3, a native compiler, and an Arm GCC cross-compiler. Other boards require PICO_BOARD, and RP2350 RISC-V uses a separate toolchain and environment settings. The fixed-commit LICENSE.TXT carries BSD-3-Clause terms.

Sources: [1][2][3]

Official sources

  1. [1]Raspberry Pi Pico SDK README at reviewed commit(2026-10-04)
  2. [2]Raspberry Pi Pico SDK license at reviewed commit(2026-10-04)
  3. [3]Raspberry Pi Pico SDK reviewed build or package metadata(2026-10-04)
Supplemental curator note

This is the official C/C++ foundation for RP-series devices. Start with the pico-examples hello_world target for the intended board and verify the generated ELF/UF2 files and toolchain requirements.

Try it in 3 steps

  1. 1

    Clone the reviewed SDK commit

    Pin the reviewed SDK commit and initialize its library submodules.

    git clone https://github.com/raspberrypi/pico-sdk.git && git -C pico-sdk checkout 079c6f39023649b154152db30f1d781e884879bc && git -C pico-sdk submodule update --init
  2. 2

    Configure the reviewed official examples

    Change PICO_BOARD to pico2, pico_w, or another supported board when appropriate.

    git clone https://github.com/raspberrypi/pico-examples.git && git -C pico-examples checkout 0d62f75bafc2c8120d3276c3343d1a9195e909e9 && PICO_SDK_PATH="$PWD/pico-sdk" cmake -S pico-examples -B pico-examples/build -DPICO_BOARD=pico
  3. 3

    Build hello_serial

    Build the serial hello-world target and produce its ELF and UF2 outputs.

    cmake --build pico-examples/build --target hello_serial
Check the official README

Growth

Growth trends · Last 30 days

4,986 Stars

Trend data is still being collected.

Development activity

Last 90 days · weekly

Commits (last 30 days)
5
Open PRs
77

Development activity is still being collected.

Built with

Categories and tags

Tags

GitHub data

GitHub dataView detailed GitHub data
Stars
4,986
Forks
1,287
Watchers
118
Open issues
246
Contributors
263
Owner type
Organization
Primary language
C
Repository last updated
Oct 1, 2026
Write a related article

Share a guide or use case for this OSS in Markdown. Articles are published after administrator approval.

Report incorrect information

Tell us if any listing information is incorrect or outdated.

After reading this page, do you know what to do next?