Raspberry Pi Pico

board
Raspberry Pi Datasheet ↗

Powered by Raspberry Pi's dual-core 133 MHz ARM Cortex-M0+ RP2040 MCU with 264 KB SRAM and 2 MB of onboard QSPI XIP flash, the Pico features a breadboard- and SMD-ready castellated 40-pin DIP form factor. Flexible hardware muxing spans 26 exposed 3.3 V GPIOs (strictly non-5V-tolerant) supporting 2× UART, 2× SPI, 2× I2C, and 16 PWM channels. Two Programmable I/O (PIO) blocks supply 8 cycle-accurate state machines capable of deterministic custom protocols without CPU overhead. Three exposed 12-bit 500 ksps SAR ADC inputs (GP26–GP28) include dedicated AGND and filtered ADC_VREF pins, backed by an onboard RT6150 buck-boost SMPS accepting 1.8 V–5.5 V on VSYS for single-cell Li-Ion, AA, or USB power.

LED BOOTSEL RP2040 ARM Raspberry Pi Pico DEBUG 1 GP0 GPIO0 UART0_TX SPI I2C PWM PIO USB +6 GPIO0 SPI0_RX UART0_TX I2C0_SDA PWM0_A PIO0 PIO1 USB_OVCUR_DET 2 GP1 GPIO1 UART0_RX SPI I2C PWM PIO USB +6 GPIO1 SPI0_CSn UART0_RX I2C0_SCL PWM0_B PIO0 PIO1 USB_VBUS_DET 3 GND GND GND 4 GP2 GPIO2 SPI UART I2C PWM PIO USB +7 GPIO2 SPI0_SCK UART0_CTS I2C1_SDA PWM1_A PIO0 PIO1 USB_VBUS_EN 5 GP3 GPIO3 SPI UART I2C PWM PIO USB +7 GPIO3 SPI0_TX UART0_RTS I2C1_SCL PWM1_B PIO0 PIO1 USB_OVCUR_DET 6 GP4 GPIO4 I2C0_SDA SPI UART PWM PIO USB +6 GPIO4 SPI0_RX UART1_TX I2C0_SDA PWM2_A PIO0 PIO1 USB_VBUS_DET 7 GP5 GPIO5 I2C0_SCL SPI UART PWM PIO USB +6 GPIO5 SPI0_CSn UART1_RX I2C0_SCL PWM2_B PIO0 PIO1 USB_VBUS_EN 8 GND GND GND 9 GP6 GPIO6 SPI UART I2C PWM PIO USB +7 GPIO6 SPI0_SCK UART1_CTS I2C1_SDA PWM3_A PIO0 PIO1 USB_OVCUR_DET 10 GP7 GPIO7 SPI UART I2C PWM PIO USB +7 GPIO7 SPI0_TX UART1_RTS I2C1_SCL PWM3_B PIO0 PIO1 USB_VBUS_DET 11 GP8 GPIO8 SPI UART I2C PWM PIO USB +7 GPIO8 SPI1_RX UART1_TX I2C0_SDA PWM4_A PIO0 PIO1 USB_VBUS_EN 12 GP9 GPIO9 SPI UART I2C PWM PIO USB +7 GPIO9 SPI1_CSn UART1_RX I2C0_SCL PWM4_B PIO0 PIO1 USB_OVCUR_DET 13 GND GND GND 14 GP10 GPIO10 SPI UART I2C PWM PIO USB +7 GPIO10 SPI1_SCK UART1_CTS I2C1_SDA PWM5_A PIO0 PIO1 USB_VBUS_DET 15 GP11 GPIO11 SPI UART I2C PWM PIO USB +7 GPIO11 SPI1_TX UART1_RTS I2C1_SCL PWM5_B PIO0 PIO1 USB_VBUS_EN 16 GP12 GPIO12 SPI UART I2C PWM PIO USB +7 GPIO12 SPI1_RX UART0_TX I2C0_SDA PWM6_A PIO0 PIO1 USB_OVCUR_DET 17 GP13 GPIO13 SPI UART I2C PWM PIO USB +7 GPIO13 SPI1_CSn UART0_RX I2C0_SCL PWM6_B PIO0 PIO1 USB_VBUS_DET 18 GND GND GND 19 GP14 GPIO14 SPI UART I2C PWM PIO USB +7 GPIO14 SPI1_SCK UART0_CTS I2C1_SDA PWM7_A PIO0 PIO1 USB_VBUS_EN 20 GP15 GPIO15 SPI UART I2C PWM PIO USB +7 GPIO15 SPI1_TX UART0_RTS I2C1_SCL PWM7_B PIO0 PIO1 USB_OVCUR_DET 21 GP16 GPIO16 SPI0_RX UART I2C PWM PIO USB +6 GPIO16 SPI0_RX UART0_TX I2C0_SDA PWM0_A PIO0 PIO1 USB_VBUS_DET 22 GP17 GPIO17 SPI UART I2C PWM PIO USB +7 GPIO17 SPI0_CSn UART0_RX I2C0_SCL PWM0_B PIO0 PIO1 USB_VBUS_EN 23 GND GND GND 24 GP18 GPIO18 SPI0_SCK UART I2C PWM PIO USB +6 GPIO18 SPI0_SCK UART0_CTS I2C1_SDA PWM1_A PIO0 PIO1 USB_OVCUR_DET 25 GP19 GPIO19 SPI0_TX UART I2C PWM PIO USB +6 GPIO19 SPI0_TX UART0_RTS I2C1_SCL PWM1_B PIO0 PIO1 USB_VBUS_DET 26 GP20 GPIO20 SPI UART I2C PWM PIO Clock USB +8 GPIO20 SPI0_RX UART1_TX I2C0_SDA PWM2_A PIO0 PIO1 CLOCK_GPIN0 USB_VBUS_EN 27 GP21 GPIO21 SPI UART I2C PWM PIO Clock USB +8 GPIO21 SPI0_CSn UART1_RX I2C0_SCL PWM2_B PIO0 PIO1 CLOCK_GPOUT0 USB_OVCUR_DET 28 GND GND GND 29 GP22 GPIO22 SPI UART I2C PWM PIO Clock USB +8 GPIO22 SPI0_SCK UART1_CTS I2C1_SDA PWM3_A PIO0 PIO1 CLOCK_GPIN1 USB_VBUS_DET 30 RUN ! RUN RUN 31 GP26 ! ADC0 I2C1_SDA GPIO SPI UART PWM PIO USB +7 ADC0 GPIO26 SPI1_SCK UART1_CTS I2C1_SDA PWM5_A PIO0 PIO1 USB_VBUS_EN 32 GP27 ! ADC1 I2C1_SCL GPIO SPI UART PWM PIO USB +7 ADC1 GPIO27 SPI1_TX UART1_RTS I2C1_SCL PWM5_B PIO0 PIO1 USB_OVCUR_DET 33 AGND ! AGND AGND 34 GP28 ! ADC2 GPIO SPI UART I2C PWM PIO USB +8 ADC2 GPIO28 SPI1_RX UART0_TX I2C0_SDA PWM6_A PIO0 PIO1 USB_VBUS_DET 35 ADC_VREF ! ADC_VREF ADC_VREF 36 3V3(OUT) ! 3V3_OUT 3V3_OUT 37 3V3_EN ! 3V3_EN 3V3_EN 38 GND GND GND 39 VSYS ! VSYS VSYS 40 VBUS ! VBUS_5V VBUS_5V D1 SWCLK ! SWCLK SWCLK D2 GND GND GND D3 SWDIO ! SWDIO SWDIO

