Raspberry Pi Pico 2

Overview

The Raspberry Pi Pico 2 and Pico 2W are second-generation products in the Raspberry Pi Pico family. From the Raspberry Pi website is referred to as Pico 2.

The Pico 2 supports running code on either a single Cortex-M33 or a Hazard3 (RISC-V) core.

As with the Pico 1, there’s no support for running any code on the second core.

Hardware

  • Dual Cortex-M33 or Hazard3 processors at up to 150MHz

  • 520KB of SRAM, and 4MB of on-board flash memory

  • USB 1.1 with device and host support

  • Low-power sleep and dormant modes

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

  • 26 multi-function GPIO pins including 3 that can be used for ADC

  • 2 SPI, 2 I2C, 2 UART, 3 12-bit 500ksps Analogue to Digital - Converter (ADC), 24 controllable PWM channels

  • 2 Timer with 4 alarms, 1 AON Timer

  • Temperature sensor

  • 3 Programmable IO (PIO) blocks, 12 state machines total for custom peripheral support

  • Infineon CYW43439 2.4 GHz Wi-Fi chip (Pico 2W only)

    • Flexible, user-programmable high-speed IO

    • Can emulate interfaces such as SD Card and VGA

Supported Features

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

Connections and IOs

The default pin mapping is unchanged from the Pico 1 (see Pin Mapping).

Programming and Debugging

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

flash debug

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.

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

# From the root of the zephyr repository
west build -b rpi_pico2/rp2350a/m33 samples/basic/blinky
west flash --openocd /usr/local/bin/openocd

The blinky sample is not yet supported on Pico 2W, so try the Wi-Fi shell application to connect to the network.

Wi-Fi Firmware Setup

Before building applications for the Pico 2W variant, you must fetch the required Wi-Fi firmware blobs. The Infineon CYW43439 chip requires proprietary firmware and CLM (Country Localization Module) files.

Run the following command to download these blobs:

west blobs fetch hal_infineon

This command downloads the necessary firmware files from Infineon’s repositories, including:

  • 43439A0.bin - Wi-Fi firmware for CYW43439

  • 43439A0.clm_blob - Country localization data

You only need to run this command once per workspace. Without these blobs, the build will fail with CMake errors about missing firmware files.

Building Wi-Fi Applications

After fetching the blobs, you can build Wi-Fi applications:

# From the root of the zephyr repository
west build -b rpi_pico2/rp2350a/m33/w samples/net/wifi/shell
west flash --openocd /usr/local/bin/openocd

References