The RP2040 has features to suit professional users and beginners alike.
As the workhorses that power the digital transformation of our world, microcontrollers outsell more powerful microprocessor types by a factor of ten to one. And Raspberry Pi’s RP2040, with its signature values of high performance, low cost, and ease of use, brings the best of microcontroller technology to users of all types. With a large on-chip memory, symmetric dual-core processor complex, deterministic bus fabric, and rich peripheral set augmented with Raspberry Pi’s unique Programmable I/O (PIO) subsystem, it provides professional users with unrivalled power and flexibility. Meanwhile, it has the lowest possible barrier to entry for beginners and hobbyist users, with its detailed documentation, polished MicroPython port, and UF2 bootloader in ROM.
RP2040 Microcontroller hardware
RP2040 is a stateless device, with support for cached execute-in-place from external QSPI memory. This design decision allows you to choose the appropriate density of non-volatile storage for your application, and to benefit from the low pricing of commodity Flash parts.
RP2040 is manufactured on a modern 40nm process node, delivering high performance, low dynamic power consumption, and low leakage, with a variety of low-power modes to support extended-duration operation on battery power.
Key features:
- Dual ARM Cortex-M0+ @ 133MHz
- 264kB on-chip SRAM in six independent banks
- Support for up to 16MB of off-chip Flash memory via dedicated QSPI bus
- DMA controller
- Fully-connected AHB crossbar
- Interpolator and integer divider peripherals
- On-chip programmable LDO to generate core voltage
- 2 on-chip PLLs to generate USB and core clocks
- 30 GPIO pins, 4 of which can be used as analogue inputs
- Peripherals
- 2 UARTs
- 2 SPI controllers
- 2 I2C controllers
- 16 PWM channels
- USB 1.1 controller and PHY, with host and device support
- 8 PIO state machines
Development tools and documentation
Plenty of development tools are available to support a wide range of applications. Downloadable KiCAD files with schematic, mechanical, and BOM details for the board and a VGA carrier are available. There is also a datasheet for the device, and a ‘Hardware design with RP2040’ document.
The Raspberry Pi Pico is a low-cost yet flexible development platform, carrying an RP2040 with 2MB Flash. It has a Micro-USB B port for power, data, and reprogramming the Flash. Configured as a 40 pin 21x51 ‘DIP’ style 1 mm thick PCB with 0.1” through-hole pins, it exposes 26 multi-function 3.3V general purpose I/O (GPIO) lines. It also features a 3-pin ARM Serial Wire Debug (SWD) port, and a simple yet highly flexible power supply architecture.
The Raspberry Pi Pico W board, with a 2.4GHz wireless 802.11n interface is also available, for users with wireless applications. Documentation for this board includes a datasheet and documentation describing how to get the Pico W online with C/C++ or MicroPython.
Other software examples and documentation are available, including ‘Getting started with Raspberry Pi Pico’. This covers C/C++ development with Raspberry Pi Pico and other RP2040-based microcontroller boards.
There is also a Raspberry Pi Pico SDK with libraries and tools for C/C++ development on RP2040 controllers, and an alternative Pico SDK supporting a MicroPython environment.