The Raspberry Pi Pico features 26 multi-function GPIO pins operating at 3.3V logic, alongside dedicated power, ground, and analog-to-digital converter (ADC) pins. Whether you are wiring up the original RP2040-based Pico, the wireless Pico W, or the newer RP2350-based Pico 2, understanding the exact pin mappings, alternate functions, and voltage limits is critical to avoiding silicon damage. Below is the definitive hardware reference.

The Complete Raspberry Pi Pico Pinout Reference

The following table maps the physical pin numbers (1-40) to their GPIO designations, primary functions, and alternate peripheral mappings. This applies to the standard Pico and Pico W; Pico 2 (RP2350) variations are noted in the variants section below.

PinGPIO / FunctionPrimary / DefaultAlternate Functions (I2C / SPI / UART / PWM)
1GP0Digital I/OI2C0 SDA, SPI0 RX, UART0 TX, PWM0 A
2GP1Digital I/OI2C0 SCL, SPI0 CSn, UART0 RX, PWM0 B
3GNDGround-
4GP2Digital I/OI2C1 SDA, SPI0 SCK, PWM1 A
5GP3Digital I/OI2C1 SCL, SPI0 TX, PWM1 B
6GP4Digital I/OI2C0 SDA, SPI0 RX, UART1 TX, PWM2 A
7GP5Digital I/OI2C0 SCL, SPI0 CSn, UART1 RX, PWM2 B
8GNDGround-
9GP6Digital I/OI2C1 SDA, SPI0 SCK, PWM3 A
10GP7Digital I/OI2C1 SCL, SPI0 TX, PWM3 B
11GP8Digital I/OI2C0 SDA, SPI1 RX, UART1 TX, PWM4 A
12GP9Digital I/OI2C0 SCL, SPI1 CSn, UART1 RX, PWM4 B
13GNDGround-
14GP10Digital I/OI2C1 SDA, SPI1 SCK, PWM5 A
15GP11Digital I/OI2C1 SCL, SPI1 TX, PWM5 B
16GP12Digital I/OI2C0 SDA, SPI1 RX, UART0 TX, PWM6 A
17GP13Digital I/OI2C0 SCL, SPI1 CSn, UART0 RX, PWM6 B
18GNDGround-
19GP14Digital I/OI2C1 SDA, SPI1 SCK, PWM7 A
20GP15Digital I/OI2C1 SCL, SPI1 TX, PWM7 B
21GP16Digital I/OI2C0 SDA, SPI0 RX, UART0 TX, PWM0 A
22GP17Digital I/OI2C0 SCL, SPI0 CSn, UART0 RX, PWM0 B
23GNDGround-
24GP18Digital I/OI2C1 SDA, SPI0 SCK, PWM1 A
25GP19Digital I/OI2C1 SCL, SPI0 TX, PWM1 B
26GP20Digital I/OI2C0 SDA, SPI0 RX, PWM2 A
27GP21Digital I/OI2C0 SCL, SPI0 CSn, PWM2 B
28GNDGround-
29GP22Digital I/OI2C1 SDA, SPI0 SCK, PWM3 A
30RUNResetActive-low reset (pull to GND to reset)
31GP26 / ADC0Digital / AnalogI2C1 SCL, SPI1 SCK, ADC Input 0
32GP27 / ADC1Digital / AnalogI2C0 SDA, SPI1 TX, ADC Input 1
33AGNDAnalog GroundReference ground for ADC circuitry
34GP28 / ADC2Digital / AnalogI2C0 SCL, SPI1 RX, ADC Input 2
35ADC_VREFADC Reference3.3V ADC reference voltage input
363V3(OUT)Power OutputRegulated 3.3V output (max ~300mA draw)
373V3_ENEnableRegulator enable (pull low to disable 3.3V)
38GNDGround-
39VSYSPower InputMain system input (1.8V to 5.5V)
40VBUSPower I/OUSB 5V power (input from USB or output to bus)

Rows and Pins People Get Wrong

Even experienced makers fry boards or chase ghost bugs by misinterpreting specific rows in the Pico pinout. Here are the most common hardware traps.

CRITICAL VOLTAGE WARNING: The RP2040 and RP2350 silicon is strictly 3.3V tolerant on all GPIO pins. Feeding a 5V logic signal (like from a standard Arduino Uno or a 5V HC-SR04 ultrasonic sensor) directly into any GP pin will permanently destroy the microcontroller's input protection diodes and fry the silicon. Always use a logic level shifter or a resistive voltage divider for 5V sensors.

VSYS vs. VBUS: The Power Routing Trap

Pin 39 (VSYS) and Pin 40 (VBUS) are physically adjacent but serve entirely different purposes. VBUS is the raw 5V from the USB port. VSYS is the main system power input, which feeds the onboard RT6154 buck-boost regulator to create the 3.3V rail. If you are powering the Pico from an external 5V source, feed it into VSYS. If you accidentally feed 5V into VSYS while the USB is also plugged in, you will backfeed the USB port, potentially damaging your host computer's USB controller or popping the Pico's internal Schottky diode.

The ADC / Digital Overlap (GP26-GP28)

Pins 31, 32, and 34 default to digital I/O in most SDKs. If you attempt to read an analog sensor without explicitly initializing the ADC hardware block and configuring the multiplexer in your code, you will only ever read digital HIGH (1) or LOW (0). Furthermore, the RP2040 ADC has a known hardware quirk: the input impedance is relatively high, and the sample-and-hold capacitor requires a low-impedance source (<50kΩ) to charge fully within the default acquisition time.

