Connected to GPIO25 via current-limiting resistor. Driven HIGH to illuminate LED.
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.
Onboard Peripherals & Internal Signals
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.
Connected to USB VBUS via voltage divider (~3.2V when 5V USB is plugged in). Allows software to detect USB host connection.
Connected to VSYS via 200kΩ/100kΩ resistor divider. ADC3 reads one-third of the VSYS battery/power supply voltage.
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
|