Raspberry Pi Pico W is the classic Pico with an Infineon CYW43439 wireless chip that adds Wi-Fi (2.4 GHz) and Bluetooth. The edge pins stay in the same places as on the Pico, so you can reuse your wiring unchanged.
The wireless chip does take several internal GPIO, though, and the onboard LED has moved too – what to watch out for is summarized below the table.
Specifications
- RP2040: 2× Arm Cortex-M0+ up to 133 MHz
- 264 kB SRAM, 2 MB flash
- Wi-Fi 802.11n (2.4 GHz) and Bluetooth 5.2 via CYW43439, onboard antenna
- 26 GPIO with 3.3 V logic, 3 of them with a 12-bit ADC
- 2× UART, 2× SPI, 2× I2C, 16 PWM channels, 8 PIO state machines
- micro USB, 1.8–5.5 V power via VSYS
- 21 × 51 mm – the same dimensions and pin layout as the Pico
The version with soldered headers is called the Pico WH. Its successor, the Pico 2 W, has the same wireless chip and wiring, just with the more powerful RP2350.
It is programmed just like the Pico – MicroPython, CircuitPython, C/C++ (Pico SDK) or the Arduino IDE. The original Pico pinout is on the Raspberry Pi Pico Pinout page.
Pinout and pin table
Hover over a pin in the diagram or a table row; use the filter to highlight a bus. You can download the pinout as PNG or SVG.
| Pin | Name | Direction | UART | I2C | SPI | PWM | ADC | Note |
|---|---|---|---|---|---|---|---|---|
| 1 | GP0 | input/output | UART0 TX | I2C0 SDA | SPI0 RX | PWM0 A | ||
| 2 | GP1 | input/output | UART0 RX | I2C0 SCL | SPI0 CSn | PWM0 B | ||
| 3 | GND | – | ||||||
| 4 | GP2 | input/output | UART0 CTS | I2C1 SDA | SPI0 SCK | PWM1 A | ||
| 5 | GP3 | input/output | UART0 RTS | I2C1 SCL | SPI0 TX | PWM1 B | ||
| 6 | GP4 | input/output | UART1 TX | I2C0 SDA | SPI0 RX | PWM2 A | ||
| 7 | GP5 | input/output | UART1 RX | I2C0 SCL | SPI0 CSn | PWM2 B | ||
| 8 | GND | – | ||||||
| 9 | GP6 | input/output | UART1 CTS | I2C1 SDA | SPI0 SCK | PWM3 A | ||
| 10 | GP7 | input/output | UART1 RTS | I2C1 SCL | SPI0 TX | PWM3 B | ||
| 11 | GP8 | input/output | UART1 TX | I2C0 SDA | SPI1 RX | PWM4 A | ||
| 12 | GP9 | input/output | UART1 RX | I2C0 SCL | SPI1 CSn | PWM4 B | ||
| 13 | GND | – | ||||||
| 14 | GP10 | input/output | UART1 CTS | I2C1 SDA | SPI1 SCK | PWM5 A | ||
| 15 | GP11 | input/output | UART1 RTS | I2C1 SCL | SPI1 TX | PWM5 B | ||
| 16 | GP12 | input/output | UART0 TX | I2C0 SDA | SPI1 RX | PWM6 A | ||
| 17 | GP13 | input/output | UART0 RX | I2C0 SCL | SPI1 CSn | PWM6 B | ||
| 18 | GND | – | ||||||
| 19 | GP14 | input/output | UART0 CTS | I2C1 SDA | SPI1 SCK | PWM7 A | ||
| 20 | GP15 | input/output | UART0 RTS | I2C1 SCL | SPI1 TX | PWM7 B | ||
| 21 | GP16 | input/output | UART0 TX | I2C0 SDA | SPI0 RX | PWM0 A | ||
| 22 | GP17 | input/output | UART0 RX | I2C0 SCL | SPI0 CSn | PWM0 B | ||
| 23 | GND | – | ||||||
| 24 | GP18 | input/output | UART0 CTS | I2C1 SDA | SPI0 SCK | PWM1 A | ||
| 25 | GP19 | input/output | UART0 RTS | I2C1 SCL | SPI0 TX | PWM1 B | ||
| 26 | GP20 | input/output | UART1 TX | I2C0 SDA | SPI0 RX | PWM2 A | ||
| 27 | GP21 | input/output | UART1 RX | I2C0 SCL | SPI0 CSn | PWM2 B | ||
| 28 | GND | – | ||||||
| 29 | GP22 | input/output | UART1 CTS | I2C1 SDA | SPI0 SCK | PWM3 A | ||
| 30 | RUN | input | Reset – connecting to GND restarts the chip | |||||
| 31 | GP26 | input/output | UART1 CTS | I2C1 SDA | SPI1 SCK | PWM5 A | ADC0 | |
| 32 | GP27 | input/output | UART1 RTS | I2C1 SCL | SPI1 TX | PWM5 B | ADC1 | |
| 33 | AGND | – | Analog ground for the ADC (GP26–28) | |||||
| 34 | GP28 | input/output | UART0 TX | I2C0 SDA | SPI1 RX | PWM6 A | ADC2 | |
| 35 | ADC_VREF | input/output | ADC reference (can also be external) | |||||
| 36 | 3V3(OUT) | output | 3.3 V output, max. load ~300 mA | |||||
| 37 | 3V3_EN | input | Connect to GND to turn off the 3.3 V supply | |||||
| 38 | GND | – | ||||||
| 39 | VSYS | input | Power input 1.8–5.5 V | |||||
| 40 | VBUS | output | 5 V from USB (only when USB is connected) | |||||
| SWD | SWCLK | input | Debugging (SWD) – clock | |||||
| SWD | GND | – | ||||||
| SWD | SWDIO | input/output | Debugging (SWD) – data |
Pins used on the board
These chip pins are used by parts on the board and are not broken out:
| Pin | Function on the board |
|---|---|
| GP23 | Wi-Fi chip – WL_ON (power on) |
| GP24 | Wi-Fi chip – WL_D (data / interrupt) |
| GP25 | Wi-Fi chip – WL_CS |
| GP29 | Wi-Fi chip – WL_CLK; also ADC3 (VSYS/3) |
What to watch out for
- GPIO are not 5V tolerant. Use a level shifter for 5V signals.
- The onboard LED is not on GP25 as on the Pico, but on a GPIO of the wireless chip –
Pin("LED")in MicroPython,CYW43_WL_GPIO_LED_PINin the Pico SDK. - GP23, GP24, GP25 and GP29 serve the wireless chip and are not broken out to the header.
- ADC3 (GP29) also serves as the SPI clock of the wireless chip – measuring the VSYS voltage is therefore more complicated than on the Pico.
- ADC is only on GP26–28 (ADC0–2), range 0–3.3 V.
- The antenna is at the end of the board opposite the USB – metal or copper beneath it reduces Wi-Fi range.
Raspberry Pi Pico W projects on chiptron.eu/
Projects and guides on chiptron.eu/:
- 100 IoT projects – MicroPython projects with code and schematics for Pico W, ESP32 and ESP8266
- Picogame – a 2D game engine for CircuitPython on RP2040, RP2350 and the PicoPad
More pinouts
See all pinouts on the Pinouts page.