whatisgithub

What is pico-sdk?

raspberrypi/pico-sdk — explained in plain English

Analysis updated 2026-06-26

4,785CAudience · developerComplexity · 3/5Setup · moderate

In one sentence

The official C/C++ development kit for Raspberry Pi Pico boards, providing libraries, build tools, and examples to program all hardware features from GPIO to Wi-Fi.

Mindmap

mindmap
  root((pico-sdk))
    Hardware covered
      GPIO and timers
      USB and Wi-Fi
      Bluetooth
      Programmable IO
    Languages
      C
      C plus plus
      Assembly
    Build system
      CMake setup
      Four link methods
      VS Code extension
    Resources
      pico-examples
      pico-extras
      PDF reference
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Write a C program to control GPIO pins, timers, or USB on a Raspberry Pi Pico board.

USE CASE 2

Connect a Pico board to Wi-Fi or Bluetooth using built-in SDK libraries.

USE CASE 3

Define a custom serial communication protocol using the Programmable IO feature.

USE CASE 4

Set up a CMake project that links against the SDK and compiles firmware ready to flash.

What is it built with?

CC++AssemblyCMake

How does it compare?

raspberrypi/pico-sdkkoute/bytehoundharbourmasters/shipwright
Stars4,7854,7824,789
LanguageCCC
Setup difficultymoderatemoderatemoderate
Complexity3/54/53/5
Audiencedeveloperdevelopergeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 1h+

Requires CMake and the ARM cross-compilation toolchain, a VS Code extension simplifies the full setup.

So what is it?

The Raspberry Pi Pico SDK is the official toolkit for writing programs that run on Raspberry Pi Pico boards and other devices built around the same RP-series chip. If you want to make a Pico do something, whether blinking an LED or connecting to Wi-Fi, this is the starting point. It gives you the code libraries, header files, and build configuration you need so you can focus on writing your own program rather than figuring out how the hardware works at a low level. Programs written with this SDK use standard C, C++, or assembly, starting from a familiar main() entry point. This means developers coming from everyday software backgrounds can get going without learning an entirely new programming model. The SDK covers all the hardware features of the RP-series chip, including timers, USB, Wi-Fi, Bluetooth, and a feature called Programmable IO that lets you define custom communication protocols in software. If you do want to touch the hardware at the register level, the SDK includes fully commented register definitions so you do not have to dig through datasheets. Setting up a project involves a build tool called CMake. You point it at the SDK, write a short configuration file listing your source files and which libraries to include, and CMake handles compiling everything into a file you can load onto the board. The README walks through four different ways to connect your project to the SDK, from cloning it locally to pulling it automatically from GitHub at build time. For people who prefer a graphical environment, there is an official Visual Studio Code extension that wraps the whole setup process. More complete documentation, including a full PDF reference and an online API browser, is available through the official Raspberry Pi documentation site. The project also points to a companion repository called pico-examples, which contains ready-to-build sample programs covering common tasks. If the SDK itself does not yet include a library you need, a separate pico-extras repository holds additional work that is still maturing before inclusion.

Copy-paste prompts

Prompt 1
Show me a minimal CMakeLists.txt for a Raspberry Pi Pico project using pico-sdk to blink an LED.
Prompt 2
How do I connect to Wi-Fi using the Raspberry Pi Pico SDK in C?
Prompt 3
Give me a pico-sdk example in C that reads a GPIO pin and prints the value over USB serial.
Prompt 4
How do I add pico-sdk as a Git submodule and configure CMake to find it in my project?

Frequently asked questions

What is pico-sdk?

The official C/C++ development kit for Raspberry Pi Pico boards, providing libraries, build tools, and examples to program all hardware features from GPIO to Wi-Fi.

What language is pico-sdk written in?

Mainly C. The stack also includes C, C++, Assembly.

How hard is pico-sdk to set up?

Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.

Who is pico-sdk for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.