RP2350-Zero
Overview
RP2350-Zero, A Low-Cost, High-Performance Pico-Like MCU Board Based On Raspberry Pi Microcontroller RP2350.
Hardware
RP2350A microcontroller chip designed by Raspberry Pi in the United Kingdom
Adopts unique dual-core and dual-architecture design: dual-core Arm Cortex-M33 processor and dual-core Hazard 3 RISC-V processor, flexible clock running up to 150 MHz
520KB of SRAM, and 4MB of on-board Flash memory
Uses a modern and convenient USB Type-C connector
Castellated module allows soldering directly to carrier boards
USB 1.1 with device and host support
Low-power sleep and dormant modes
Drag-and-drop programming using mass storage over USB
29 × multi-function GPIO pins (20× via edge pinout, others via solder points)
2 × SPI, 2 × I2C, 2 × UART, 4 × 12-bit ADC, 24 × controllable PWM channels
Accurate on-chip clock and timer peripherals
Temperature sensor
Accelerated floating-point libraries on-chip
12 × Programmable I/O (PIO) state machines for custom peripheral support
Supported Features
The rp2350_zero 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.
rp2350_zero/rp2350a/hazard3 target
Type |
Location |
Description |
Compatible |
|---|---|---|---|
ADC |
on-chip |
Raspberry Pi Pico ADC1 |
|
Clock control |
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 |
||
on-chip |
Raspberry Pi Pico clock controller node1 |
||
Counter |
on-chip |
||
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 |
|||
I2C |
on-chip |
Raspberry Pi Pico I2C2 |
|
Interrupt controller |
on-chip |
Hazard3 interrupt controller1 |
|
LED strip |
on-board |
The pio node configured for ws28121 |
|
Miscellaneous |
on-chip |
||
MTD |
on-chip |
Flash node1 |
|
Pin control |
on-chip |
Raspberry Pi Pico Pin Controller1 |
|
PWM |
on-chip |
Raspberry Pi Pico PWM1 |
|
Reset controller |
on-chip |
Raspberry Pi Pico Reset Controller1 |
|
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 |
RISC-V Machine Timer1 |
|
USB |
on-chip |
Raspberry Pi Pico USB Device Controller1 |
|
Watchdog |
on-chip |
Raspberry Pi Pico Watchdog1 |
rp2350_zero/rp2350a/m33 target
Type |
Location |
Description |
Compatible |
|---|---|---|---|
CPU |
on-chip |
ARM Cortex-M33 CPU2 |
|
ADC |
on-chip |
Raspberry Pi Pico ADC1 |
|
Clock control |
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 |
||
on-chip |
Raspberry Pi Pico clock controller node1 |
||
Counter |
on-chip |
||
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 |
|||
I2C |
on-chip |
Raspberry Pi Pico I2C2 |
|
Interrupt controller |
on-chip |
ARMv8-M NVIC (Nested Vectored Interrupt Controller)1 |
|
LED strip |
on-board |
The pio node configured for ws28121 |
|
Miscellaneous |
on-chip |
||
MTD |
on-chip |
Flash node1 |
|
Pin control |
on-chip |
Raspberry Pi Pico Pin Controller1 |
|
PWM |
on-chip |
Raspberry Pi Pico PWM1 |
|
Reset controller |
on-chip |
Raspberry Pi Pico Reset Controller1 |
|
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 |
ARMv8-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 RP2350 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.
For detailed hardware information, see the RP2350-Zero – Waveshare Wiki.
Default Zephyr Peripheral Mapping:
UART0_TX : P0
UART0_RX : P1
I2C0_SDA : P4
I2C0_SCL : P5
I2C1_SDA : P6
I2C1_SCL : P7
ADC_CH0 : P26
ADC_CH1 : P27
ADC_CH2 : P28
ADC_CH3 : P29
Programming and Debugging
The rp2350_zero board supports the runners and associated west commands listed below.
| flash | debug | attach | rtt | debugserver | |
|---|---|---|---|---|---|
| openocd | ✅ (default) | ✅ (default) | ✅ | ✅ | ✅ |
| probe-rs | ✅ | ✅ | ✅ | ✅ | |
| uf2 | ✅ |
Flashing
Using UF2
Here is an example of building the sample for driving the built-in RGB led.
west build -b rp2350_zero/rp2350a/m33 samples/drivers/led/led_strip
You can flash the RP2350-Zero 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. Alternatively, with the board already connected via USB you can keep the BOOT button pressed, press and release RESET, release BOOT. At this point you can flash the image file by running:
west flash
Alternatively, you can locate the generated file at build/zephyr/zephyr.uf2 file and simply drag-and-drop to the device after entering the UF2 flashing mode.