SparkFun
Raspberry Pi RP2040 Microcontroller IC
· MPN: COM-26191
The RP2040 is Raspberry Pi’s debut microcontroller silicon, bringing the familiar Raspberry Pi focus on performance, low cost and ease of use into embedded d...
Get notified when back in stock
The RP2040 is Raspberry Pi’s debut microcontroller silicon, bringing the familiar Raspberry Pi focus on performance, low cost and ease of use into embedded designs.
It combines a symmetric dual-core processor complex, large on-chip SRAM, deterministic bus fabric and a rich peripheral set. The unique Programmable I/O (PIO) subsystem gives experienced users extra flexibility for timing-sensitive interfaces and custom peripheral behaviour.
RP2040 is a stateless device with support for cached execute-in-place from external QSPI memory, letting you choose the off-chip non-volatile storage density that suits your application. Detailed documentation, a polished MicroPython port and a UF2 bootloader in ROM help make it approachable for hobbyists as well as professional users.
Manufactured on a modern 40nm process node, it is designed for high performance, low dynamic power consumption and low leakage, with low-power modes for extended-duration battery-powered projects.
Features:
- Programmable I/O (PIO) subsystem for flexible custom interfaces
- Support for cached execute-in-place from external QSPI memory
- Detailed documentation available
- Polished MicroPython port
- UF2 bootloader in ROM
- Low-power modes to support extended-duration operation on battery power
Specifications:
- Processor: Dual ARM Cortex-M0+ @ 133MHz
- On-chip SRAM: 264kB on-chip SRAM in six independent banks
- Off-chip Flash support: Support for up to 16MB of off-chip Flash memory via dedicated QSPI bus
- DMA: DMA controller
- Bus fabric: Fully-connected AHB crossbar
- Math peripherals: Interpolator and integer divider peripherals
- Core voltage regulator: On-chip programmable LDO to generate core voltage
- PLLs: 2 on-chip PLLs to generate USB and core clocks
- GPIO: 30 GPIO pins, 4 of which can be used as analogue inputs
- UART: 2 x UARTs
- SPI: 2 x SPI controllers
- I2C: 2 x I2C controllers
- PWM: 16 x PWM channels
- USB: USB 1.1 controller and PHY, with host and device support
- PIO: 8 x PIO state machines
- Process node: 40nm process node
Jargon buster
Plain-language definitions for the technical terms used above.
- Bootloader
- Small starter software on a microcontroller that lets new code be uploaded before the main program runs. Knowing how to enter bootloader mode matters when you need to program the board or recover it after a faulty sketch.
- Flash memory
- Flash memory is non-volatile memory that retains stored data even when power is removed, and can be erased and rewritten in blocks. It lets data such as firmware, settings or saved records persist across power cycles.
- GPIO
- General-purpose input/output pins are microcontroller pins you can set in software to read signals, switch devices on and off, or connect to peripherals. The number of GPIO pins matters because it limits how many buttons, LEDs, sensors, and other parts you can wire directly to the board.
- I2C
- I2C is a two-wire communication bus used by many sensors and small modules. It matters because several I2C devices can share the same two wires, but each device needs a compatible address and your controller must support I2C.
- microcontroller
- A microcontroller is a small computer on a single chip that runs a stored program and controls connected inputs and outputs such as buttons, sensors, displays and communication interfaces. In a device built around one, it is the part that executes the code and coordinates the device's behaviour.
- MicroPython
- A version of the Python programming language made to run on microcontrollers. It matters because it lets beginners write readable code to control LEDs, sensors, motors and displays without needing to start with lower-level languages.
- PWM
- Pulse Width Modulation is a way for a digital pin to simulate variable output power by switching on and off very quickly. It matters for controlling things like LED brightness, motor speed, or servo-style signals from a microcontroller pin.
- RP2040
- The RP2040 is a dual-core Arm Cortex-M0+ microcontroller chip from Raspberry Pi, used on many maker boards and offering programmable I/O, multiple GPIO pins and reasonable processing speed. Code and accessories built for that chip should work where RP2040 compatibility is listed, though demanding tasks such as reading a camera can require careful pin allocation and timing.
- SPI
- A fast serial communication bus often used for displays, memory cards, and sensors. It matters because SPI devices need specific pins for clock and data, plus a separate chip-select line for each device.
- SRAM
- Fast temporary memory used by a processor while a program is running. More SRAM helps with projects that handle larger data buffers, networking, displays, or more complex code.
- UART
- UART is a simple asynchronous serial interface that sends data over separate transmit and receive wires, usually labelled TX and RX, with both ends set to the same baud rate. It is a common way for microcontrollers and other serial devices to exchange data.
- USB 1.1
- USB 1.1 is an older USB standard with much slower data transfer than USB 2.0 and later versions. Compatibility with it allows connection to very old computers, though data-heavy tasks such as video may be limited at that speed.
Find this product in
RP2040 Datasheet
Datasheet · 5.1 MB · Click any page to view full size
Hardware Design with RP2040 Guide
User Guide · 19.0 MB · Click any page to view full size
Supplier page — sparkfun.com
Supplier Description · 540.5 KB · Click any page to view full size