In 2021, the Raspberry Pi organization introduced a microcontroller-scale product, the Raspberry Pi Pico, as its first endeavor outside of the original Raspberry Pi line. Now, in August 2024, the group has delivered the faster and more capable RP2350 microcontroller and the Raspberry Pi Pico 2 microcontroller board. 

Raspberry Pi Pico 2 microcontroller board

Raspberry Pi Pico 2 microcontroller board. Image used courtesy of Raspberry Pi

Raspberry Pi Pico Made a Name for Itself

The Pico series differs from the original Raspberry Pi in that the originals are systems built around CPU-class system-on-chip (SoC) processors. They are intended for use with an operating system like Linux. While the peripherals and GPIO are directly accessible, the unit is architected more like a standalone computer than a microcontroller.

The Pico series is built with a microcontroller developed in-house based on simpler Arm Cortex-M or RISC-V MCU processing cores. The Pico will generally be used in “bare metal” form—that is, without an operating system—and is suitable for real-time control and operation of sensors, motor drivers, and other small system products. 

The RP2350 MCU Upgrades Speed, Memory, and Security

Amid the original Pico’s popularity and success, the Raspberry Pi Foundation received feedback from users and targeted several areas for improvement. The RP2040, the original Raspberry Pi microcontroller, came with two 32-bit Arm Cortex-M0+ cores running at 133 MHz, a 264 kB on-chip SRAM, and a healthy supply of I/Os.

The new RP2350 (datasheet linked) improves on the 2040 with faster and more powerful dual Cortex-M33 cores running at 150 MHz with floating point and DSP support. It has double the SRAM, with 520 kB on-chip, 2-MB internal Flash, up to 48 GPIOs, and up to eight analog inputs. Versions of the chip without internal Flash are also available.

Diagram of the RP2350

Diagram of the RP2350. Image used courtesy of Raspberry Pi

The new MCU adds hardware security as a response to the threat environment now common even in the MCU world. Security includes support for signed boot, 8 kB of one-time-programmable (OTP) memory, SHA-256 cryptographic hash function acceleration, and a hardware true random number generator (TRNG).

Changeable Cores at Boot-Time

A fascinating aspect of the RP2350 is its ability to change CPU cores at boot time. As shipped, it is powered by a pair of Arm Cortex-M33 cores. The chip can be switched at boot time to replace the Arm cores with a pair of Hazard3 RISC-V cores. It can be switched manually, or it can auto-switch if it detects RISC-V code ready to execute.

Switchable between RISC-V and Arm Cortex

Switchable between RISC-V and Arm Cortex. Image used courtesy of Raspberry Pi

Most of the chip features, with the exception of some security features and the double-precision floating-point accelerator, are available in RISC-V mode.

Deterministic Real-Time Performance

Raspberry Pi engineers designed the MCU in the Pico and Pico 2 with extensive MCU usage experience. As such, it has several features inspired by real-world MCU problems, one of the most prominent being real-time capabilities. Determinism in real-time operations is often a challenge in complex MCU employment. The original RP2040 introduced a set of programmable I/O (PIO) state machines to improve real-time response.

The new 2350 has increased that to 12 upgraded FIFO-connected PIO state machines. State machines are often a convenient way to deal with peripheral inputs. However, keeping track of states from multiple inputs can be challenging in software, especially in real-time environments with hardware interrupt triggering. Having CPU-independent hardware state machines allows for absolute deterministic interfacing with external peripherals for more consistent real-time performance.

Software Support

As with other Raspberry Pi products, the company’s design team maintained a low barrier to entry for the new MCU. Some Arm and RISC-V chips can be daunting at first. The MCU promotes simple usability, starting with a UF2 bootloader in ROM. After that, it supports multiple languages. The SDK has been released with C and C++ support. For an even lower barrier, it has an available image for Micro Python and Circuit Python available. There is also a team developing a Rust port for the platform.

The Raspberry Pi Pico 2

The Raspberry Pi Pico 2 is equipped for Google Pigweed development. Image used courtesy of Google Open Source

Google has worked with the Pico development team to build support for its Pigweed SDK. Pigweed is Google’s open-source embedded SDK designed to improve 32-bit MCU software development. It’s built around a collection of embedded libraries,  real-time operating system (RTOS) abstractions, and remote procedure call (RPC) interfaces.

Extensive Third-Party Support

At the time of writing, the basic Pico 2 board is available from Raspberry Pi for $5 USD. The RP2350 is also available built into boards from about a dozen third-party hardware manufacturers. Vendors like SparkFun, Piomoroni, Seeed Studio, and others have designed development and project boards of their own around the MCU.