Raspberry Pi Pico 2 is the successor to the Pico with the RP2350 chip. At a similar price and with the same pin layout, it adds performance, twice the memory and one interesting twist: you can choose between Arm Cortex-M33 and RISC-V Hazard3 cores.
The board is pin-compatible with the original Pico – you can reuse existing wiring and most code unchanged.
Specifications
- RP2350A: 2× Arm Cortex-M33 or 2× RISC-V Hazard3, 150 MHz
- 520 kB SRAM, 4 MB flash
- 26 GPIO with 3.3 V logic, 3 of them with a 12-bit ADC
- 2× UART, 2× SPI, 2× I2C, 16 PWM channels, 12 PIO state machines
- HSTX – fast video output (DVI) directly from the chip
- security: Arm TrustZone, secure boot, OTP memory
- micro USB, 21 × 51 mm, onboard LED on GP25
The version with Wi-Fi and Bluetooth is the Pico 2 W.
You can program it in MicroPython, CircuitPython, C/C++ (Pico SDK) or the Arduino IDE.
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 | Power converter mode control (SMPS PS) |
| GP24 | VBUS detection (is USB connected?) |
| GP25 | Onboard LED |
| GP29 | ADC3 – measures VSYS/3 |
What to watch out for
- Unlike the RP2040, the GPIO tolerate 5 V – but only when the board is powered, and not on the analog pins GP26–28. The output is always 3.3 V.
- RP2350 chips in revision A2 have erratum E9: the internal pull-down can “hold” an input at around 2 V. Use an external resistor (up to 8.2 kΩ) on inputs with a pull-down, or use a pull-up. Revision A4 is fixed.
- ADC is only on GP26–28 (ADC0–2), ADC3 internally measures VSYS/3.
- UART, I2C and SPI can be routed to several different pins – the table shows all options.
- Don’t draw more than about 300 mA from the 3V3(OUT) pin.
Raspberry Pi Pico 2 projects on chiptron.eu/
Projects and guides on chiptron.eu/:
- Picogame – a 2D game engine for CircuitPython, optimized for the RP2350 as well
- 100 IoT projects – MicroPython projects for Raspberry Pi Pico, ESP32 and ESP8266
More pinouts
See all pinouts on the Pinouts page.