Raspberry Pi Pico W

board
Raspberry Pi Datasheet ↗

Raspberry Pi Pico W pairs the dual-core 133 MHz ARM Cortex-M0+ RP2040 MCU and 2 MB of onboard QSPI XIP flash with an Infineon CYW43439 single-band 2.4 GHz 802.11n Wi-Fi 4 and Bluetooth 5.2 wireless subsystem inside the classic 21×51 mm 40-pin castellated DIP footprint. All 26 exposed 3.3 V GPIOs (strictly non-5V-tolerant) retain pin-for-pin compatibility with the original Pico across 2× UART, 2× SPI, 2× I2C, 16 PWM channels, and 2× PIO blocks, while the 3-pin SWD debug header relocates mid-board above the RF shield. Internally, GP23–GP25 and GP29 drive the CYW43439 gSPI interface (moving the onboard user LED to WL_GPIO0), and an upgraded RT6154 buck-boost SMPS accepts 1.8 V–5.5 V on VSYS.

LED BOOTSEL RP2040 2MB QSPI DEBUG (SWD) CYW43439 Wi-Fi 4 + BLE Pico W 2.4GHz ANT 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

WL_GPIO0 (LED) GPIO
Onboard green user LED driven by CYW43439 WL_GPIO0 (NOT RP2040 GP25!)

Unlike the non-wireless Pico, the onboard green LED is connected to WL_GPIO0 on the Infineon CYW43439 wireless chip and must be toggled via the CYW43 driver (e.g. cyw43_arch_gpio_put or Pin("LED") in MicroPython).

GP23 (WL_ON) System
Chip Pad: GPIO23
CYW43439 wireless power-on enable (active HIGH)

Internal RP2040 output enabling the Infineon CYW43439 Wi-Fi/BLE radio power management unit.

GP24 (WL_DATA / IRQ) SPI
Chip Pad: GPIO24
CYW43439 bidirectional 3-wire gSPI data I/O and host interrupt line

Internal RP2040 pad multiplexed as bidirectional SPI data and interrupt request for the CYW43439 radio.

GP25 (WL_CS) SPI
Chip Pad: GPIO25
CYW43439 gSPI chip select (active LOW) & VSYS divider FET gate

Drives active-low SPI CS for CYW43439 and gates N-MOSFET Q1 for the VSYS/3 divider. Must be driven HIGH (wireless SPI idle) when reading VSYS/3 on ADC3.

GP29 / ADC3 (WL_CLK & VSYS/3) ADC
Chip Pad: GPIO29
Shared CYW43439 gSPI clock and FET-gated VSYS ÷ 3 ADC3 monitor

Shared between CYW43439 SPI clock (WL_CLK) and the 200kΩ/100kΩ VSYS/3 voltage divider via FET Q1. Deassert WL_CS (GP25 HIGH) and pause wireless SPI before sampling ADC3.

WL_GPIO1 (SMPS PS) Power
RT6154A buck-boost Power Save mode (LOW=PFM efficiency, HIGH=PWM low ripple)

Routed from CYW43439 WL_GPIO1 to the RT6154A PS pin to switch between light-load PFM efficiency and fixed-frequency low-ripple PWM mode.

WL_GPIO2 (VBUS Sense) Power
Reads HIGH via CYW43439 WL_GPIO2 when 5V USB VBUS is connected

Voltage-divided 5V VBUS sense input wired to CYW43439 WL_GPIO2 so firmware can detect USB host power.

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. 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 and RF burst 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 the 3.3V rail via a 200Ω filter resistor. Can be overdriven by an external precision shunt reference.
36 3V3(OUT) power 3V3_OUT
[CAUTION] Max ~300mA recommended external load
Main 3.3V output from onboard RT6154A buck-boost SMPS. Keep continuous external load under ~300mA to preserve headroom for CYW43439 Wi-Fi TX bursts.
37 3V3_EN reset 3V3_EN
[INFO] Pull LOW to shut down 3.3V SMPS regulator
Enables the onboard RT6154A buck-boost regulator (pulled HIGH to VSYS by 100kΩ). Pull to GND to shut down both RP2040 and CYW43439.
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 RT6154A buck-boost regulator (1.8V to 5.5V). Add an external power-ORing Schottky diode or P-MOSFET when combining battery/external power with USB VBUS.
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 Schottky diode. Unregulated 5V: do NOT connect directly to 3.3V RP2040 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