Waveshare Core2350B

Overview

The Waveshare Core2350B is a compact core board based on the Raspberry Pi RP2350B microcontroller. It brings out 48 GPIOs on 2.54 mm pitch headers for integration into carrier boards. USB is provided through a 6-pin FPC connector, which connects to a USB Type-C port through an optional adapter board.

The board is available in three variants that differ only in the populated PSRAM:

  • Core2350B0: no PSRAM

  • Core2350B1: 2 MB PSRAM

  • Core2350B2: 8 MB PSRAM

The RP2350B SoC has two Cortex-M33 cores and two Hazard3 (RISC-V) cores. Zephyr supports builds targeting either CPU architecture, but currently runs on one core only; running code on the second core is not supported.

Hardware

  • RP2350B microcontroller with dual Cortex-M33 or dual Hazard3 processors at up to 150 MHz

  • 520 KB of SRAM and 16 MB of QSPI flash (W25Q128JVSIQ)

  • Optional 2 MB or 8 MB QSPI PSRAM, depending on the variant

  • 12 MHz crystal oscillator

  • 6-pin 0.5 mm pitch FPC connector carrying VBUS, USB D+/D-, BOOTSEL and RUN

  • ME6217C33M5G 3.3 V LDO regulator (800 mA), enable signal available on the header

  • 64 pins on four 2x8 headers with 2.54 mm pitch

  • USB 1.1 with device and host support

  • Low-power sleep and dormant modes

  • Drag-and-drop programming using mass storage over USB

  • 48 multi-function GPIO pins, 8 of which can be used as ADC inputs

  • 2 SPI, 2 I2C, 2 UART, 8 12-bit ADC channels, 24 controllable PWM channels

  • Temperature sensor

  • 3 Programmable I/O (PIO) blocks, 12 state machines total

  • SWD debug port on the header

  • User LED (red) on GPIO39

Supported Features

The core2350b 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.

core2350b/rp2350b/hazard3_0 target

On-target memory for this board target: 520 KiB of RAM, 16 MiB of Flash.

Type

Location

Description

Compatible

CPU

on-chip

Generic RISC-V CPU2

riscv

ADC

on-chip

Raspberry Pi Pico ADC1

raspberrypi,pico-adc

Clock control

on-chip

The representation of Raspberry Pi Pico’s clock112

raspberrypi,pico-clock

on-chip

The representation of Raspberry Pi Pico’s PLL2

raspberrypi,pico-pll

on-chip

The representation of Raspberry Pi Pico ring oscillator1

raspberrypi,pico-rosc

on-chip

The representation of Raspberry Pi Pico external oscillator1

raspberrypi,pico-xosc

on-chip

Raspberry Pi Pico clock controller node1

raspberrypi,pico-clock-controller

Counter

on-chip

Raspberry Pi Pico timer11

raspberrypi,pico-timer

Cryptographic accelerator

on-chip

Raspberry Pi Pico SHA-256 accelerator1

raspberrypi,pico-sha256

DMA

on-chip

Raspberry Pi Pico DMA1

raspberrypi,pico-dma

Flash controller

on-chip

Raspberry Pi Pico flash controller1

raspberrypi,pico-flash-controller

GPIO & Headers

on-chip

Raspberry Pi Pico GPIO1

raspberrypi,pico-gpio

on-chip

Raspberry Pi Pico GPIO Port2

raspberrypi,pico-gpio-port

I2C

on-chip

Raspberry Pi Pico I2C2

raspberrypi,pico-i2c

Interrupt controller

on-chip

Hazard3 interrupt controller1

hazard3,hazard3-intc

LED

on-board

Group of GPIO-controlled LEDs1

gpio-leds

on-board

Group of PWM-controlled LEDs1

pwm-leds

Mailbox

on-chip

Raspberry Pi Pico interprocessor mailbox1

raspberrypi,pico-mbox

Miscellaneous

on-chip

Raspberry Pi Pico POWMAN (power manager)1

raspberrypi,pico-powman

on-chip

Raspberry Pi Pico PIO3