Onboard Peripherals & Internal Signals

GP25 (LED) GPIO
Chip Pad: GPIO25
Onboard green user LED (active HIGH via 470Ω resistor)

Connected to GPIO25 via current-limiting resistor. Driven HIGH to illuminate LED.

GP23 (SMPS PS) Power
Chip Pad: GPIO23
RT6150 buck-boost Power Save mode (LOW=PFM efficiency, HIGH=PWM low ripple for ADC)

Controls RT6150 SMPS power save pin. Set HIGH to force fixed-frequency PWM mode (reduces ripple during ADC measurements); set LOW for PFM power-saving mode.

GP24 (VBUS Sense) Power
Chip Pad: GPIO24
HIGH (~3.2V via divider) when 5V USB VBUS is present

Connected to USB VBUS via voltage divider (~3.2V when 5V USB is plugged in). Allows software to detect USB host connection.

GP29 / ADC3 (VSYS/3) ADC
Chip Pad: GPIO29
Measures VSYS ÷ 3 via onboard 200kΩ/100kΩ divider

Connected to VSYS via 200kΩ/100kΩ resistor divider. ADC3 reads one-third of the VSYS battery/power supply voltage.

BOOTSEL QSPI
Chip Pad: QSPI_SS
White push-button pulling QSPI_SS LOW at boot to enter UF2 USB bootloader

Tactile push-button connected to QSPI_SS (chip select for SPI flash). Holding BOOTSEL during reset forces RP2040 into USB UF2 mass-storage bootloader mode.

Pin Assignment Planner

Add the peripherals you need and plan the pin assignments

Full Pin Reference (43 Pins)

