The Raspberry Pi Pico (and Pico W) features a 40-pin DIP footprint with 26 multi-function GPIOs operating strictly at 3.3V logic. Whether you are wiring up I2C sensors, driving MOSFETs, or interfacing with 5V legacy equipment, knowing the exact RP2040 pin mapping and the correct wire color standards for your region is critical to avoiding silicon damage.

The Complete Raspberry Pi Pico Pinout Reference Table

Below is the essential pinout map for the standard RP2040-based Pico. This table includes the physical pin number, the assigned GPIO, the primary alternate function, and the recommended wire color for your harness based on standard low-voltage DC practices.

Pin GPIO / Function Primary Use Case Recommended Wire Color (Signal/DC)
1GP0I2C0 SDA / SPI0 RXWhite (Signal)
2GP1I2C0 SCL / SPI0 CSnYellow (Signal)
3GNDGround ReferenceBlack (DC Negative)
4GP2I2C1 SDA / SPI0 SCKWhite (Signal)
5GP3I2C1 SCL / SPI0 TXYellow (Signal)
6GP4I2C0 SDA / SPI0 RXWhite (Signal)
7GP5I2C0 SCL / SPI0 CSnYellow (Signal)
8GNDGround ReferenceBlack (DC Negative)
9GP6I2C1 SDA / SPI0 SCKWhite (Signal)
10GP7I2C1 SCL / SPI0 TXYellow (Signal)
16GP12I2C0 SDA / UART0 TXGreen (TX Data)
17GP13I2C0 SCL / UART0 RXBlue (RX Data)
19GP14I2C1 SDA / UART1 TXGreen (TX Data)
20GP15I2C1 SCL / UART1 RXBlue (RX Data)
31GP26 (ADC0)Analog Input / I2C1 SDAOrange (Analog)
32GP27 (ADC1)Analog Input / I2C1 SCLOrange (Analog)
34GP28 (ADC2)Analog Input / I2C0 SDAOrange (Analog)
363V3 OUT3.3V Regulated OutputRed (LV Positive)
38GNDGround ReferenceBlack (DC Negative)
39VSYSUnregulated Input (2-16V)Brown (Main DC+)
40VBUS5V USB Power InputRed (5V Positive)

Source: Official Raspberry Pi Pico Datasheet.

Regional Wiring Standards for Pico Peripherals (NEC vs. IEC)

While the RP2040 silicon is universal, the wire harnesses you build to connect the Pico to external sensors, relay boards, and power supplies must adhere to your region's electrical standards. Misapplying AC mains color codes to low-voltage DC logic is a frequent cause of short circuits on the bench.

Warning: Never use standard AC mains wire colors (like US Black/White/Green or EU Brown/Blue/Yellow-Green) for 3.3V or 5V DC logic signals. Doing so creates a severe shock hazard if the harness is ever mistakenly plugged into a mains terminal block.

IEC 60446 (EU, UK, Australia, Global Standard)

Under IEC standards for DC control circuits (often applied to PLC and microcontroller panels):

  • Positive (Main DC, e.g., 12V/24V to VSYS): Brown
  • Negative (GND): Blue (or Black in older implementations)
  • Signal / Logic (3.3V GPIO): White or Black with white tracer
  • Earth Ground (Shielding): Green/Yellow stripe (Never use this for digital GND)

NEC / US Standard Practice

The US National Electrical Code (NEC) is less prescriptive about low-voltage DC control wiring, but industry-standard practice (and Raspberry Pi community conventions) dictates:

  • Positive (5V / VBUS): Red
  • Negative (GND): Black
  • Signal / Logic (GPIO): Yellow, White, or Orange
  • Earth Ground: Bare copper or Green

Legacy UK (Pre-2004)

If you are retrofitting a Pico into an older British industrial control panel, you may encounter the old UK color code: Red for positive, Black for negative. Treat any unverified Red/Black wiring with suspicion and verify with a multimeter before connecting to the Pico's VSYS pin.

Rows People Get Wrong (and How to Avoid Bricking Your RP2040)

The Pico pinout has a few traps that routinely destroy the RP2040 microcontroller. Here are the rows in the reference table that cause the most hardware failures.

Pin 39 (VSYS) vs. Pin 40 (VBUS)

The Mistake: Backfeeding 5V into Pin 39 (VSYS) while the USB cable is plugged in.
The Reality: VBUS (Pin 40) is strictly for 5V from the USB port. VSYS (Pin 39) is the main system input, which accepts 2V to 16V. If USB is connected, VBUS is internally routed to VSYS through a protection diode. If you inject 5V into VSYS while USB is attached, you will backfeed the host PC's USB port, potentially tripping your motherboard's overcurrent protection or frying the Pico's onboard Schottky diode.

