RP2040
MicrocontrollerThe RP2040 is a microcontroller from Raspberry Pi. View the full RP2040 datasheet below including key specifications, pinout.
Official RP2040 datasheet (PDF) — the source this page was extracted from.
RP2040 Key Specifications
| Parameter | Value |
|---|---|
| ADC (Bit) | 12bit |
| Core Size | 32 Bit |
| CPU Core | ARM Cortex-M0+ |
| CPU Maximum Speed | 133MHz |
| Number of I/O | 30 |
| Operating Temperature | -20℃~+85℃ °C |
| Oscillator Type | Built-in+External |
| Program Memory Type | External |
| Supply Voltage | 1.8V~3.3V |
RP2040 Overview
Part: Raspberry Pi RP2040
Type: Microcontroller
Description: The RP2040 is a dual ARM Cortex-M0+ microcontroller operating at up to 133 MHz, featuring 264kB on-chip SRAM, support for up to 16MB off-chip Flash, and a rich peripheral set including 30 GPIOs, 2x UART, 2x SPI, 2x I2C, 16x PWM, 8x PIO state machines, and USB 1.1.
Operating Conditions:
- Supply voltage: 1.8–3.3 V
- Operating temperature: null
- Max clock frequency: 133 MHz
Absolute Maximum Ratings:
- Max supply voltage: null
- Max continuous current: null
- Max junction/storage temperature: null
Key Specs:
- CPU: Dual ARM Cortex-M0+ @ 133 MHz
- On-chip SRAM: 264kB in six independent banks
- Off-chip Flash memory support: Up to 16MB via dedicated QSPI bus
- GPIO pins: 30 (four can be used as analogue inputs)
- Communication Peripherals: 2 × UARTs, 2 × SPI controllers, 2 × I2C controllers
- PWM channels: 16
- PIO state machines: 8
- USB: 1.1 controller and PHY, with host and device support
Features:
- DMA controller
- Fully connected AHB crossbar
- Interpolator and integer divider peripherals
- On-chip programmable LDO to generate core voltage
- Two on-chip PLLs to generate USB and core clocks
- UF2 bootloader in ROM
- Polished MicroPython port
Applications:
- Machine learning
- Motor control
- Agriculture
- Audio
Package:
- 7 × 7 mm QFN-56 package
RP2040 Features
CPU:
Dual ARM Cortex-M0+ @ 133 MHz
Memory:
264kB on-chip SRAM in six independent banks Support for up to 16MB of off-chip Flash memory via dedicated QSPI bus
Architecture:
DMA controller
Fully connected AHB crossbar Interpolator and integer divider peripherals On-chip programmable LDO to generate core voltage Two on-chip PLLs to generate USB and core clocks
Interfacing:
30 GPIO pins, four of which can be used as analogue inputs
Peripherals:
2 × UARTs 2 × SPI controllers 2 × I2C controllers 16 × PWM channels 8 × PIO state machines
1 × USB 1.1 controller and PHY, with host and device support
Package:
7 × 7 mm QFN-56 package
Product lifetime:
Raspberry Pi understands the value to customers of long term availability of product and therefore aims to continue supply for as long as practically possible. We expect RP2040 to remain in production until at least January 2041.
Compliance:
RP2040 is compliant to Moisture Sensitivity Level 1. RP2040 is compliant to the requirement of REACH Substances of Very High Concern (SVHC) that ECHA announced on 25 June 2020.
RP2040 is compliant to the requirement and standard of Controlled Environment-related Substance of RoHS directive (EU) 2011/65/EU and directive (EU) 2015/863.
Full details can be found in the RP2040 datasheet.
RP2040 Pin Configuration
RP2040 QFN-56 Pinout
| Pin | Name | Type | Description |
|---|---|---|---|
| 1 | IOVDD | P | I/O Supply Voltage |
| 2 | GPIO0 | I/O | General Purpose I/O 0 |
| 3 | GPIO1 | I/O | General Purpose I/O 1 |
| 4 | GPIO2 | I/O | General Purpose I/O 2 |
| 5 | GPIO3 | I/O | General Purpose I/O 3 |
| 6 | GPIO4 | I/O | General Purpose I/O 4 |
| 7 | GPIO5 | I/O | General Purpose I/O 5 |
| 8 | GPIO6 | I/O | General Purpose I/O 6 |
| 9 | GPIO7 | I/O | General Purpose I/O 7 |
| 10 | IOVDD | P | I/O Supply Voltage |
| 11 | GPIO8 | I/O | General Purpose I/O 8 |
| 12 | GPIO9 | I/O | General Purpose I/O 9 |
| 13 | GPIO10 | I/O | General Purpose I/O 10 |
| 14 | GPIO11 | I/O | General Purpose I/O 11 |
| 15 | GPIO12 | I/O | General Purpose I/O 12 |
| 16 | GPIO13 | I/O | General Purpose I/O 13 |
| 17 | GPIO14 | I/O | General Purpose I/O 14 |
| 18 | GPIO15 | I/O | General Purpose I/O 15 |
| 19 | TESTEN | I | Test Enable |
| 20 | XOUT | O | Crystal Oscillator Output |
| 21 | XIN | I | Crystal Oscillator Input |
| 22 | DVDD | P | Core Supply Voltage |
| 23 | DVDD | P | Core Supply Voltage |
| 24 | SWCLK | I/O | SWD Clock |
| 25 | SWDIO | I/O | SWD Data I/O |
| 26 | RUN | I | Run Control |
| 27 | GPIO16 | I/O | General Purpose I/O 16 |
| 28 | GPIO17 | I/O | General Purpose I/O 17 |
| 29 | GPIO18 | I/O | General Purpose I/O 18 |
| 30 | GPIO19 | I/O | General Purpose I/O 19 |
| 31 | GPIO20 | I/O | General Purpose I/O 20 |
| 32 | GPIO21 | I/O | General Purpose I/O 21 |
| 33 | IOVDD | P | I/O Supply Voltage |
| 34 | GPIO22 | I/O | General Purpose I/O 22 |
| 35 | GPIO23 | I/O | General Purpose I/O 23 |
| 36 | GPIO24 | I/O | General Purpose I/O 24 |
| 37 | GPIO25 | I/O | General Purpose I/O 25 |
| 38 | GPIO26/ADC0 | I/O | General Purpose I/O 26 / ADC Channel 0 |
| 39 | GPIO27/ADC1 | I/O | General Purpose I/O 27 / ADC Channel 1 |
| 40 | GPIO28/ADC2 | I/O | General Purpose I/O 28 / ADC Channel 2 |
| 41 | GPIO29/ADC3 | I/O | General Purpose I/O 29 / ADC Channel 3 |
| 42 | IOVDD | P | I/O Supply Voltage |
| 43 | VAUD | P | Audio Supply Voltage |
| 44 | VREG_OUT | P | Voltage Regulator Output |
| 45 | VREG_IN | P | Voltage Regulator Input |
| 46 | USB_DM | I/O | USB Data Minus |
| 47 | USB_DP | I/O | USB Data Plus |
| 48 | VBUS | P | USB Bus Voltage |
| 49 | DVDD | P | Core Supply Voltage |
| 50 | GND | S | Ground |
| 51 | GND | S | Ground |
| 52 | GND | S | Ground |
| 53 | GND | S | Ground |
| 54 | GND | S | Ground |
| 55 | GND | S | Ground |
| 56 | GND | S | Ground |
Notes
- Power pins: IOVDD (pins 1, 10, 33, 42), DVDD (pins 22, 23, 49), VBUS (pin 48), VREG_IN (pin 45), VREG_OUT (pin 44), VAUD (pin 43)
- Ground pins: GND (pins 50–56)
- GPIO pins: GPIO0–GPIO29 (pins 2–9, 11–18, 27–41); GPIO26–GPIO29 also function as ADC channels 0–3
- Crystal oscillator: XIN (pin 21), XOUT (pin 20)
- Debug interface: SWCLK (pin 24), SWDIO (pin 25)
- Control pins: RUN (pin 26), TESTEN (pin 19)
- USB interface: USB_DP (pin 47), USB_DM (pin 46)
Other Microcontrollers (MCU)
- STM32F407VET6 – STMicroelectronics, ARM Cortex-M4 MCU
- STM32H563ZIT6 – STMicroelectronics, Arm Cortex-M33 32-bit MCU
- NRF52840-QIAA-R7 – Nordic Semiconductor, Wireless Microcontroller
- STM32H743VIT6 – STMicroelectronics, Microcontroller Unit (MCU)
- STM32U575RIT6 – STMicroelectronics, Ultra-low-power Arm Cortex-M33 32-bit MCU
- STM32L011F4U6 – STMicroelectronics, Ultra-low-power Arm Cortex-M0+ MCU
- GD32F103C8T6 – GigaDevice, Arm Cortex-M3 32-bit MCU
- GD32F407VGT6 – GigaDevice, 32-bit ARM Cortex-M4 Microcontroller
All Microcontrollers (MCU) datasheetsAll Raspberry Pi datasheets (23)
Ask your AI agent about the RP2040
Connect SheetsData to Claude, Cursor, Codex or any MCP client and your agent reads this datasheet for you: pinout, limits, register maps and design checks, with the numbers taken from the PDF.
claude mcp add --transport http sheetsdata https://mcp.sheetsdata.com/mcp
Then ask: "Can the RP2040 run from my 12 V rail? Check it against the datasheet limits."
Create a free account $2 of usage every month, no card needed.