raspberrypi,pico-pio

on-chip

Raspberry Pi Pico SIO1

raspberrypi,pico-sio

MTD

on-chip

Flash node1

soc-nv-flash

Pin control

on-chip

Raspberry Pi Pico Pin Controller1

raspberrypi,pico-pinctrl

PWM

on-chip

Raspberry Pi Pico PWM1

raspberrypi,pico-pwm

Regulator

on-chip

Raspberry Pi Pico core supply regurator1

raspberrypi,core-supply-regulator

Reset controller

on-chip

Raspberry Pi Pico Reset Controller1

raspberrypi,pico-reset

RNG

on-chip

Raspberry Pi Pico RNG/Entropy1

raspberrypi,pico-rng

Sensors

on-chip

Raspberry Pi Pico family temperature sensor node1

raspberrypi,pico-temp

Serial controller

on-chip

Raspberry Pi Pico UART11

raspberrypi,pico-uart

SPI

on-chip

Raspberry Pi Pico SPI11

raspberrypi,pico-spi

SRAM

on-chip

Generic on-chip SRAM1

mmio-sram

Timer

on-chip

RISC-V Machine Timer1

riscv,machine-timer

USB

on-chip

Raspberry Pi Pico USB Device Controller1

raspberrypi,pico-usbd

Watchdog

on-chip

Raspberry Pi Pico Watchdog1

raspberrypi,pico-watchdog

core2350b/rp2350b/m33_0 target

On-target memory for this board target: 520 KiB of RAM, 16 MiB of Flash.

Type

Location

Description

Compatible

CPU

on-chip

ARM Cortex-M33 CPU2

arm,cortex-m33

ADC

on-chip

Raspberry Pi Pico ADC1

raspberrypi,pico-adc

Clock control

on-chip

The representation of Raspberry Pi Pico’s clock112

raspberrypi,pico-clock

on-chip

The representation of Raspberry Pi Pico’s PLL2

raspberrypi,pico-pll

on-chip

The representation of Raspberry Pi Pico ring oscillator1

raspberrypi,pico-rosc

on-chip

The representation of Raspberry Pi Pico external oscillator1

raspberrypi,pico-xosc

on-chip

Raspberry Pi Pico clock controller node1

raspberrypi,pico-clock-controller

Counter

on-chip

Raspberry Pi Pico timer11

raspberrypi,pico-timer

Cryptographic accelerator

on-chip

Raspberry Pi Pico SHA-256 accelerator1

raspberrypi,pico-sha256

DMA

on-chip

Raspberry Pi Pico DMA1

raspberrypi,pico-dma

Flash controller

on-chip

Raspberry Pi Pico flash controller1

raspberrypi,pico-flash-controller

GPIO & Headers

on-chip

Raspberry Pi Pico GPIO1

raspberrypi,pico-gpio

on-chip

Raspberry Pi Pico GPIO Port2

raspberrypi,pico-gpio-port

I2C

on-chip

Raspberry Pi Pico I2C2

raspberrypi,pico-i2c

Interrupt controller

on-chip

ARMv8-M NVIC (Nested Vectored Interrupt Controller)1

arm,v8m-nvic

LED

on-board

Group of GPIO-controlled LEDs1

gpio-leds

on-board

Group of PWM-controlled LEDs1

pwm-leds

Mailbox

on-chip

Raspberry Pi Pico interprocessor mailbox1

raspberrypi,pico-mbox

Miscellaneous

on-chip

Raspberry Pi Pico POWMAN (power manager)1

raspberrypi,pico-powman

on-chip

Raspberry Pi Pico PIO3

raspberrypi,pico-pio

on-chip

Raspberry Pi Pico SIO1

raspberrypi,pico-sio

MTD

on-chip

Flash node1

soc-nv-flash

Pin control

on-chip

Raspberry Pi Pico Pin Controller1

raspberrypi,pico-pinctrl

PWM

on-chip

Raspberry Pi Pico PWM1

raspberrypi,pico-pwm

Regulator

on-chip