Pin 36 (3V3 OUT) Current Limits

The Mistake: Using the 3V3 OUT pin to power a high-current 3.3V peripheral like a cellular modem or a string of WS2812B LEDs.
The Reality: Pin 36 is an output from the onboard RT6150 buck-boost regulator. It is limited to roughly 300mA total. If your peripheral draws more, the regulator will thermal-shutdown or fail. For high-current 3.3V loads, wire an external LDO directly to VSYS and Pin 3 (GND).

ADC Pins (GP26, GP27, GP28) Voltage Tolerance

The Mistake: Feeding a 5V analog sensor directly into GP26.
The Reality: The RP2040 ADC is strictly limited to 3.3V. Furthermore, the ADC reference voltage is tied to the 3V3 rail. If your 3V3 rail sags to 3.1V under load, your ADC readings will skew. Always use a voltage divider (e.g., 10kΩ and 20kΩ resistors) to scale 5V analog signals down to a safe 0-3.3V range.

Interpreting Faded or Missing Pin Markings

After months of use on a cluttered workbench, the white silkscreen pin labels on the Pico can rub off. If you are using a bare RP2040 module (like the Pico-clone boards from AliExpress) that lacks silkscreen entirely, you must safely identify the pins before applying power.

  1. Locate Pin 1: Hold the board with the USB port facing up. The bottom-left pin is always Pin 1 (GP0). On the bare PCB, Pin 1 is indicated by a square copper pad, while all other pads are round.
  2. Map the Ground Plane: Set your multimeter to continuity mode. Probe Pin 3 (bottom right, assuming USB is up, wait—Pin 1 is bottom left, Pin 3 is GP1, Pin 8 is GND. Let's correct: Pin 1 is bottom-left, Pin 3 is GP1, Pin 8 is the first GND on the left side). Actually, counting up the left side: 1(GP0), 2(GP1), 3(GND), 4(GP2), 5(GP3), 6(GP4), 7(GP5), 8(GND). Probe the suspected GND pins against the metal shield of the USB micro connector. They will read < 1 ohm.
  3. Identify 3V3 OUT: Pin 36 is on the right side, near the top. If you apply USB power, use your multimeter in DC Voltage mode. Probe the suspected pin against a known GND. If it reads exactly 3.2V to 3.3V, you have found the 3V3 OUT rail.

Raspberry Pi Pico Pinout FAQ

Can I power the Raspberry Pi Pico with 5V on the GPIO pins?

No. The GPIO pins operate at 3.3V logic and are not designed to accept power input. To power the Pico without USB, you must inject voltage into Pin 39 (VSYS). VSYS accepts a wide range of 2V to 16V DC. If you only have a 5V supply, wire it to VSYS and GND; the onboard regulator will step it down to 3.3V for the RP2040 core.

Which Raspberry Pi Pico pins are 5V tolerant?

None of the RP2040 GPIO pins are natively 5V tolerant. Applying 5V to any GP pin will forward-bias the internal ESD protection diodes, drawing excessive current from the 5V source and potentially destroying the GPIO pad or the entire microcontroller. If you must interface with 5V logic (like legacy Arduino shields or 5V I2C sensors), use a bidirectional logic level shifter like the TXB0108 or a simple BSS138 MOSFET-based shifter circuit.

How do I identify the I2C0 vs I2C1 pins on the Pico?

The RP2040 allows you to map I2C controllers to multiple pin pairs, but the default hardware mappings are:
I2C0: SDA on GP4 (Pin 6) or GP8 (Pin 11); SCL on GP5 (Pin 7) or GP9 (Pin 12).
I2C1: SDA on GP6 (Pin 9) or GP26 (Pin 31); SCL on GP7 (Pin 10) or GP27 (Pin 32).
Always use 4.7kΩ pull-up resistors to the 3.3V rail on both SDA and SCL lines, as the Pico's internal pull-ups (typically 50kΩ-80kΩ) are too weak for reliable I2C communication in noisy environments.

Users searching for 'rasberry pi pico pinout' often ask: Does the Pico W have a different pinout?

The physical 40-pin GPIO footprint on the Pico W is identical to the standard Pico. However, the Pico W routes GP23, GP24, and GP25 internally to the Infineon CYW43439 Wi-Fi/Bluetooth chip. This means you cannot use GP25 for the onboard LED on the Pico W (the LED is instead driven via the wireless chip's GPIO). If your code relies on toggling GP25 for a status LED, it will fail on the Pico W; you must use the CYW43 library to control the LED instead.