RP2040-Plus
Overview
RP2040-Plus, a low-cost, high-performance Pico-like MCU board based on Raspberry Pi microcontroller RP2040 including a battery charger.
Hardware
Dual core Arm Cortex-M0+ processor running up to 133MHz
264KB on-chip SRAM
4MB/16MB on-board QSPI flash with XIP capabilities
26 GPIO pins
3 Analog inputs
2 UART peripherals
2 SPI controllers
2 I2C controllers
16 PWM channels
USB 1.1 controller (host/device)
8 Programmable I/O (PIO) for custom peripherals
On-board LED
1 Watchdog timer peripheral
on-board battery charger
Supported Features
The rp2040_plus
board supports the hardware features listed below.
- on-chip / on-board
- Feature integrated in the SoC / present on the board.
- 2 / 2
-
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files. -
vnd,foo
-
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.
Type |
Location |
Description |
Compatible |
---|---|---|---|
CPU |
on-chip |
ARM Cortex-M0+ CPU2 |
|
ADC |
on-chip |
Raspberry Pi Pico ADC1 |
|
Clock control |
on-chip |
Raspberry Pi Pico clock controller node1 |
|
on-chip |
|||
on-chip |
The representation of Raspberry Pi Pico’s PLL2 |
||
on-chip |
The representation of Raspberry Pi Pico ring oscillator1 |
||
on-chip |
The representation of Raspberry Pi Pico external oscillator1 |
||
Counter |
on-chip |
Raspberry Pi Pico timer1 |
|
DMA |
on-chip |
Raspberry Pi Pico DMA1 |
|
Flash controller |
on-chip |
Raspberry Pi Pico flash controller1 |
|
GPIO & Headers |
on-chip |
Raspberry Pi Pico GPIO1 |
|
on-chip |
Raspberry Pi Pico GPIO Port1 |
||
on-board |
GPIO pins exposed on Raspberry Pi Pico headers1 |
||
I2C |
on-chip |
||
IIO |
on-board |
Description for a voltage divider, with optional ability to measure resistance of the upper leg1 |
|
Interrupt controller |
on-chip |
ARMv6-M NVIC (Nested Vectored Interrupt Controller) controller1 |
|
LED |
on-board |
Group of GPIO-controlled LEDs1 |
|
on-board |
Group of PWM-controlled LEDs1 |
||
Miscellaneous |
on-chip |
Raspberry Pi Pico PIO2 |
|
MTD |
on-chip |
Flash node1 |
|
on-board |
Fixed partitions of a flash (or other non-volatile storage) memory1 |
||
Pin control |
on-chip |
Raspberry Pi Pico Pin Controller1 |
|
PWM |
on-chip |
Raspberry Pi Pico PWM1 |
|
Regulator |
on-chip |
Raspberry Pi Pico core supply regurator1 |
|
Reset controller |
on-chip |
Raspberry Pi Pico Reset Controller1 |
|
RTC |
on-chip |
Raspberry Pi Pico RTC1 |
|
Sensors |
on-chip |
Raspberry Pi Pico family temperature sensor node1 |
|
Serial controller |
on-chip |
||
SPI |
on-chip |
||
SRAM |
on-chip |
Generic on-chip SRAM1 |
|
Timer |
on-chip |
ARMv6-M System Tick1 |
|
USB |
on-chip |
Raspberry Pi Pico USB Device Controller1 |
|
Watchdog |
on-chip |
Raspberry Pi Pico Watchdog1 |
Pin Mapping
The peripherals of the RP2040 SoC can be routed to various pins on the board. The configuration of these routes can be modified through DTS. Please refer to the datasheet to see the possible routings for each peripheral.

Default Zephyr Peripheral Mapping:
UART0_TX : P0
UART0_RX : P1
I2C0_SDA : P4
I2C0_SCL : P5
I2C1_SDA : P6
I2C1_SCL : P7
SPI0_RX : P16
SPI0_CSN : P17
SPI0_SCK : P18
SPI0_TX : P19
ADC_CH0 : P26
ADC_CH1 : P27
ADC_CH2 : P28
Programming and Debugging
The rp2040_plus
board supports the runners and associated west commands listed below.
flash | debug | |
---|---|---|
uf2 | ✅ (default) |
Flashing
Using UF2
Here is an example of building the sample for driving the built-in led.
west build -b rp2040_plus samples/basic/blinky
You must flash the RP2040-Plus with an UF2 file. One option is to use West (Zephyr’s meta-tool). To enter the UF2 flashing mode just keep the BOOT
button pressed while you connect the USB port, it will appear on the host as a mass storage device. In alternative with the board already connected via USB you can keep the RESET
button pressed, press and release BOOT
, release RESET
. At this point you can flash the image file by running:
west flash
Alternatively, you can locate the generated build/zephyr/zephyr.uf2
file and simply drag-and-drop to the device after entering the UF2 flashing mode.