Raspberry Pi Pico core supply regurator1

raspberrypi,core-supply-regulator

Reset controller

on-chip

Raspberry Pi Pico Reset Controller1

raspberrypi,pico-reset

RNG

on-chip

Raspberry Pi Pico RNG/Entropy1

raspberrypi,pico-rng

Sensors

on-chip

Raspberry Pi Pico family temperature sensor node1

raspberrypi,pico-temp

Serial controller

on-chip

Raspberry Pi Pico UART11

raspberrypi,pico-uart

SPI

on-chip

Raspberry Pi Pico SPI11

raspberrypi,pico-spi

SRAM

on-chip

Generic on-chip SRAM1

mmio-sram

Timer

on-chip

ARMv8-M System Tick1

arm,armv8m-systick

USB

on-chip

Raspberry Pi Pico USB Device Controller1

raspberrypi,pico-usbd

Watchdog

on-chip

Raspberry Pi Pico Watchdog1

raspberrypi,pico-watchdog

Connections and IOs

The board has no buttons and no USB connector of its own. The BOOTSEL and RUN signals, the USB data lines and VBUS are routed both to the FPC connector and to header P2. The USB Type-C adapter board connected through the FPC cable provides the BOOT and RESET buttons.

Headers

  • P1: GPIO0 to GPIO14

  • P3: GPIO15 to GPIO29

  • P4: GPIO30 to GPIO44

  • P2: GPIO45 to GPIO47, SWCLK, SWD, BOOTSEL, RUN, USBD_P, USBD_N, ADC_VREF, 3V3_EN, VBUS and 3V3

The board is powered from VBUS (5 V) through the FPC connector or header P2. Pulling 3V3_EN low disables the 3.3 V regulator.

Default Zephyr Peripheral Mapping

  • UART0_TX : GPIO0

  • UART0_RX : GPIO1

  • I2C0_SDA : GPIO4

  • I2C0_SCL : GPIO5

  • I2C1_SDA : GPIO6

  • I2C1_SCL : GPIO7

  • SPI0_RX : GPIO16

  • SPI0_CSN : GPIO17

  • SPI0_SCK : GPIO18

  • SPI0_TX : GPIO19

  • LED0 / PWM_11B : GPIO39

  • ADC_CH0 : GPIO40

  • ADC_CH1 : GPIO41

  • ADC_CH2 : GPIO42

  • ADC_CH3 : GPIO43

  • ADC_CH4 : GPIO44

  • ADC_CH5 : GPIO45

  • ADC_CH6 : GPIO46

The Zephyr console and shell use USB CDC ACM by default.

GPIO47 (ADC channel 7) is the PSRAM chip select and also reaches header P2 through a 0 ohm resistor (R11). On the Core2350B1 and Core2350B2 variants, do not use it as a general-purpose pin. PSRAM is not currently supported in Zephyr.

Programming and Debugging

The core2350b board supports the runners and associated west commands listed below.

flash debug attach debugserver rtt reset
jlink ✅ ✅ ✅ ✅ ✅ ✅
openocd ✅ (default) ✅ (default) ✅ ✅ ✅
probe-rs ✅ ✅ ✅ ✅
uf2 ✅

The overall explanation regarding flashing and debugging is the same as for Raspberry Pi Pico. See Programming and Debugging in Raspberry Pi Pico documentation. N.b. OpenOCD support requires using Raspberry Pi’s forked version of OpenOCD. The SWD signals are available on header P2.

Flashing with UF2

To enter the UF2 bootloader with the USB Type-C adapter board connected, hold the BOOT button, press and release RESET, then release BOOT. Without the adapter board, pull BOOTSEL to ground while pulsing RUN low on header P2. The board then appears on the host as a mass storage device.

Below is an example of building and flashing the Blinky application.

# From the root of the zephyr repository
west build -b core2350b/rp2350b/m33_0 samples/basic/blinky
west flash -r uf2

To target the Hazard3 (RISC-V) core instead, use core2350b/rp2350b/hazard3_0 as the board.

References