RP2040
Raspberry Pi RP2040 microcontroller: dual-core Arm Cortex-M0+ up to 133 MHz, 264 kB SRAM, 4-channel ADC (12-bit), USB 1.1 device/host, two PIO blocks; no built-in flash — the board provides external QSPI flash.
RP2040 is Raspberry Pi’s original microcontroller: two Arm Cortex-M0+ cores, 264 kB of on-chip SRAM, programmable I/O (PIO) state machines and a USB 1.1 controller, in a 7 x 7 mm QFN-56 package. It has no built-in flash — code runs from external QSPI flash that the board solders on. In MCUID’s hardware chain this page describes the chip; memory size, headers and connectors are board facts.
Start from a board: Raspberry Pi Pico. Official docs: RP2040 chip overview.
- Processing — symmetric dual-core Cortex-M0+ at up to 133 MHz.
- Memory — 264 kB SRAM on-chip; flash is external by design.
- I/O — fixed UART/SPI/I2C/PWM blocks plus PIO, and USB 1.1 host/device.
Capabilities — what the chip provides
Each row is one capability: the official wording, what it means in development, and the source.
| Capability | What it is · what it means for development | Source |
|---|---|---|
| Dual-core Arm Cortex-M0+ @ up to 133 MHz | “Symmetric dual-core Arm Cortex-M0+ processor runs at up to 133 MHz” (official wording). | RP chip docs |
| 264 kB on-chip SRAM, six banks | “264 kB of on-chip SRAM in six independent banks” (official wording). | RP chip docs |
| No built-in flash; external QSPI | “RP2040 has no built-in flash memory … run code directly from external flash memory over a fast QSPI interface” (official wording). | RP chip docs |
| 4-channel ADC, 12-bit, 500 kS/s + temperature sensor | “4-channel ADC with internal temperature sensor, 500 kS/s, and 12-bit conversion” (official wording). | RP chip docs |
| Two PIO blocks, eight state machines | “two PIO blocks, each with four state machines (eight in total)” (official wording). | RP chip docs |
| 2 UART / 2 SPI / 2 I2C / 16 PWM / USB 1.1 host+device | “Two UARTs … Two SPI controllers … Two I2C controllers … 16 PWM channels … A USB 1.1 controller and PHY, with host and device support” (official wording). | RP chip docs |
Before you rely on a capability — scope and limits
- No built-in flash. Program storage lives on a flash chip the board provides (the Pico solders 2 MB on-board); flash capacity is a board fact, never a chip fact.
- PIO is not the fixed peripherals. The two PIO blocks run custom protocols in hardware; they are separate from the two hardware UART/SPI/I2C blocks, whose mux pins are fixed (see the bus guide).
- Temperature sensor caveats. The internal sensor is low-resolution and user-calibrated; accuracy depends on knowing VREF. Treat readings as indicative without calibration.
- USB 1.1, not USB 2. Host and device modes are supported; speed is USB 1.1.
- Which pins reach a header is board wiring. On the Pico some GPIOs are consumed by board functions (GP23/24/25/29) — see the board page.
Boards built on the RP2040
Pinouts, revisions and connectors live on the board pages.
Boards using this chip
Start developing
- MicroPython — the Pico getting-started guide covers both language paths and the BOOTSEL drag-and-drop first flash.
- C/C++ SDK — the same guide links the official SDK path; pin defaults come from the SDK board header (a software convention — see pin numbers).
- Picking between Pico generations? Read Pico vs Pico 2 — this chip powers the original Pico.
Common questions this site answers
- Pico vs Pico 2 — what changes between RP2040 and RP2350, and the W/H naming traps.
- Getting started with the Pico — language choice, BOOTSEL behaviour and toolchain steps.
- The board is not detected over USB — the no-bridge BOOTSEL chain.
- 3.3 V and 5 V on the Pico — VSYS/VBUS and the ADC reverse-diode rule.
Sources and evidence
- Chip capabilities — the table cites the RP2040 chip overview, features section, retrieved 2026-11-09.
- Board facts — the Pico page carries its own datasheet-sourced records (flash, header mapping, internal-function GPIOs).
Also known as: rp2040, RP2040.