Pin # Label Type Functions Warnings & Notes
1 GP0 GPIO0 digital GPIO0 SPI0_RX UART0_TX I2C0_SDA PWM0_A PIO0 PIO1 USB_OVCUR_DET
RP2040 General Purpose I/O pin 0
2 GP1 GPIO1 digital GPIO1 SPI0_CSn UART0_RX I2C0_SCL PWM0_B PIO0 PIO1 USB_VBUS_DET
RP2040 General Purpose I/O pin 1
3 GND ground GND
System digital ground (0V)
4 GP2 GPIO2 digital GPIO2 SPI0_SCK UART0_CTS I2C1_SDA PWM1_A PIO0 PIO1 USB_VBUS_EN
RP2040 General Purpose I/O pin 2
5 GP3 GPIO3 digital GPIO3 SPI0_TX UART0_RTS I2C1_SCL PWM1_B PIO0 PIO1 USB_OVCUR_DET
RP2040 General Purpose I/O pin 3
6 GP4 GPIO4 digital GPIO4 SPI0_RX UART1_TX I2C0_SDA PWM2_A PIO0 PIO1 USB_VBUS_DET
RP2040 General Purpose I/O pin 4
7 GP5 GPIO5 digital GPIO5 SPI0_CSn UART1_RX I2C0_SCL PWM2_B PIO0 PIO1 USB_VBUS_EN
RP2040 General Purpose I/O pin 5
8 GND ground GND
System digital ground (0V)
9 GP6 GPIO6 digital GPIO6 SPI0_SCK UART1_CTS I2C1_SDA PWM3_A PIO0 PIO1 USB_OVCUR_DET
RP2040 General Purpose I/O pin 6
10 GP7 GPIO7 digital GPIO7 SPI0_TX UART1_RTS I2C1_SCL PWM3_B PIO0 PIO1 USB_VBUS_DET
RP2040 General Purpose I/O pin 7
11 GP8 GPIO8 digital GPIO8 SPI1_RX UART1_TX I2C0_SDA PWM4_A PIO0 PIO1 USB_VBUS_EN
RP2040 General Purpose I/O pin 8
12 GP9 GPIO9 digital GPIO9 SPI1_CSn UART1_RX I2C0_SCL PWM4_B PIO0 PIO1 USB_OVCUR_DET
RP2040 General Purpose I/O pin 9
13 GND ground GND
System digital ground (0V)
14 GP10 GPIO10 digital GPIO10 SPI1_SCK UART1_CTS I2C1_SDA PWM5_A PIO0 PIO1 USB_VBUS_DET
RP2040 General Purpose I/O pin 10
15 GP11 GPIO11 digital GPIO11 SPI1_TX UART1_RTS I2C1_SCL PWM5_B PIO0 PIO1 USB_VBUS_EN
RP2040 General Purpose I/O pin 11
16 GP12 GPIO12 digital GPIO12 SPI1_RX UART0_TX I2C0_SDA PWM6_A PIO0 PIO1 USB_OVCUR_DET
RP2040 General Purpose I/O pin 12
17 GP13 GPIO13 digital GPIO13 SPI1_CSn UART0_RX I2C0_SCL PWM6_B PIO0 PIO1 USB_VBUS_DET
RP2040 General Purpose I/O pin 13
18 GND ground GND
System digital ground (0V)
19 GP14 GPIO14 digital GPIO14 SPI1_SCK UART0_CTS I2C1_SDA PWM7_A PIO0 PIO1 USB_VBUS_EN
RP2040 General Purpose I/O pin 14
20 GP15 GPIO15 digital GPIO15 SPI1_TX UART0_RTS I2C1_SCL PWM7_B PIO0 PIO1 USB_OVCUR_DET
RP2040 General Purpose I/O pin 15
21 GP16 GPIO16 digital GPIO16 SPI0_RX UART0_TX I2C0_SDA PWM0_A PIO0 PIO1 USB_VBUS_DET
RP2040 General Purpose I/O pin 16
22 GP17 GPIO17 digital GPIO17 SPI0_CSn UART0_RX I2C0_SCL PWM0_B PIO0 PIO1 USB_VBUS_EN
RP2040 General Purpose I/O pin 17
23 GND ground GND
System digital ground (0V)
24 GP18 GPIO18 digital GPIO18 SPI0_SCK UART0_CTS I2C1_SDA PWM1_A PIO0 PIO1 USB_OVCUR_DET
RP2040 General Purpose I/O pin 18
25 GP19 GPIO19 digital GPIO19 SPI0_TX UART0_RTS I2C1_SCL PWM1_B PIO0 PIO1 USB_VBUS_DET
RP2040 General Purpose I/O pin 19
26 GP20 GPIO20 digital GPIO20 SPI0_RX UART1_TX I2C0_SDA PWM2_A PIO0 PIO1 CLOCK_GPIN0 USB_VBUS_EN
RP2040 General Purpose I/O pin 20
27 GP21 GPIO21 digital GPIO21 SPI0_CSn UART1_RX I2C0_SCL PWM2_B PIO0 PIO1 CLOCK_GPOUT0 USB_OVCUR_DET
RP2040 General Purpose I/O pin 21
28 GND ground GND
System digital ground (0V)
29 GP22 GPIO22 digital GPIO22 SPI0_SCK UART1_CTS I2C1_SDA PWM3_A PIO0 PIO1 CLOCK_GPIN1 USB_VBUS_DET
RP2040 General Purpose I/O pin 22
30 RUN reset RUN
[INFO] Active-low hardware reset (pull LOW to reset RP2040)
Active-low hardware reset (pull LOW to reset RP2040)
Active-low hardware reset
31 GP26 GPIO26 mixed ADC0 GPIO26 SPI1_SCK UART1_CTS I2C1_SDA PWM5_A PIO0 PIO1 USB_VBUS_EN
[CAUTION] ADC ESD diode to IOVDD & RP2040-E6 input leakage
Unlike GPIO0–25, GPIO26–29 have clamp diodes to IOVDD (do not drive while unpowered). Disable digital input buffer in firmware when sampling ADC (errata RP2040-E6). Strictly 3.3V max.
RP2040 ADC input 0 / GPIO26
32 GP27 GPIO27 mixed ADC1 GPIO27 SPI1_TX UART1_RTS I2C1_SCL PWM5_B PIO0 PIO1 USB_OVCUR_DET
[CAUTION] ADC ESD diode to IOVDD & RP2040-E6 input leakage
Unlike GPIO0–25, GPIO26–29 have clamp diodes to IOVDD (do not drive while unpowered). Disable digital input buffer in firmware when sampling ADC (errata RP2040-E6). Strictly 3.3V max.
RP2040 ADC input 1 / GPIO27
33 AGND ground AGND
[INFO] Isolated analog ground plane
Isolated ground reference for RP2040 ADC (ADC_AVDD/AGND). Keep analog sensor returns connected here to minimize digital switching noise.
34 GP28 GPIO28 mixed ADC2 GPIO28 SPI1_RX UART0_TX I2C0_SDA PWM6_A PIO0 PIO1 USB_VBUS_DET
[CAUTION] ADC ESD diode to IOVDD & RP2040-E6 input leakage
Unlike GPIO0–25, GPIO26–29 have clamp diodes to IOVDD (do not drive while unpowered). Disable digital input buffer in firmware when sampling ADC (errata RP2040-E6). Strictly 3.3V max.
RP2040 ADC input 2 / GPIO28
35 ADC_VREF power ADC_VREF
[INFO] Filtered 3.3V reference via 200Ω resistor
ADC reference voltage pin, connected to 3.3V rail via a 200Ω resistor (R7). Can be overdriven by an external precision reference.
36 3V3(OUT) power 3V3_OUT
[CAUTION] Max ~300mA recommended external load
Main 3.3V output from onboard RT6150 buck-boost SMPS. Max ~300mA recommended external load depending on VSYS.
37 3V3_EN reset 3V3_EN
[INFO] Pull LOW to shut down 3.3V SMPS regulator
Enables the onboard RT6150 buck-boost regulator (pulled HIGH to VSYS by 100kΩ). Pull to GND to disable 3.3V rail.
38 GND ground GND
System digital ground (0V)
39 VSYS power VSYS
[CAUTION] 1.8V–5.5V main input; add external Schottky diode when dual-powering alongside USB
Main system input voltage to the RT6150 buck-boost regulator (1.8V to 5.5V). When powering externally and via USB simultaneously, add an external Schottky diode.
40 VBUS power VBUS_5V
[CAUTION] Unregulated 5V direct from Micro-USB (do NOT connect directly to 3.3V GPIOs)
Direct 5V supply from Micro-USB connector through input diode D1. Unregulated 5V: do NOT connect directly to 3.3V GPIO pins!
D1 SWCLK digital SWCLK
[INFO] Dedicated ARM SWD debug pin
Serial Wire Debug interface pin (SWCLK/SWDIO). Keep reserved when using an external debug probe.
ARM Serial Wire Debug Clock
D2 GND ground GND
System digital ground (0V)
D3 SWDIO digital SWDIO
[INFO] Dedicated ARM SWD debug pin
Serial Wire Debug interface pin (SWCLK/SWDIO). Keep reserved when using an external debug probe.
ARM Serial Wire Debug Data I/O