Waveshare RP2350-PiZero

The Waveshare RP2350-PiZero is a development board based on the Raspberry Pi RP2350B microcontroller. It has the same form factor as the Raspberry Pi Zero.

Interfaces

Interface Hardware Supported TinyGo Support
GPIO YES YES
UART YES YES
SPI YES YES
I2C YES YES
ADC YES YES
PWM YES YES
USBDevice YES YES

Pins

Pin Hardware pin Alternative names I2C PWM
GP0 GPIO0 UART0_TX_PIN I2C0 (SDA) PWM0 (channel A)
GP1 GPIO1 UART0_RX_PIN I2C0 (SCL) PWM0 (channel B)
GP2 GPIO2 I2C1_SDA_PIN I2C1 (SDA) PWM1 (channel A)
GP3 GPIO3 I2C1_SCL_PIN I2C1 (SCL) PWM1 (channel B)
GP4 GPIO4 UART1_TX_PIN, UART_TX_PIN I2C0 (SDA) PWM2 (channel A)
GP5 GPIO5 UART1_RX_PIN, UART_RX_PIN I2C0 (SCL) PWM2 (channel B)
GP6 GPIO6 I2C1 (SDA) PWM3 (channel A)
GP7 GPIO7 I2C1 (SCL) PWM3 (channel B)
GP8 GPIO8 I2C0 (SDA) PWM4 (channel A)
GP9 GPIO9 I2C0 (SCL) PWM4 (channel B)
GP10 GPIO10 SPI1_SCK_PIN I2C1 (SDA) PWM5 (channel A)
GP11 GPIO11 SPI1_SDO_PIN I2C1 (SCL) PWM5 (channel B)
GP12 GPIO12 SPI1_SDI_PIN I2C0 (SDA) PWM6 (channel A)
GP13 GPIO13 I2C0 (SCL) PWM6 (channel B)
GP14 GPIO14 I2C1 (SDA) PWM7 (channel A)
GP15 GPIO15 I2C1 (SCL) PWM7 (channel B)
GP16 GPIO16 I2C0 (SDA) PWM0 (channel A)
GP17 GPIO17 I2C0 (SCL) PWM0 (channel B)
GP18 GPIO18 I2C1 (SDA) PWM1 (channel A)
GP19 GPIO19 I2C1 (SCL) PWM1 (channel B)
GP20 GPIO20 I2C0 (SDA) PWM2 (channel A)
GP21 GPIO21 I2C0 (SCL) PWM2 (channel B)
GP22 GPIO22 PWM3 (channel A)
GP23 GPIO23 PWM3 (channel B)
GP24 GPIO24 PWM4 (channel A)
GP25 GPIO25 PWM4 (channel B)
GP26 GPIO26 I2C1 (SDA) PWM5 (channel A)
GP27 GPIO27 I2C1 (SCL) PWM5 (channel B)
GP28 GPIO28 PWM6 (channel A)
GP29 GPIO29 PWM6 (channel B)
GP30 GPIO30 I2C1 (SDA) PWM7 (channel A)
GP31 GPIO31 I2C1 (SCL) PWM7 (channel B)
GP32 GPIO32 I2C0 (SDA) PWM8 (channel A)
GP33 GPIO33 I2C0 (SCL) PWM8 (channel B)
GP34 GPIO34 I2C1 (SDA) PWM9 (channel A)
GP35 GPIO35 I2C1 (SCL) PWM9 (channel B)
GP36 GPIO36 I2C0 (SDA) PWM10 (channel A)
GP37 GPIO37 I2C0 (SCL) PWM10 (channel B)
GP38 GPIO38 I2C1 (SDA) PWM11 (channel A)
GP39 GPIO39 I2C1 (SCL) PWM11 (channel B)
GP40 GPIO40 ADC0 I2C0 (SDA) PWM8 (channel A)
GP41 GPIO41 ADC1 I2C0 (SCL) PWM8 (channel B)
GP42 GPIO42 ADC2 I2C1 (SDA) PWM9 (channel A)
GP43 GPIO43 ADC3 I2C1 (SCL) PWM9 (channel B)
GP44 GPIO44 ADC4 I2C0 (SDA) PWM10 (channel A)
GP45 GPIO45 ADC5 I2C0 (SCL) PWM10 (channel B)
GP46 GPIO46 ADC6 I2C1 (SDA) PWM11 (channel A)
GP47 GPIO47 ADC7 I2C1 (SCL) PWM11 (channel B)

Machine Package Docs

Documentation for the machine package for the Waveshare RP2350-PiZero

Flashing

UF2

The Waveshare RP2350-PiZero comes with the UF2 bootloader already installed.

CLI Flashing

  • Flash your TinyGo program to the board using this command:

    tinygo flash -target=waveshare-rp2350-pizero [PATH TO YOUR PROGRAM]
    
  • The Waveshare RP2350-PiZero board should restart and then begin running your program.

Notes

You can use the USB port to the Waveshare RP2350-PiZero as a serial port.

TinyGo has support for the RP2350’s on-board Programmable Input/Output (PIO) block.

For more information, see https://github.com/tinygo-org/pio