RP2040
In-game article clicks load inline without leaving the challenge.



RP2040 is a 32-bit dual-core ARM Cortex-M0+ microcontroller designed by Raspberry Pi Ltd. In January 2021, it was released as part of the Raspberry Pi Pico board. Its successor is the RP2350 series.
Overview
Announced on 21 January 2021, the RP2040 is the first microcontroller designed by Raspberry Pi Ltd. The microcontroller is low cost, with the Raspberry Pi Pico being introduced at US$4 and the RP2040 itself costing US$1. The microcontroller can be programmed in assembly, C, C++, Forth, Swift, Free Pascal, Rust, Go, MicroPython, CircuitPython, PicoRuby, Ada, TypeScript and Zig. It is powerful enough to run TensorFlow Lite.
At announcement time, four other manufacturers (Adafruit, Pimoroni, Arduino, SparkFun) were at advanced stages of their product design, awaiting the widespread availability of chips to be put into production.
Hackaday notes the benefits of the RP2040 as being from Raspberry Pi, having a good feature set, and being released in low-cost packages.
Multiple stepping levels of the chip have been produced.
Features
The RP2040 chip is a 7-by-7-millimetre (0.28in ×0.28in) QFN-56EP surface-mount device (SMD) package manufactured by TSMC using its 40nm process.
- Key features: Dual ARM Cortex-M0+ cores (ARMv6-M instruction set), Originally run at 133MHz, but later certified at 200MHz Each core has an integer divider peripheral and two interpolators 264KB SRAM in six independent banks (four 64 KB, two 4 KB) No internal flash or EEPROM memory (after reset, the boot-loader loads firmware from either external flash memory or USB into internal SRAM) QSPI bus controller supports up to 16MB of external flash memory DMA controller, 12 channel, 2 IRQ AHB crossbar, fully-connected On-chip programmable low-dropout regulator (LDO) to generate core voltage Two on-chip PLLs to generate USB and core clocks 30 GPIO pins, of which four can optionally be used as analog inputs
- Peripherals: One USB 1.1 (LS & FS) controller and PHY, host and device support, 1.5 Mbit/s (Low Speed) and 12 Mbit/s (Full Speed) Two UART controllers Two SPI controllers One QSPI (quad SPI) controller (SSI), supports 1 / 2 / 4-bit SPI transfers, 1 chip select Two I²C controllers Eight PIO (programmable input–output) state machines 16 PWM channels 4-channel 12-bit 500-ksps SAR ADC, extra channel is connected to internal temperature sensor
For comparison with the RP2350, see RP2350 §Family comparison.
Boards
A number of manufacturers have announced their own boards using the RP2040. A selection of the growing number is here:
| Board name | Manufacturer | Size (mm) | Header pins | Debug connection | Number of pads | USB connector | Other connectors | Flash size | GPIO pins | ADC pins | Buttons | Other features | Image |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Pico | Raspberry Pi Ltd | 51×21 | 40+3 | via headers | 6 | micro-USB | 2 MB | 26 | 3 | BOOTSEL | |||
| Pico W | Raspberry Pi Ltd | 51×21 | 40+3 | via headers | 6 | micro-USB | 2 MB | 26 | 3 | BOOTSEL | Wi-Fi, Bluetooth | ||
| XIAO RP2040 | Seeed Studio | 20×17.5×3.5 | 14 | Reset Button/ Boot Button | USB Type-C interface | 2 MB | BOOTSEL + RESET | ||||||
| Nano RP2040 Connect | Arduino | 45×18 | 30 | via pads | 5+4+2 | micro-USB | 16 MB | 1 | Wi-Fi, Bluetooth, 9-axis IMU, microphone | ||||
| Tiny 2040 | Pimoroni | 22.9×18.2×6 | 8+3 | via headers | USB-C | 8 MB | 12 | 4 | BOOTSEL + RESET | ||||
| Keybow 2040 | Pimoroni | 76x76x30 | 0 (USB only) | USB-C | 2 MB | 16 keys | |||||||
| PicoSystem | Pimoroni | 96.6×42.7×15.5 | 0 (self contained) | USB-C | 16 MB | 4 + joypad | Color 240×240 LCD, onboard battery | ||||||
| Feather RP2040 | Adafruit | 51×23×7 | 28 | via pins | USB-C | STEMMA QT, lipo battery | 8 MB | 21 | 4 | BOOTSEL + RESET | Battery charger | ||
| ItsyBitsy RP2040 | Adafruit | 36×18×4 | 33 | via headers | micro-USB | 4 MB | 23 | 4 | BOOTSEL + RESET | ||||
| Metro RP2040 | Adafruit | 71x53×13 | 32 | SWD + 3 pin JST SH compatible | USB Type-C | DC jack for 6-12VDC / STEMMA QT / SWD / pico probe | 16 MB | 24 | 4 | BOOTSEL + RESET | NeoPixel LED, Micro SD | ||
| QT Py RP2040 | Adafruit | 22×18×6 | 14 | Reset Button/ Boot Button | USB-C | STEMMA QT | 8 MB | 13 | 4 | BOOTSEL + RESET | 3.3vdc regulator, NeoPixel LED | ||
| Pro Micro – RP2040 | Sparkfun | 36×18 | 24 | 4+2 | USB-C | QWIIC | 16 MB | 20 | 4 | BOOTSEL + RESET | |||
| Thing Plus RP2040 | Sparkfun | 59×23 | 28 | JTAG pins | USB-C | QWIIC, lipo battery | 16 MB | 18 | 4 | BOOTSEL + RESET | Battery charger | ||
| MicroMod RP2040 | Sparkfun | 22×22 | 0 | edge connector | edge connector | 16 MB | 29 | 3 | none | ||||
| Müsli USB Pmod | Lone Dynamics | 45×20.32 | 12 | SWD | USB Type-A female | 12-pin male PMOD, SWD | 256 KB | 8 | 0 | BOOTSEL | USB host, 5V boost converter | ||
| Werkzeug USB Multi-Tool | Lone Dynamics | 50×50 | 32 | USB-C | 12-pin female PMOD, USB Type-A female | 1 MB | 24 | 4 | BOOTSEL | USB device/host, PMOD | |||
| RP2040 | WeAct Studio | 53x21.52 | 40+4 | via headers | USB-C | 2 MB, 4 MB, 8 MB, 16 MB | 26 | 4 | BOOTSEL + RESET | ||||
| RP2040-Zero | Waveshare Electronics | 23×18 | 23 | USB-C | 10-pad connector | 2 MB | 29 | 4 | BOOTSEL + RESET | RGB LED (WS2812) | |||
| Pico2040 | zeankun.dev | 51x18 | 40+3 (2mm and 2.54mm variants are available) | SWD | 4 | micro-USB | 16 MB, 32 MB, 64 MB, 128 MB | 28 | 4 | BOOTSEL + RESET | |||
| Bus Pirate 5 | Where Labs, LLC | 60x37 | 10+9 | SWD | USB-C | 16MB | |||||||
| W5100S-EVB-Pico | WIZnet Co., Ltd. | 75x21 | 40+3 | via headers | Micro-USB | RJ45 | 2 MB | 26 | 3 | BOOTSEL + RESET | Ethernet | ||
| W5500-EVB-Pico | WIZnet Co., Ltd. | 75x21 | 40+3 | via headers | Micro-USB | RJ45 | 2 MB | 26 | 3 | BOOTSEL + RESET | Ethernet | ||
| W6100-EVB-Pico | WIZnet Co., Ltd. | 75x21 | 40+3 | via headers | Micro-USB | RJ45 | 2 MB | 26 | 3 | BOOTSEL + RESET | Ethernet | ||
| WizFi360-EVB-Pico | WIZnet Co., Ltd. | 75×21 | 40+3 | via headers | Micro-USB | 2 MB | 26 | 3 | BOOTSEL + RESET | Wi-Fi | |||
| 0xCB-Helios | 0xCB | 36×18 | 40+3 | via headers | USB-C | 16 MB | 29 | BOOTSEL + RESET | default off red power LED, blue user LED, level shifter to drive 5V components. ESD protection chip onboard | ||||
| Picopad | Pájeníčko s.r.o. | 129x53 | 12 | via headers | micro-USB | microSD, external connector | 2 MB | 6 | BOOTSEL + RESET | on-off, Wi-Fi, micro SD card, external connector, IPS screen, speaker, battery | |||
| MUREX ANYESC | MUREX Robotics | 78×35 | 3 | via headers | USB-C | edge connector | 8 MB | 3 | 0 | BOOTSEL + RESET | commercial ESC connector, 3 user LEDs | ||
| RP2040-PICO30 | OLIMEX Ltd | 51×21 | 40+3 | via headers | USB-C | Optional UEXT (pUEXT) | 2 MB | 30 | 4 | BOOTSEL + RESET | 3.3V 2A (3A peak) DCDC, All 30 GPIOs available to the user, Optional status LED | ||
| RP2040-PICO30-16 | OLIMEX Ltd | 51×21 | 40+3 | via headers | USB-C | Optional UEXT (pUEXT) | 16 MB | 30 | 4 | BOOTSEL + RESET | |||
| PicoUSB | VoltMake | 45×12x4 | 0 (USB only) | Dual sided USB-A | 2 MB | BOOTSEL + MODE | status LED |
See also
- Arduino – a popular microcontroller board family
- ESP32 – a series of low-cost, low-power system on a chip microcontrollers with integrated Wi-Fi and dual-mode Bluetooth.
- STM32 – a family of 32-bit microcontroller integrated circuits
- Raspberry Pi – Raspberry Pi's series of small single board computers
- Thumby (console) – a thumb-sized micro-console powered by the RP2040