RP2040-Zero from Waveshare is a thumb-sized board (23.5 × 18 mm) with the RP2040 chip, the same as the Raspberry Pi Pico. It has USB-C, an addressable RGB LED and 29 GPIO – 20 on solder pads around the edge and another 9 on pads on the bottom.
It’s well suited for small devices, macro keyboards or as an inexpensive Pico substitute where a Pico won’t fit.
Specifications
- RP2040: 2× Arm Cortex-M0+ up to 133 MHz, 264 kB SRAM, 8 PIO state machines
- 2 MB flash
- 29 GPIO (20 around the edge, 9 on pads on the bottom), 4 analog inputs (GP26–GP29)
- 2× UART, 2× I2C, 2× SPI, 16× PWM
- USB-C (native USB 1.1), WS2812 RGB LED on GP16
- BOOT and RESET buttons
- 23.5 × 18 mm, castellated pads on the edge
It is programmed just like the Pico: connect USB while holding the BOOT button (or press RESET) and the board shows up as an RPI-RP2 drive, where you copy the UF2 file. In Arduino, use the arduino-pico core (board “Waveshare RP2040 Zero”); MicroPython and CircuitPython work too.
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.
Bottom side
| 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 | GP2 | input/output | UART0 CTS | I2C1 SDA | SPI0 SCK | PWM1 A | ||
| 4 | GP3 | input/output | UART0 RTS | I2C1 SCL | SPI0 TX | PWM1 B | ||
| 5 | GP4 | input/output | UART1 TX | I2C0 SDA | SPI0 RX | PWM2 A | ||
| 6 | GP5 | input/output | UART1 RX | I2C0 SCL | SPI0 CSn | PWM2 B | ||
| 7 | GP6 | input/output | UART1 CTS | I2C1 SDA | SPI0 SCK | PWM3 A | ||
| 8 | GP7 | input/output | UART1 RTS | I2C1 SCL | SPI0 TX | PWM3 B | ||
| 9 | GP8 | input/output | UART1 TX | I2C0 SDA | SPI1 RX | PWM4 A | ||
| 10 | GP9 | input/output | UART1 RX | I2C0 SCL | SPI1 CSn | PWM4 B | ||
| 11 | GP10 | input/output | UART1 CTS | I2C1 SDA | SPI1 SCK | PWM5 A | ||
| 12 | GP11 | input/output | UART1 RTS | I2C1 SCL | SPI1 TX | PWM5 B | ||
| 13 | GP12 | input/output | UART0 TX | I2C0 SDA | SPI1 RX | PWM6 A | ||
| 14 | GP13 | input/output | UART0 RX | I2C0 SCL | SPI1 CSn | PWM6 B | ||
| 15 | GP14 | input/output | UART0 CTS | I2C1 SDA | SPI1 SCK | PWM7 A | ||
| 16 | GP15 | input/output | UART0 RTS | I2C1 SCL | SPI1 TX | PWM7 B | ||
| 17 | GP26 | input/output | UART1 CTS | I2C1 SDA | SPI1 SCK | PWM5 A | ADC0 | |
| 18 | GP27 | input/output | UART1 RTS | I2C1 SCL | SPI1 TX | PWM5 B | ADC1 | |
| 19 | GP28 | input/output | UART0 TX | I2C0 SDA | SPI1 RX | PWM6 A | ADC2 | |
| 20 | GP29 | input/output | UART0 RX | I2C0 SCL | SPI1 CSn | PWM6 B | ADC3 | ADC3 – unlike the Pico, broken out as a regular pin |
| 21 | 3V3 | output | 3.3 V output from the RT9013 regulator (500 mA including the board's own consumption). | |||||
| 22 | GND | – | ||||||
| 23 | 5V | input/output | 5 V directly from the USB connector (VBUS, no diode). It can power the board, but do not connect a supply at the same time as USB – voltage would flow into the computer. | |||||
| Bottom side | GND | – | ||||||
| Bottom side | GP25 | input/output | UART1 RX | I2C0 SCL | SPI1 CSn | PWM4 B | ||
| Bottom side | GP24 | input/output | UART1 TX | I2C0 SDA | SPI1 RX | PWM4 A | ||
| Bottom side | GP23 | input/output | UART1 RTS | I2C1 SCL | SPI0 TX | PWM3 B | ||
| Bottom side | GP22 | input/output | UART1 CTS | I2C1 SDA | SPI0 SCK | PWM3 A | ||
| Bottom side | GP21 | input/output | UART1 RX | I2C0 SCL | SPI0 CSn | PWM2 B | ||
| Bottom side | GP20 | input/output | UART1 TX | I2C0 SDA | SPI0 RX | PWM2 A | ||
| Bottom side | GP19 | input/output | UART0 RTS | I2C1 SCL | SPI0 TX | PWM1 B | ||
| Bottom side | GP18 | input/output | UART0 CTS | I2C1 SDA | SPI0 SCK | PWM1 A | ||
| Bottom side | GP17 | input/output | UART0 RX | I2C0 SCL | SPI0 CSn | PWM0 B |
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 |
|---|---|
| GP16 | WS2812 RGB LED (not broken out) |
What to watch out for
- GPIO are not 5V tolerant.
- The RGB LED is addressable (WS2812) – digitalWrite won’t light it; you need the NeoPixel library.
- The 5V pin carries the USB voltage directly, without a diode – don’t connect a power supply at the same time as USB.
- The bottom pads (GP17–GP25) have a 1.27 mm pitch – not suitable for a breadboard.
- Clones often have the same layout but a different flash chip or regulator.
RP2040 on chiptron.eu/
Projects and guides on chiptron.eu/:
- Picogame – a game engine for CircuitPython optimized for RP2040 and RP2350 chips
More pinouts
See all pinouts on the Pinouts page.