Board Specifications
Raspberry Pi Pico is a low-cost, high-performance microcontroller board with flexible digital interfaces. Key features include:
- RP2040 microcontroller chip designed by Raspberry Pi in the United Kingdom
- Dual-core Arm Cortex M0+ processor, flexible clock running up to 133 MHz
- 264KB of SRAM, and 2MB of on-board Flash memory
- Castellated module allows soldering direct to carrier boards
- USB 1.1 with device and host support
- Low-power sleep and dormant modes
- Drag-and-drop programming using mass storage over USB
- 26 × multi-function GPIO pins
- 2 × SPI, 2 × I2C, 2 × UART, 3 × 12-bit ADC, 16 × controllable PWM channels
- Accurate clock and timer on-chip
- Temperature sensor
- Accelerated floating-point libraries on-chip
- 8 × Programmable I/O (PIO) state machines for custom peripheral support
Documentation
Documentation for the Raspberry Pi Pico board and the RP2040 microcontroller:
Raspberry Pi Pico Datasheet
An RP2040-based microcontroller board
RP2040 Datasheet
A microcontroller by Raspberry Pi
Hardware design with RP2040
Using RP2040 microcontrollers to build boards and products
Getting started with Raspberry Pi Pico
C/C++ development with Raspberry Pi Pico and other RP2040-based microcontroller boards
Raspberry Pi Pico C/C++ SDK
Libraries and tools for C/C++ development on RP2040 microcontrollers
Raspberry Pi Pico Python SDK
A MicroPython environment for RP2040 microcontrollers
The API level Doxygen documentation for the Raspberry Pi Pico C/C++ SDK is available as a micro-site.
Utilities
What is on your Pico?
If you have forgotten what has been programmed into your Raspberry Pi Pico, and the program was built using our Pico C/C++ SDK, it will usually have a name and other useful information embedded into the binary. You can use the Picotool command line utility to find out these details. Full instructions on how to use Picotool to do this are available in our 'getting started' documentation.
Debugging using another Raspberry Pi Pico
It is possible to use one Raspberry Pi Pico to debug another Pico. This is possible via picoprobe, an application that allows a Pico to act as a USB → SWD and UART converter. This makes it easy to use a Pico on non-Raspberry Pi platforms such as Windows, Mac, and Linux computers where you don’t have GPIOs to connect directly to your Pico. Full instructions on how to use Picoprobe to do this are available in our 'getting started' documentation.
Resetting Flash memory
Pico's BOOTSEL mode lives in read-only memory inside the RP2040 chip, and can't be overwritten accidentally. No matter what, if you hold down the BOOTSEL button when you plug in your Pico, it will appear as a drive onto which you can drag a new UF2 file. There is no way to brick the board through software. However, there are some circumstances where you might want to make sure your Flash memory is empty. You can do this by dragging and dropping a special UF2 binary onto your Pico when it is in mass storage mode.
Getting started with MicroPython
Drag and drop MicroPython
You can program your Pico by connecting it to a computer via USB, then dragging and dropping a file onto it, so we’ve put together a downloadable UF2 file to let you install MicroPython more easily.
- Download the MicroPython UF2 file by clicking the button below.
- Push and hold the BOOTSEL button and plug your Pico into the USB port of your Raspberry Pi or other computer. Release the BOOTSEL button after your Pico is connected.
- It will mount as a Mass Storage Device called RPI-RP2.
- Drag and drop the MicroPython UF2 file onto the RPI-RP2 volume. Your Pico will reboot. You are now running MicroPython.
You can access the REPL via USB Serial. Our MicroPython documentation contains step-by-step instructions for connecting to your Pico and programming it in MicroPython.

What is MicroPython?
MicroPython is a full implementation of the Python 3 programming language that runs directly on embedded hardware like Raspberry Pi Pico. You get an interactive prompt (the REPL) to execute commands immediately via USB Serial, and a built-in filesystem. The Pico port of MicroPython includes modules for accessing low-level chip-specific hardware.

Your official guide
If you’re new to MicroPython, our official guide, "Get started with MicroPython on Raspberry Pi Pico", is a great place to start. Learn the basics of MicroPython and physical computing, connect your Pico to displays and sensors, build alarms, reaction games, and more.

Documentation
Documentation for the Raspberry Pi Pico board and the RP2040 microcontroller:
Raspberry Pi Pico Datasheet
An RP2040-based microcontroller board
RP2040 Datasheet
A microcontroller by Raspberry Pi
Hardware design with RP2040
Using RP2040 microcontrollers to build boards and products
Getting started with Raspberry Pi Pico
C/C++ development with Raspberry Pi Pico and other RP2040-based microcontroller boards
Raspberry Pi Pico C/C++ SDK
Libraries and tools for C/C++ development on RP2040 microcontrollers
Raspberry Pi Pico Python SDK
A MicroPython environment for RP2040 microcontrollers
The API level Doxygen documentation for the Raspberry Pi Pico C/C++ SDK is available as a micro-site.
Getting started with C/C++
Blink an LED
The first program anyone writes when using a new microcontroller is to blink an LED on and off. The Raspberry Pi Pico comes with a single LED on-board (connected to GPIO pin 25). You can blink this on and off by,
- Download the Blink UF2
- Push and hold the BOOTSEL button and plug your Pico into the USB port of your Raspberry Pi or other computer.
- It will mount as a Mass Storage Device called RPI-RP2.
- Drag and drop the Blink UF2 binary onto the RPI-RP2 volume.
- Pico will reboot, and the on-board LED should start blinking.

Say 'Hello World'
The next program anyone writes is to say 'Hello World' over a USB serial connection.
- Download the 'Hello World' UF2.
- Push and hold the BOOTSEL button and plug your Pico into the USB port of your Raspberry Pi or other computer.
- It will mount as a Mass Storage Device called RPI-RP2.
- Drag and drop the 'Hello World' UF2 binary onto the RPI-RP2 volume. Pico will reboot
- Open a Terminal window and type:
sudo apt install minicom
minicom -b 115200 -o -D /dev/ttyACM0
You should see 'Hello, world!' printed to the Terminal

Raspberry Pi Pico C/C++ SDK
Our official C SDK can be used from the command line, or from popular integrated development environments like Visual Studio Code, Eclipse, and CLion. To get started, download our C/C++ SDK and Examples, and take a look at our 'getting started' documentation to get going. Or for a quick setup see the next section.
SDK Setup
For a full walk-through of how to get going with the C/C++ SDK, you should read our 'getting started' documentation. However, if you are intending to develop for Pico on a Raspberry Pi, then you can set up the C/C++ toolchain quickly by running our setup script from the command line.
Note: You should make sure the OS on your Raspberry Pi is up to date before running the setup script.
Documentation
Documentation for the Raspberry Pi Pico board and the RP2040 microcontroller:
Raspberry Pi Pico Datasheet
An RP2040-based microcontroller board
RP2040 Datasheet
A microcontroller by Raspberry Pi
Hardware design with RP2040
Using RP2040 microcontrollers to build boards and products
Getting started with Raspberry Pi Pico
C/C++ development with Raspberry Pi Pico and other RP2040-based microcontroller boards
Raspberry Pi Pico C/C++ SDK
Libraries and tools for C/C++ development on RP2040 microcontrollers
Raspberry Pi Pico Python SDK
A MicroPython environment for RP2040 microcontrollers
The API level Doxygen documentation for the Raspberry Pi Pico C/C++ SDK is available as a micro-site.















