RP2040 is a 32-bit dual ARM Cortex-M0+ microcontroller integrated circuit[1] [2] [3] by Raspberry Pi Ltd. In January 2021, it was released as part of the Raspberry Pi Pico board. Its successor is the RP2350 series.
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 and the RP2040 itself costing . The microcontroller can be programmed in assembly, C, C++, Swift, Free Pascal, Rust,[4] Go, MicroPython, CircuitPython,[5] Ada[6] and TypeScript.[7] 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 in to production.[8]
Hackaday notes the benefits of the RP2040 as being from Raspberry Pi, having a good feature set, and being released in low-cost packages.[9]
Per the datasheet, there are multiple revisions of the chip:
"The full source for the RP2040 bootROM can be found at https://github.com/raspberrypi/pico-bootrom. This includes both version 1 and version 2 of the bootROM, which correspond to the B0 and B1 silicon revisions, respectively."
The chip is 40 nm silicon in a 7 × 7 mm QFN-56 surface-mount device (SMD) package manufactured by TSMC.[10]
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[12] | Raspberry Pi Ltd | 51×21 | 40+3 | via headers | 6 | micro-USB | 2 MB | 26 | 3 | BOOTSEL | |||
Pico W[13] | Raspberry Pi Ltd | 51×21 | 40+3 | via headers | 6 | micro-USB | 2 MB | 26 | 3 | BOOTSEL | Wi-Fi, Bluetooth | ||
XIAO RP2040[14] | Seeed Studio | 20×17.5×3.5 | 14 | Reset Button/ Boot Button | USB Type-C interface | 2 MB | BOOTSEL + RESET | ||||||
Nano RP2040 Connect[15] | Arduino | 45×18 | 30 | via pads | 5+4+2 | micro-USB | 16 MB | 1 | Wi-Fi, Bluetooth, 9-axis IMU, microphone | ||||
Tiny 2040[16] | Pimoroni | 22.9×18.2×6 | 8+3 | via headers | USB-C | 8 MB | 12 | 4 | BOOTSEL + RESET | ||||
Keybow 2040[17] | Pimoroni | 0 (USB only) | USB-C | 2 MB | 16 keys | ||||||||
PicoSystem[18] | Pimoroni | 96.6×42.7×15.5 | 0 (self contained) | USB-C | 16 MB | 4 + joypad | Color 240×240 LCD, onboard battery | ||||||
Feather RP2040[19] | Adafruit | 51×23×7 | 28 | via pins | USB-C | STEMMA QT, lipo battery | 8 MB | 21 | 4 | BOOTSEL + RESET | Battery charger | ||
ItsyBitsy RP2040[20] | Adafruit | 36×18×4 | 33 | via headers | micro-USB | 4 MB | 23 | 4 | BOOTSEL + RESET | ||||
Metro RP2040[21] | Adafruit | 53×71×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[22] | 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[23] | Sparkfun | 36×18 | 24 | 4+2 | USB-C | QWIIC | 16 MB | 20 | 4 | BOOTSEL + RESET | |||
Thing Plus RP2040[24] | Sparkfun | 59×23 | 28 | JTAG pins | USB-C | QWIIC, lipo battery | 16 MB | 18 | 4 | BOOTSEL + RESET | Battery charger | ||
MicroMod RP2040[25] | Sparkfun | 22×22 | 0 | edge connector | edge connector | 16 MB | 29 | 3 | none | ||||
Müsli USB Pmod[26] | 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[27] | 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[28] | Waveshare Electronics | 23×18 | 23 | USB-C | 10-pad connector | 2 MB | 29 | 4 | BOOTSEL + RESET | RGB LED (WS2812) | |||
Pico2040 | zeankun.dev | 18x51 | 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 | 10+9 | SWD | USB-C | 16MB | ||||||||
W5100S-EVB-Pico[29] | WIZnet Co., Ltd. | 75x21 | 40+3 | via headers | Micro-USB | RJ45 | 2 MB | 26 | 3 | BOOTSEL + RESET | Ethernet | ||
W5500-EVB-Pico[30] | WIZnet Co., Ltd. | 75x21 | 40+3 | via headers | Micro-USB | RJ45 | 2 MB | 26 | 3 | BOOTSEL + RESET | Ethernet | ||
W6100-EVB-Pico[31] | WIZnet Co., Ltd. | 75x21 | 40+3 | via headers | Micro-USB | RJ45 | 2 MB | 26 | 3 | BOOTSEL + RESET | Ethernet | ||
WizFi360-EVB-Pico[32] | WIZnet Co., Ltd. | 75×21 | 40+3 | via headers | Micro-USB | 2 MB | 26 | 3 | BOOTSEL + RESET | Wi-Fi | |||
0xCB-Helios[33] | 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[34] | 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[35] | 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[36] | 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 |