Table of contents
The Raspberry Pi Pico is the company’s first microcontroller, based on the Raspberry Pi’s RP2040 microcontroller processor and running on ARM’s Dual-core cortex M0+ architecture. It operates at frequencies up to 133MHz and, despite its little size in comparison to the rest of the Pi family, it has a lot to offer. Pico is a budget-friendly microcontroller with 264kB multi-bank high-performance SRAM, 16 kb of on-chip cache, and 2MB of flash storage, unlike the other Pi boards, which are essentially Linux-based single-board computers. It’s a remarkable board, especially considering how cheap it is. At just USD 4 (about INR 300 in India), it’s directly competing with established Arduino boards, blowing them out of the water in terms of power and speed when compared to similarly priced modules.
Raspberry Pi Pico Pinout
Raspberry Pi Pico has a total of 40 input and output pins out of which 26 are multipurpose GPIOs operating at 3.3V and 8 ground pins. Apart from these pins, it also has 3 pins for debugging. The below image taken from the official datasheet of Raspberry Pi Pico illustrates the layout of all the pins.
General Input and Output (GPIO) Pins on Pico:
The Raspberry Pi only utilises 26 out of 30 GPIOs the RP2040 has to offer, 26 pins are exposed and an additional 27th pin can only be used for the onboard LED. The Raspberry Pi Pico’s GPIO is powered from the onboard 3.3V rail and is therefore fixed at 3.3V. GPIO0 to GPIO22 are digital-only and GPIO 26-28 are able to be used either as digital GPIO or as an ADC input which can be done through software.
The communication options this board has to offer are:
- 2 × SPI
- 2 × I2C
- 2 × UART
- 3 × 12-bit ADC
- 16 × controllable PWM channels
Power Pins on Pi Pico:
Power pins are used for either powering the pico from the power source or powering the sensors and peripherals from the pico.
The Pi Pico can either be powered through a USB cable(via VBUS) or through a battery or other sources(via VSYS), when both the inputs are connected together, the input with higher potential supplies the power. For connecting 2 sources you need to connect it to VSYS in series with a Schottky diode.
VBUS | 40 | It is the 5V input from the micro-USB port, if there is no micro-USB attached to the pico, there won’t be any power to the VBUS. |
VSYS | 39 | It is the main system bus that supplies the 3.3V output to the RP2040 microprocessor and other IO pins. VSYS feeds power to the RT6150 SMPS which generates a fixed 3.3V output. |
3V3_EN | 37 | it is the onboard enabled pin, it enables the 3.3V power supply on the pico board, it can be externally be used to turn the pico on or off. |
3V3(Out) | 36 | It is the main pin supply pin to the RP2040, and its IO is generated by the SMPS, hence this pin can be used to enable output circuitry. Max permissible current is 300mA |
Pico Ground Pins:
There are 2 kinds of ground pins on the board, a digital ground and a ground pin for analogue IO. The differences are given below-
Name | Pin no. | Description |
GND | 3,8,13,18,23,28,33,38 | All the ground pins in the boards are interconnected. All the devices, peripherals and sensors are connected to the ground pins to close the electrical circuit and to achieve a common reference ground throughout the circuit. The board has a total of 9 ground pins. 8 in GPIO’s and 1 for Debugging |
AGND | 33 | Also known as analog ground. It is intended for reference voltage for the ADCs and DACs.It is for the ground reference for GPIO26-29, a separate analog ground plane is running under these signals and terminating at this pin. In the absence of an ADC or ADC, this pin acts as a digital ground. |
Test Points on Raspberry Pi Pico:
These points are used during the manufacturing process to test the boards. These are only visible at the rare side of the board.
Test point pin number | Function |
TP1 | Ground |
TP2 | USB DM |
TP3 | USB DP |
TP4 | GPIO23/SMPS PS pin (not to be used) |
TP5 | GPIO25/LED (not to be used) |
TP6 | BOOTSEL |
These pins can be used for purposes such as if the board is used as surface mount modules. TP1, TP2, and TP3 can be used in place of micro-USB. TP6 can be used to drive the system into mass-storage USB programming mode (by shorting it low at power-up). TP4 and TP5 are not intended to be used at all.
It has an additional pin called the Run.
RUN – it is an RP2040 enabled pin. It can also be used as a reset for the RP2040 microcontroller.
Raspberry Pi Pico Specifications
The following are some of the important specifications of the Pico board that you might want to know. If you want more information, you can always refer to the Raspberry pi pico datasheet linked at the bottom of this page.
- Powered by RP2040 microcontroller from Pi foundation
- Operating Voltage: 1.8V to 5.5V
- Dual-Core Arm Cortex-M0+ processor
- 133MhZ clock frequency
- 264KB SRAM and 2MB Flask Memory
- 26 GPIO pins with 2 Analog pins
- Peripherals: UART (2), SPI (2), I2C (2), PWM (16), USB (1)
- Integrated Temperature sensor
- Low-power Sleep and dormant modes
Programming your Pi Pico:
The easiest method to program your Pi Pico is by using MicroPython, you can use a compiler such as Thonny IDE. Raspberry Pi Pico comes with two different platforms for programming and also two different programming languages support i.e. “C/C++ or MicroPython”.