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. [1]
Announced on 21 January 2021, the RP2040 is the first microcontroller designed by Raspberry Pi Ltd. [1] [2] 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++, Free Pascal, Rust, [4] Go, MicroPython, CircuitPython, [1] [5] Ada [6] and TypeScript. [7] It is powerful enough to run TensorFlow 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 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 x 71 x 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 | 22x18x6 | 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 [28] | WeAct Studio | 53x21.52 | 40+4 | via headers | USB-C | 2MB, 4MB, 8MB, 16MB | 26 | 4 | BOOTSEL + RESET | |||||
RP2040-Zero [29] | Waveshare Electronics | 23x18 | 23 | USB-C | 10-pad connector | 2MB | 29 | 4 | BOOTSEL + RESET | RGB LED (WS2812) | ||||
Pico2040 | zeankun.dev | 18x51 | 40+3 (2mm and 2.54mm variants are available) | SWD | 4 | micro-USB | 16MB, 32MB, 64MB, 128MB | 28 | 4 | BOOTSEL + RESET | ||||
Bus Pirate 5 | Where Labs, LLC | 10+9 | SWD | USB-C | 16MB | |||||||||
W5100S-EVB-Pico [30] | WIZnet Co., Ltd. | 75x21 | 40+3 | via headers | Micro-USB | RJ45 | 2 MB | 26 | 3 | BOOTSEL + RESET | Ethernet | |||
W5500-EVB-Pico [31] | WIZnet Co., Ltd. | 75x21 | 40+3 | via headers | Micro-USB | RJ45 | 2 MB | 26 | 3 | BOOTSEL + RESET | Ethernet | |||
W6100-EVB-Pico [32] | WIZnet Co., Ltd. | 75x21 | 40+3 | via headers | Micro-USB | RJ45 | 2 MB | 26 | 3 | BOOTSEL + RESET | Ethernet | |||
WizFi360-EVB-Pico [33] | WIZnet Co., Ltd. | 75x21 | 40+3 | via headers | Micro-USB | 2 MB | 26 | 3 | BOOTSEL + RESET | Wi-Fi | ||||
0xCB-Helios [34] | 0xCB | 36x18 | 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 [35] | 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 |
A universal asynchronous receiver-transmitter is a peripheral device for asynchronous serial communication in which the data format and transmission speeds are configurable. It sends data bits one by one, from the least significant to the most significant, framed by start and stop bits so that precise timing is handled by the communication channel. The electric signaling levels are handled by a driver circuit external to the UART. Common signal levels are RS-232, RS-485, and raw TTL for short debugging links. Early teletypewriters used current loops.
AVR is a family of microcontrollers developed since 1996 by Atmel, acquired by Microchip Technology in 2016. These are modified Harvard architecture 8-bit RISC single-chip microcontrollers. AVR was one of the first microcontroller families to use on-chip flash memory for program storage, as opposed to one-time programmable ROM, EPROM, or EEPROM used by other microcontrollers at the time.
Atmel ARM-based processors are microcontrollers and microprocessors integrated circuits, by Microchip Technology, that are based on various 32-bit ARM processor cores, with in-house designed peripherals and tool support.
Arduino is an Italian open-source hardware and software company, project, and user community that designs and manufactures single-board microcontrollers and microcontroller kits for building digital devices. Its hardware products are licensed under a CC BY-SA license, while the software is licensed under the GNU Lesser General Public License (LGPL) or the GNU General Public License (GPL), permitting the manufacture of Arduino boards and software distribution by anyone. Arduino boards are available commercially from the official website or through authorized distributors.
IOIO is a series of open source PIC microcontroller-based boards that allow Android mobile applications to interact with external electronics. The device was invented by Ytai Ben-Tsvi in 2011, and was first manufactured by SparkFun Electronics. The name "IOIO" is inspired by the function of the device, which enables applications to receive external input ("I") and produce external output ("O").
A single-board microcontroller is a microcontroller built onto a single printed circuit board. This board provides all of the circuitry necessary for a useful control task: a microprocessor, I/O circuits, a clock generator, RAM, stored program memory and any necessary support ICs. The intention is that the board is immediately useful to an application developer, without requiring them to spend time and effort to develop controller hardware.
Raspberry Pi is a series of small single-board computers (SBCs) developed in the United Kingdom by the Raspberry Pi Foundation in association with Broadcom. Since 2013, Raspberry Pi devices have been developed and supported by a subsidiary of the Raspberry Pi Foundation, now named Raspberry Pi Ltd. The Raspberry Pi project originally leaned toward the promotion of teaching basic computer science in schools. The original model became more popular than anticipated, selling outside its target market for diverse uses such as robotics, home and industrial automation, and by computer and electronic hobbyists, because of its low cost, modularity, open design, and its adoption of the HDMI and USB standards.
STM32 is a family of 32-bit microcontroller integrated circuits by STMicroelectronics. The STM32 chips are grouped into related series that are based around the same 32-bit ARM processor core: Cortex-M0, Cortex-M0+, Cortex-M3, Cortex-M4, Cortex-M7, Cortex-M33. Internally, each microcontroller consists of ARM processor core(s), flash memory, static RAM, debugging interface, and various peripherals.
Maximite Microcomputer is a Microchip PIC32 microcontroller-based microcomputer. This series of chips uses the MIPS 32-bit RISC MIPS architecture and was neither an ARM nor PIC variant. Originally designed as a hobby kit, the Maximite was introduced in a three-part article in Silicon Chip magazine in autumn of 2011 by Australian designer Geoff Graham. The project consists of two main components — a main circuit board and the MMBasic Interpreter, styled after GW-BASIC.
Adafruit Industries is an open-source hardware company based in New York, United States. It was founded by Limor Fried in 2005. The company designs, manufactures and sells electronics products, electronics components, tools, and accessories. It also produces learning resources, including live and recorded videos about electronics, technology, and programming.
The ATmega328 is a single-chip microcontroller created by Atmel in the megaAVR family. It has a modified Harvard architecture 8-bit RISC processor core.
The Arduino Uno is an open-source microcontroller board based on the Microchip ATmega328P microcontroller (MCU) and developed by Arduino.cc and initially released in 2010. The microcontroller board is equipped with sets of digital and analog input/output (I/O) pins that may be interfaced to various expansion boards (shields) and other circuits. The board has 14 digital I/O pins, 6 analog I/O pins, and is programmable with the Arduino IDE, via a type B USB cable. It can be powered by a USB cable or a barrel connector that accepts voltages between 7 and 20 volts, such as a rectangular 9-volt battery. It has the same microcontroller as the Arduino Nano board, and the same headers as the Leonardo board. The hardware reference design is distributed under a Creative Commons Attribution Share-Alike 2.5 license and is available on the Arduino website. Layout and production files for some versions of the hardware are also available.
The Micro Bit is an open source hardware ARM-based embedded system designed by the BBC for use in computer education in the United Kingdom. It was first announced on the launch of BBC's Make It Digital campaign on 12 March 2015 with the intent of delivering 1 million devices to pupils in the UK. The final device design and features were unveiled on 6 July 2015 whereas actual delivery of devices, initially planned for September 2015 to schools and October 2015 to general public, began on 10 February 2016.
The ESP8266 is a low-cost Wi-Fi microchip, with built-in TCP/IP networking software, and microcontroller capability, produced by Espressif Systems in Shanghai, China.
The Arduino Nano is an open-source breadboard-friendly microcontroller board based on the Microchip ATmega328P microcontroller (MCU) and developed by Arduino.cc and initially released in 2008. It offers the same connectivity and specs of the Arduino Uno board in a smaller form factor.
MicroPython is a software implementation of a programming language largely compatible with Python 3, written in C, that is optimized to run on a microcontroller.
ESP32 is a series of low-cost, low-power system on a chip microcontrollers with integrated Wi-Fi and dual-mode Bluetooth. The ESP32 series employs either a Tensilica Xtensa LX6 microprocessor in both dual-core and single-core variations, Xtensa LX7 dual-core microprocessor or a single-core RISC-V microprocessor and includes built-in antenna switches, RF balun, power amplifier, low-noise receive amplifier, filters, and power-management modules. ESP32 is created and developed by Espressif Systems, a Chinese company based in Shanghai, and is manufactured by TSMC using their 40 nm process. It is a successor to the ESP8266 microcontroller.
CircuitPython is an open-source derivative of the MicroPython programming language targeted toward students and beginners. Development of CircuitPython is supported by Adafruit Industries. It is a software implementation of the Python 3 programming language, written in C. It has been ported to run on several modern microcontrollers.
The Raspberry Pi 4 is the 4th generation of the mainline series of Raspberry Pi single-board computers. Developed by Raspberry Pi Trading and released on 24 June 2019, the Pi 4 came with many improvements over its predecessor; the SoC was upgraded to the Broadcom BCM2711, two of the Raspberry Pi's four USB ports were upgraded to USB 3.0, and options were added for RAM capacities larger than the 1 GB standard for the preceding Raspberry Pi 3 series. The Pi 4 also ends the trend of the $35 maximum MSRP that previous Raspberry Pis had adhered to, as the larger RAM capacities added extra cost to the board; however, the base 1 GB model is still sold for $35. On 28 September 2023, the Raspberry Pi 5 was announced as the successor to the Raspberry Pi 4.