Raspberry Pi Pico
This article is a stub. You can help Deskthority by expanding it.
Manufacturer | Raspberry Pi Foundation |
---|---|
License | Open-source |
Host port | USB Micro B (OTG) |
Microcontroller | RP2040 |
MPU | 2 × ARM Cortex M0+ |
Voltage | 3.3V |
Clock speed | Up to 133 MHz |
Digital I/O pins | 26 |
I/O Voltage | 3.3V |
RAM | 264 KB (4×64 KB + 2×4 KB) |
Program memory | 2 MB (External Flash over QSPI) |
Website | www.raspberrypi.org/products/raspberry-pi-pico/ |
Schema | datasheets.raspberrypi.org/pico/RPi-Pico-R3-PUBLIC-20200119.zip |
The Raspberry Pi Pico is the first microcontroller board from the Raspberry Pi Foundation. It has their own RP2040 microcontroller and 2 MB of external Flash memory.
Description[edit | edit source]
The RP2040 chip has two ARM Cortex M0+ CPU cores running at up to 133 MHz (before overclocking). Each core also has an integer division unit and interpolator.
There are two programmable I/O modules (PIO), capable of communicating with addressable LEDs, among many other things. The board is however not 5V-capable.
Program code (firmware) is loaded from a 2MB Flash chip on the board. There is a 16 KB SRAM cache which allows eXecution In Place (XIP) as if all the program memory was in RAM — albeit with a performance hit on cache misses. Code can also be loaded into internal SRAM and run from there. If all code is run from SRAM, the cache could be reused as additional SRAM instead.
The footprint is one pin wider than a typical DIP package.
USB[edit | edit source]
The USB port is a USB Micro receptacle, but with the shield being through-hole soldered — thus being more durable than a typical surface-mounted USB Micro port as on e.g. a Pro Micro. Even though the RP2040 is capable of being both device or host, the port's ID pin is not connected (it is "floating"), meaning that it always identifies as a device to OTG-compliant cables and devices.
The port is broken out on test points (pads) on the bottom:
- TP2 - USB D-
- TP3 - USB D+
The VBUS pin is connected directly to USB 5V+. There are several pins for GND, which is also connected to test point TP1.
VBUS is connected to GPIO24 via a voltage divider, with power to the rest of the board passing through a diode. This allows the MCU to test if USB is connected — which could be useful for split keyboards to test if the MCU is master or slave.
The USB module supports as many as 15 in endpoints available for HID interfaces (i.e. virtual devices).
Raspberry Pi Pico W[edit | edit source]
The Raspberry Pi Pico W is a Pico with a CYW43439 Wi-Fi module. GPIO23 .. GPIO24 have been reassigned to an SPI interface between them, and the power circuit and LED are now controlled indirectly through the Wi-Fi module. While the Wi-Fi hardware technically does have Bluetooth, its firmware does not support access to it from the pins connected to the RP2040.
Alternatives[edit | edit source]
Boards with the same microcontroller are available from other manufacturers, but they are often more expensive than than Pico.
- Pimoroni Pico Lipo has Pico form factor, but with USB-C, battery charging, larger flash memory and a Stemma QT/Qwiic connector for I²C modules.
- Sumolink Erhu RP2040 has 4 MB flash and an USB-C connector, at low price.
There are also boards with the same footprints as other popular boards such as the Pro Micro, Feather. ItsyBitsy and the Arduino Nano.
Firmware[edit | edit source]
Firmware framework:
Libraries:
- CircuitPython.
- The Official C SDK has a port of TinyUSB.