I2C Pull-Up Resistors

The Pico pinout does not include hardware pull-up resistors on the I2C lines by default. While the RP2040 software SDK allows you to enable internal pull-ups, they are weak (typically ~50kΩ to ~60kΩ). For reliable I2C communication at 100kHz or 400kHz, especially with longer wires or multiple devices, you must add external 4.7kΩ pull-up resistors from SDA and SCL to 3V3(OUT).

Board Variants and Wiring Color Standards

When wiring a Pico to sensors, the physical board variant and the color conventions you follow will dictate your harness design.

Pico 1 vs. Pico W vs. Pico 2 (RP2350)

The Raspberry Pi Pico series has expanded. The original Pico and Pico W share the exact same 40-pin footprint. However, the newer Pico 2 (based on the RP2350 chip) introduces architectural changes. While the first 26 GPIO pins remain largely compatible, the RP2350 features a different ADC architecture and additional security features. Always verify the exact datasheet for the RP2350 if you are relying on specific ADC timing or PIO (Programmable I/O) state machine instructions, as the instruction set and memory sizes have changed.

Wiring Color Standards: Hobbyist vs. Industrial

Unlike mains wiring, low-voltage microcontroller harnesses do not have a single globally enforced legal code, but two dominant standards exist in practice:

  • Hobbyist / Maker Standard (Adafruit/SparkFun convention): Red = VCC (3.3V/5V), Black = GND, Blue = I2C SDA, Yellow = I2C SCL, Green = SPI MOSI, Orange = SPI MISO, White = SPI SCK. This is the de-facto standard for STEMMA QT and Qwiic ecosystems.
  • IEC 60446 / Industrial Control Convention: If you are integrating a Pico into an industrial control panel, IEC 60446 dictates that Brown, Black, and Grey are used for AC phases, Blue for AC neutral, and Green/Yellow strictly for protective earth. Never use Green/Yellow wire for a GPIO signal or ground return in a mixed-voltage panel, as it will confuse inspectors and create severe safety hazards if a fault bridges to mains earth.

Safe Interpretation for Unmarked or Faded Clone Boards

Cheap RP2040 clone boards from online marketplaces often arrive with poorly printed silkscreen, or the markings rub off after a few breadboard insertions. If your board lacks pin labels, you can safely map the pinout using physical anchors.

  1. Locate the USB Port and BOOTSEL Button: Orient the board so the micro-USB or USB-C port is pointing up (away from you). The silver BOOTSEL button will be centered just below the USB port.
  2. Identify Pin 1: With the USB port facing up, the top-left pin is GP0. The top-right pin is GP1.
  3. Identify the Power Rails: The bottom-left pin is VBUS (Pin 40). The bottom-right pin is GND (Pin 38). The pin immediately to the right of VBUS is VSYS (Pin 39).
  4. Verify with a Multimeter: Power the board via USB. Set your multimeter to DC voltage. Place the black probe on the bottom-right pin (GND) and the red probe on Pin 36 (second from bottom on the right side). You should read exactly 3.3V. This confirms the 3V3(OUT) pin and validates your orientation.

For deeper hardware debugging and exact electrical characteristics, always refer to the official RP2040 Datasheet, which details the internal pad configurations, drive strengths, and exact multiplexer routing tables.

Frequently Asked Questions

Can I use 5V sensors with the Raspberry Pi Pico pinout?

No, not directly. The RP2040 and RP2350 GPIO pins are strictly 3.3V tolerant. Connecting a 5V output from a sensor (like a standard HC-SR04 or a 5V Arduino) will inject current through the Pico's internal ESD protection diodes, eventually burning them out and destroying the chip. You must use a bidirectional logic level shifter (like the BSS138-based modules) or a simple resistive voltage divider (e.g., 2kΩ and 3.3kΩ) to step the 5V signal down to a safe 3.3V before it reaches the Pico's GP pins.

What is the difference between VSYS and VBUS on the Pico?

VBUS (Pin 40) is directly connected to the 5V line from the USB port. It can be used to power 5V peripherals (up to the USB port's current limit) or to receive 5V if you are bypassing the USB connector. VSYS (Pin 39) is the input to the onboard buck-boost regulator. It accepts anywhere from 1.8V to 5.5V and regulates it down to the 3.3V rail. If you are powering the Pico from a 3.7V LiPo battery, you connect the battery to VSYS. Never connect an external power source to VBUS while the USB cable is plugged in.

How do I identify Pin 1 on an unmarked Pico clone board?

Orient the board so the USB connector is at the top (pointing away from you). The top-left pin is Pin 1 (GP0). The pins count sequentially down the left side (GP0, GP1, GND, GP2...) to Pin 20 at the bottom left, then wrap around to Pin 21 at the bottom right, counting back up the right side to Pin 40 (VBUS) at the top right. You can verify Pin 36 (3V3 OUT) by measuring 3.3V relative to the bottom-right GND pin using a multimeter.

Does the Pico 2 (RP2350) use the same pinout as the original Pico?

The physical footprint and the first 26 GPIO pins (GP0-GP22, GP26-GP28) are largely identical and backward-compatible for basic digital I/O. However, the RP2350 silicon inside the Pico 2 features a different internal architecture, including a new ADC implementation, additional security boot features, and different Programmable I/O (PIO) block capabilities. While your physical wiring will work, code relying on specific RP2040 ADC timing, DMA channel mappings, or PIO assembly instructions will need to be recompiled and potentially adjusted for the RP2350 SDK.