Raspberry Pi Pico
RP2040 microcontroller board with 2 MB flash, 40-pin 2.54 mm castellated/through-hole DIP format (51 x 21 mm), micro-USB B for power/data and drag-and-drop mass-storage flashing, 3-pin SWD pads at the bottom edge. No module layer: the RP2040 chip is soldered directly on the board.
The Raspberry Pi Pico is an RP2040 microcontroller board with 2 MB of on-board flash, a micro-USB B port for power, data and drag-and-drop flashing, and a 40-pin 2.54 mm castellated/through-hole DIP footprint (51 x 21 mm) usable on a breadboard or as a surface-mount module. This page renders the MCUID data record: the complete J1/J2 header mapping, the GPIOs consumed by internal board functions, and every published field tied to a fixed official source.
Start developing
- Bring-up — the first-flash guide covers ports, cables and the first blink step by step.
- Chip capabilities and limits — the RP2040 chip page separates what the chip provides from what this board wires up.
Common questions this site answers
- Getting started with the Pico
- Pico vs Pico 2
- The board is not detected over USB
- 3.3 V and 5 V on the Pico
Also known as: raspberry pi pico, rpi pico, pico 1.
No module layer
Unlike Espressif evaluation boards, the Pico has no module layer: the RP2040 chip, flash (Winbond W25Q16JV) and power circuitry are soldered directly on the board. The compatible-modules list below is intentionally empty — we do not invent a module record for a board that has none.
GPIOs used by internal board functions
The datasheet’s pinout section lists four GPIOs that the board design itself consumes:
- GP25 — connected to the user LED (a single-color LED, not an addressable RGB LED)
- GP24 — VBUS sense (high when USB power is present)
- GP23 — SMPS power-save control (drive high for PWM mode / lower 3V3 ripple at light loads)
- GP29 — VSYS monitor in ADC mode (ADC3, measures VSYS/3)
Unlike GP0–GP22 and GP26–GP28, these four GPIOs are not brought out on the J1/J2 header — the board routes them to the LED, the SMPS, VBUS and the VSYS divider, and the 40-pin contact table reflects exactly that. The claim table pins each one to its datasheet wording.
Flashing: BOOTSEL and UF2
Hold BOOTSEL while powering the board (e.g. while plugging in USB) and it enumerates as a USB mass-storage device; drag a .uf2 file onto it to reprogram the flash. The USB boot code lives in on-chip ROM and cannot be accidentally overwritten. The 3-pin SWD pads at the bottom edge (SWDIO, GND, SWCLK — no power pin) offer the debug alternative.
ADC pins: the reverse-diode limit
The ADC-capable pins GP26-GP28 (and GP29) have an internal reverse diode to the 3V3 rail: never exceed 3V3 + ~300 mV on them, and do not drive them while the board is unpowered — current leaks through the diode into the 3V3 rail. Normal digital GPIOs 0-25 do not have this diode — a difference in input structure, not a 5 V tolerance claim; per-pin absolute maximums remain a datasheet matter.
Default UART/I2C/SPI pins
The pico-sdk board header (tag 2.3.1) defines the software defaults — a pin-function convention, not a hardware restriction:
| Function | Pin | Physical position |
|---|---|---|
| UART0 TX / RX | GP0 / GP1 | J1 pin 1 / 2 |
| I2C0 SDA / SCL | GP4 / GP5 | J1 pin 6 / 7 |
| SPI0 RX (MISO) | GP16 | J2 pin 21 |
| SPI0 CSn | GP17 | J2 pin 22 |
| SPI0 SCK | GP18 | J2 pin 24 |
| SPI0 TX (MOSI) | GP19 | J2 pin 25 |
Related board
The Raspberry Pi Pico 2 keeps the same pinout and board layout with an RP2350: officially stated hardware and software compatibility, double the flash and SRAM.
2D pinout
No revision selected — pick a revision above to read its documented summary. Revision-independent facts (including the onboard LED GPIO, where published) are stated in the published-fields table regardless of selection.
Datasheet figure titles identify the current production board as 'Raspberry Pi Pico Rev3'. The datasheet release history tracks the document, not PCB revisions, so no per-revision change table is published for the board. · Pico datasheet
J1 (left header, physical pins 1-20) contacts
| No. | Name | Type | GPIO | Function (official) |
|---|---|---|---|---|
| 1 | GP0 | I/O | 0 | GPIO0 (UART0 TX per SDK board header) |
| 2 | GP1 | I/O | 1 | GPIO1 (UART0 RX per SDK board header) |
| 3 | GND | G | — | Ground |
| 4 | GP2 | I/O | 2 | GPIO2 |
| 5 | GP3 | I/O | 3 | GPIO3 |
| 6 | GP4 | I/O | 4 | GPIO4 (I2C0 SDA per SDK board header) |
| 7 | GP5 | I/O | 5 | GPIO5 (I2C0 SCL per SDK board header) |
| 8 | GND | G | — | Ground |
| 9 | GP6 | I/O | 6 | GPIO6 |
| 10 | GP7 | I/O | 7 | GPIO7 |
| 11 | GP8 | I/O | 8 | GPIO8 |
| 12 | GP9 | I/O | 9 | GPIO9 |
| 13 | GND | G | — | Ground |
| 14 | GP10 | I/O | 10 | GPIO10 |
| 15 | GP11 | I/O | 11 | GPIO11 |
| 16 | GP12 | I/O | 12 | GPIO12 |
| 17 | GP13 | I/O | 13 | GPIO13 |
| 18 | GND | G | — | Ground |
| 19 | GP14 | I/O | 14 | GPIO14 |
| 20 | GP15 | I/O | 15 | GPIO15 |
J2 (right header, physical pins 21-40) contacts
| No. | Name | Type | GPIO | Function (official) |
|---|---|---|---|---|
| 21 | GP16 | I/O | 16 | GPIO16 (SPI0 RX / MISO per SDK board header) |
| 22 | GP17 | I/O | 17 | GPIO17 (SPI0 CSn per SDK board header) |
| 23 | GND | G | — | Ground |
| 24 | GP18 | I/O | 18 | GPIO18 (SPI0 SCK per SDK board header) |
| 25 | GP19 | I/O | 19 | GPIO19 (SPI0 TX / MOSI per SDK board header) |
| 26 | GP20 | I/O | 20 | GPIO20 |
| 27 | GP21 | I/O | 21 | GPIO21 |
| 28 | GND | G | — | Ground |
| 29 | GP22 | I/O | 22 | GPIO22 |
| 30 | RUN | I | — | RP2040 enable; internal ~50 kOhm pull-up to 3.3 V, short low to reset |
| 31 | GP26 | I/O | 26 | GPIO26 / ADC0 |
| 32 | GP27 | I/O | 27 | GPIO27 / ADC1 |
| 33 | AGND | G | — | Analog ground reference for GPIO26-29 (separate analog ground plane) |
| 34 | GP28 | I/O | 28 | GPIO28 / ADC2 |
| 35 | ADC_VREF | P | — | ADC power supply/reference, 3.3 V filtered on-board; can be driven by an external reference |
| 36 | 3V3 | P | — | 3.3 V output from on-board SMPS; keep external load below 300 mA |
| 37 | 3V3_EN | I | — | SMPS enable, pulled up to VSYS via 100 kOhm; short low to disable 3.3 V |
| 38 | GND | G | — | Ground |
| 39 | VSYS | P | — | Main system input voltage, 1.8 V to 5.5 V |
| 40 | VBUS | P | — | Micro-USB input voltage, nominally 5 V (0 V when USB unpowered) |
Ordering variants
| Part number | Module | Flash | PSRAM | Antenna | Status |
|---|---|---|---|---|---|
| No ordering variants recorded for this board yet. | |||||
Published fields
| Field | Value | Applies to | Status | Source | Notes |
|---|---|---|---|---|---|
onboard_led.gpio | 25 | All revisions | verified · cc40 · 2026-11-08 | Pico datasheet | Datasheet: 'GPIO25 OP Connected to user LED'. A single-color LED, NOT an addressable RGB LED (the pico-sdk board header defines PICO_DEFAULT_LED_PIN 25 and has no WS2812 pin). |
vbus_sense.gpio | 24 | All revisions | verified · cc40 · 2026-11-08 | Pico datasheet | 'GPIO24 IP VBUS sense - high if VBUS is present, else low'. |
smps_power_save.gpio | 23 | All revisions | verified · cc40 · 2026-11-08 | Pico datasheet | 'GPIO23 OP Controls the on-board SMPS Power Save pin'. Per the pico-sdk board header, drive high to force the power supply into PWM mode (lower ripple on 3V3 at light loads). |
vsys_monitor.gpio | 29 | All revisions | verified · cc40 · 2026-11-08 | Pico datasheet | 'GPIO29 IP Used in ADC mode (ADC3) to measure VSYS/3'. |
power.vsys_range | 1.8 V to 5.5 V | All revisions | verified · cc40 · 2026-11-08 | Pico datasheet | VSYS feeds the on-board buck-boost SMPS that generates 3.3 V; the 3V3 pin can power external circuitry but the load should stay below 300 mA. |
flash.size | 2 MB | All revisions | verified · cc40 · 2026-11-08 | Pico datasheet | 'RP2040 microcontroller with 2 MB Flash'; external circuitry uses a Winbond W25Q16JV quad-SPI flash chip. |
swd.connector | 3-pin castellated through-hole pads (SWDIO, GND, SWCLK), no power pin | All revisions | verified · cc40 · 2026-11-08 | Pico docs | Debug connector table: Pico and Pico 2 carry three castellated through-hole pads on the bottom edge; the connector carries SWDIO, GND and SWCLK only, the board must be powered separately over USB or VSYS. |
usb.flash_mode | hold BOOTSEL at power-up, then drag-and-drop a .uf2 file onto the exposed USB mass-storage drive | All revisions | verified · cc40 · 2026-11-08 | Pico datasheet | Datasheet section 1: 'Reprogramming the Pico Flash can be done using USB (simply drag and drop a file onto the Pico which appears as a mass storage device)'. Section 4.1 details the flow; the boot code lives in on-chip ROM, so it cannot be accidentally overwritten. |
Compatible modules
- No module layer: the chip is soldered directly on this board (see the chip link in the header above). We do not invent a module record for a board that has none.