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).
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.
Onboard Peripherals & Internal Signals
Internal RP2040 output enabling the Infineon CYW43439 Wi-Fi/BLE radio power management unit.
Internal RP2040 pad multiplexed as bidirectional SPI data and interrupt request for the CYW43439 radio.
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.
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.
Routed from CYW43439 WL_GPIO1 to the RT6154A PS pin to switch between light-load PFM efficiency and fixed-frequency low-ripple PWM mode.
Voltage-divided 5V VBUS sense input wired to CYW43439 WL_GPIO2 so firmware can detect USB host power.
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
|