Field Guide · hardware

Also known as: RP2040

RP2040 is a low-cost, dual-core microcontroller designed in-house by Raspberry Pi, built on two ARM Cortex-M0+ cores.1

Core 0 Core 1 SRAM 264 KB QSPI flash Peripherals UART/SPI/I²C/ADC PIO blocks state machines GPIO bit-banged
The RP2040's twist is the PIO block: alongside two Cortex-M0+ cores, shared SRAM, and the usual peripherals sit programmable state machines that drive the GPIO pins directly, generating or capturing custom digital protocols at high speed without stealing core cycles.

Overview

Its signature feature is PIO (programmable I/O): small state machines that can be programmed to bit-bang custom digital protocols at high speed, freeing the main cores from timing-critical work. The chip pairs 264 KB of on-chip SRAM with external QSPI flash and offers the usual GPIO, UART, SPI, I²C, PWM, and ADC peripherals. It is programmed in C/C++ via the Pico SDK, in MicroPython, or in Rust.

Notably, Raspberry Pi designed the RP2040 itself rather than licensing a ready-made microcontroller — the first silicon from the foundation — while still building on Arm’s licensed Cortex-M0+ core.

Key specifications

The headline numbers behind the chip:

Spec RP2040
Cores 2 × ARM Cortex-M0+
Clock Up to 133 MHz
SRAM 264 KB on-chip
Flash External QSPI (none on-chip)
Standout 2 × PIO blocks (8 state machines)
GPIO 30 pins

Where it fits

The RP2040 first shipped on the Raspberry Pi Pico board, but it is sold as a bare chip and now appears in boards from many vendors and in the wireless Pico W. PIO makes it unusually good at driving LED strips, generating waveforms, or implementing odd interfaces — work that would otherwise need an STM32 or external logic. That same PIO flexibility makes it a handy timing-and-GPIO helper beside an SDR capture node, handling protocol chores the decode host would rather not.

Sources

  1. RP2040 — Wikipedia, on the dual-core design and programmable I/O. 

See also