


RP2040 is a32-bitdual-coreARM Cortex-M0+microcontroller designed byRaspberry Pi Ltd. In January 2021, it was released as part of theRaspberry Pi Pico board.[1] Its successor is theRP2350 series.[2]
Announced on 21 January 2021, the RP2040 is the first microcontroller designed by Raspberry Pi Ltd.[1][3] The microcontroller is low cost, with the Raspberry Pi Pico being introduced atUS$4 and the RP2040 itself costingUS$1. The microcontroller can be programmed inassembly,C,C++,Forth,[4]Swift,[5]Free Pascal,Rust,[6]Go,[7]MicroPython,CircuitPython,[1][8]PicoRuby,[9]Ada,[10]TypeScript[11] andZig.[12] It is powerful enough to runTensorFlow Lite.[1]
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.[13]
Hackaday notes the benefits of the RP2040 as being from Raspberry Pi, having a good feature set, and being released in low-cost packages.[14]
Multiplestepping levels of the chip have been produced.[15]
The RP2040 chip is a 7-by-7-millimetre (0.28 in × 0.28 in)QFN-56EPsurface-mount device (SMD) package manufactured byTSMC using its 40 nm process.[16]
For comparison with the RP2350, seeRP2350 § Family comparison.
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[19] | Raspberry Pi Ltd | 51×21 | 40+3 | via headers | 6 | micro-USB | 2 MB | 26 | 3 | BOOTSEL | |||
| Pico W[20] | Raspberry Pi Ltd | 51×21 | 40+3 | via headers | 6 | micro-USB | 2 MB | 26 | 3 | BOOTSEL | Wi-Fi,Bluetooth | ||
| XIAO RP2040[21] | Seeed Studio | 20×17.5×3.5 | 14 | Reset Button/ Boot Button | USB Type-C interface | 2 MB | BOOTSEL + RESET | ||||||
| Nano RP2040 Connect[22] | Arduino | 45×18 | 30 | via pads | 5+4+2 | micro-USB | 16 MB | 1 | Wi-Fi, Bluetooth, 9-axisIMU, microphone | ||||
| Tiny 2040[23] | Pimoroni | 22.9×18.2×6 | 8+3 | via headers | USB-C | 8 MB | 12 | 4 | BOOTSEL + RESET | ||||
| Keybow 2040[24] | Pimoroni | 76x76x30 | 0 (USB only) | USB-C | 2 MB | 16 keys | |||||||
| PicoSystem[25] | Pimoroni | 96.6×42.7×15.5 | 0 (self contained) | USB-C | 16 MB | 4 +joypad | Color 240×240LCD, onboard battery | ||||||
| Feather RP2040[26] | Adafruit | 51×23×7 | 28 | via pins | USB-C | STEMMA QT, lipo battery | 8 MB | 21 | 4 | BOOTSEL + RESET | Battery charger | ||
| ItsyBitsy RP2040[27] | Adafruit | 36×18×4 | 33 | via headers | micro-USB | 4 MB | 23 | 4 | BOOTSEL + RESET | ||||
| Metro RP2040[28] | 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[29] | 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[30] | Sparkfun | 36×18 | 24 | 4+2 | USB-C | QWIIC | 16 MB | 20 | 4 | BOOTSEL + RESET | |||
| Thing Plus RP2040[31] | Sparkfun | 59×23 | 28 | JTAG pins | USB-C | QWIIC, lipo battery | 16 MB | 18 | 4 | BOOTSEL + RESET | Battery charger | ||
| MicroMod RP2040[32] | Sparkfun | 22×22 | 0 | edge connector | edge connector | 16 MB | 29 | 3 | none | ||||
| Müsli USB Pmod[33] | 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[34] | 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[35] | WeAct Studio | 53x21.52 | 40+4 | via headers | USB-C | 2 MB, 4 MB, 8 MB, 16 MB | 26 | 4 | BOOTSEL + RESET | ||||
| RP2040-Zero[36] | 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[37] | WIZnet Co., Ltd. | 75x21 | 40+3 | via headers | Micro-USB | RJ45 | 2 MB | 26 | 3 | BOOTSEL + RESET | Ethernet | ||
| W5500-EVB-Pico[38] | WIZnet Co., Ltd. | 75x21 | 40+3 | via headers | Micro-USB | RJ45 | 2 MB | 26 | 3 | BOOTSEL + RESET | Ethernet | ||
| W6100-EVB-Pico[39] | WIZnet Co., Ltd. | 75x21 | 40+3 | via headers | Micro-USB | RJ45 | 2 MB | 26 | 3 | BOOTSEL + RESET | Ethernet | ||
| WizFi360-EVB-Pico[40] | WIZnet Co., Ltd. | 75×21 | 40+3 | via headers | Micro-USB | 2 MB | 26 | 3 | BOOTSEL + RESET | Wi-Fi | |||
| 0xCB-Helios[41] | 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[42] | 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[43] | 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[44] | OLIMEX Ltd | 51×21 | 40+3 | via headers | USB-C | OptionalUEXT (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[44] | OLIMEX Ltd | 51×21 | 40+3 | via headers | USB-C | Optional UEXT (pUEXT) | 16 MB | 30 | 4 | BOOTSEL + RESET | |||
| PicoUSB[45] | VoltMake[46] | 45×12x4 | 0 (USB only) | Dual sided USB-A | 2 MB | BOOTSEL + MODE | status LED |
There are two hardware issues with the device controller, both of which have software workarounds on RP2040B0, RP2040B1, and are fixed in hardware on RP2040B2