Raspberry Pi Pico Pinout

Raspberry Pi Pico Pinout
Click on the pin labels on the pinout diagram to see their details here.

The Raspberry Pi Pico is a compact and versatile microcontroller development board based on the RP2040 chip. The Raspberry Pi Pico offers a balance of performance, low power consumption, and affordability. With dual-core Arm Cortex-M0+ processors, flexible I/O options, and support for multiple programming languages like C, C++, and MicroPython, the Pico opens up a range of possibilities for creating interactive and intelligent devices. Some major features include:

  • Dual-core Arm Cortex-M0+ processor, clocked up to 133 MHz
  • 264 KB of SRAM and 2 MB of onboard flash memory
  • 26 multi-function GPIO pins including 3 ADC
  • USB 1.1 device and host support
  • Built-in temperature sensor
  • Programmable in C/C++ and MicroPython
  • Low-power sleep and dormant modes
  • Small form factor (21mm x 51mm)
  • Provides 2 PIO (Programmable I/O) for custom peripheral interfacing
  • Can be surface mounted as a module
  • 3-pin ARM Serial Wire Debug (SWD) port
  • Support most of the well-known protocol like I2C, SPI, UART and PWM

Platform

ManufacturerRaspberry Pi
ProcessorRP2040
Processor FamilyArm Cortex-M0+
Clock Speed125 Mhz
Flash Memory2 MB
SRAM264 K

I/O

Digital I/O26
Analog Input3
PWM16
ADC Resolution4096
Interrupts26

Power

Input Voltage5V
I/O Voltage3.3V
I/O Current12 mA

Communication Protocols

I2C2x
SPI2x
UART2x

Connectivity

USB Micro B1x

Peripherals

RTC1x 32 bit
Timer1x 64 bit
Watchdog Timer1
Debug/TraceSWD

Dimensions

Width21 mm
Length51 mm
Weight10 g

Raspberry Pi Pico Pin Headers and Components  

The Raspberry Pi Pico is a compact microcontroller board with various components and headers that make it versatile and easy to use for different projects. Below are the key element of the board you may be interested to know about:

Dimensions

The board measures 51mm x 21mm.

Raspberry Pi Pico Dimensions21 mm51 mm

Pin Headers (GPIO Pins)

The Raspberry Pi Pico has 40 pins in total, arranged in two rows of 20 pins each.

Raspberry Pi Pico Pin Headers

Micro-USB Port

The micro-USB port, located at the edge of the board, is the primary way to connect the Raspberry Pi Pico to a computer for power and programming. It’s compatible with a standard micro-USB cable and handles data and power input (5V).

Raspberry Pi Pico Micro-USB Port

Bootsel Button

This small button is used to enter programming mode. By pressing and holding the Bootsel button while connecting the Pico to power, the board goes into USB mass storage mode, allowing you to upload firmware or access the file system.

Raspberry Pi Pico Bootsel Button

LED Indicator

The Pico has a built-in LED that can be controlled via GPIO25. It is often used to provide visual feedback for various applications, such as status indication or testing purposes.

Raspberry Pi Pico LED Indicator

RP2040 Microcontroller Chip

The heart of the Raspberry Pi Pico, the RP2040, is a dual-core Arm Cortex-M0+ processor designed by Raspberry Pi. It powers the entire board and provides the processing capability for Pico’s operations.

Raspberry Pi Pico RP2040 Microcontroller

Debug Header (SWD)

A small set of pads is available for Serial Wire Debug (SWD) access, which allows low-level debugging and direct communication with the RP2040 chip. Although not pre-soldered, these pads can be used by advanced users to connect external debuggers.

Raspberry Pi Pico Debug Header (SWD)

Test Pads

In the back of the board are various test pads allowing you to hook into different areas such as USB data pins, triggering boot select, or the LED pin.

Raspberry Pi Pico Test Pads

Powering Raspberry Pi Pico  

The Raspberry Pi Pico offers a few flexible options for powering the board, making it suitable for various project setups. Here are the main ways to power the Pico:

Micro-USB Port

The simplest and most common way to power the Raspberry Pi Pico is via the micro-USB port. When connected to a computer or USB power adapter, the micro-USB provides a stable 5V input to the board. This port not only powers the board but also serves as the primary connection for programming and data transfer.

Raspberry Pi Pico Micro-USB Port

VBUS Pin

The VBUS pin is directly connected to the 5V power provided by the USB input. If your project requires direct access to the 5V input, you can use this pin to power additional external components. This pin outputs 5V only when the board is powered via the USB port.

Raspberry Pi Pico VBUS Pin

VSYS Pin

The VSYS pin is the primary power input pin on the Pico, offering an alternative to the micro-USB port. This pin can accept a voltage range from 1.8V to 5.5V, making it compatible with various external power sources, such as batteries.

For example, a common power source like a 3.7V LiPo battery can connect directly to the VSYS pin.

Raspberry Pi Pico VSYS Pin

3V3 (OUT) Pin

The 3V3 pin is an output from the Pico’s onboard voltage regulator, providing a stable 3.3V for other components or sensors in your circuit.

The onboard regulator converts the USB 5V or VSYS input to a stable 3.3V output, suitable for most low-power components used alongside the Pico.

Raspberry Pi Pico 3V3 (Out) Pin

GND Pins

Ground (GND) pins are available in multiple locations across the Pico’s pin headers. All external components that need a reference ground should be connected to any of these GND pins to complete the circuit.

Raspberry Pi Pico GND Pins

External 3.3V Source

For advanced users, the Raspberry Pi Pico can be powered directly by supplying a 3.3V input on the 3V3 (OUT) pin. However, caution should be taken here as it bypasses the regulator, and any over-voltage could damage the board.

This option is mostly used when the Pico is part of a larger circuit with a commonly regulated 3.3V power source.

Raspberry Pi Pico Pinout and Peripherals  

The Raspberry Pi Pico’s RP2040 microcontroller comes with a variety of built-in peripherals designed to support a wide range of applications. Here’s a breakdown of the main peripherals that are mostly available in Raspberry Pi Pico pinout on the board:

Digital GPIO Pins

The Pico has 26 General Purpose Input/Output (GPIO) pins, which can be configured for digital input or output. These pins offer high flexibility and can be programmed to perform various functions in custom circuits.

PWM (Pulse Width Modulation)

16 of the GPIO pins support PWM, enabling the generation of variable-width pulses. PWM is widely used for applications such as dimming LEDs, controlling motor speed, or generating audio signals.

I2C

The Pico includes two I2C controllers, allowing communication with I2C-compatible devices like sensors, displays, and EEPROMs. Each controller can communicate with multiple devices over a shared bus.

SPI (Serial Peripheral Interface)

The board provides two SPI controllers, ideal for high-speed communication with SPI-enabled peripherals. SPI is commonly used for fast data transfer with components like SD cards, displays, and certain sensors.

UART (Universal Asynchronous Receiver/Transmitter)

With two UART controllers, the Pico can handle serial communication with other devices that use standard serial protocol, such as GPS modules, Bluetooth modules, external microcontrollers, or computers.

ADC (Analog to Digital Converter)

The Pico includes 3 ADC channels, allowing it to measure analog signals from sensors and other components. Each ADC channel has a 12-bit resolution, which translates analog voltages into digital values.

PIO (Programmable I/O)

The RP2040 features two Programmable I/O (PIO) blocks, each with 4 state machines. These allow users to implement custom protocols and control signals that might not be natively supported by the other peripherals.

Timers

Multiple hardware timers on the RP2040 allow for precise control of timed events, such as delays, periodic interrupts, or time-sensitive applications.

USB 1.1 Controller

The RP2040 microcontroller includes a built-in USB 1.1 controller, enabling direct USB communication when connected to a computer. This controller supports USB Device Mode, allowing the Pico to emulate devices like keyboards, mice, or serial interfaces.

Programming Raspberry Pi Pico  

Programming the Raspberry Pi Pico offers multiple options, allowing developers to choose from a range of tools and languages that best suit their project needs and experience level. Here are the main programming options available for the Pico:

  • MicroPython: MicroPython is a popular, lightweight implementation of Python, specifically designed for microcontrollers. It is ideal for beginners due to its simplicity and ease of use.
  • C/C++ SDK: The official C/C++ Software Development Kit (SDK) for the Raspberry Pi Pico provides low-level access to the board’s features and peripherals. It is a comprehensive option for advanced users who want full control over hardware.
  • Arduino IDE: The Pico can be programmed using the popular Arduino IDE thanks to official support in the Arduino Core for RP2040. This option allows users familiar with the Arduino ecosystem to develop projects with the Pico using standard Arduino libraries and syntax.
  • CircuitPython: CircuitPython, developed by Adafruit, is another Python-based option similar to MicroPython. It includes additional features, such as built-in drivers for Adafruit components, making it convenient for users who frequently work with Adafruit hardware.
  • PlatformIO: PlatformIO is a versatile and powerful development environment supporting multiple platforms, including RP2040. It integrates with IDEs like Visual Studio Code and offers a streamlined workflow for writing, testing, and deploying code to the Pico.
Raspberry Pi Pico FAQ
  • What is the function of the BOOTSEL button on Raspberry Pi Pico?

The BOOTSEL button is used to enter USB mass storage mode for firmware upload.

  • How do I update the firmware on the Pico?

To update, press and hold BOOTSEL while connecting to USB, then drag and drop the new firmware file.

  • Can the Raspberry Pi Pico control motors?

Yes, it can control motors through PWM output on its GPIO pins.

  • What is the purpose of the PIO blocks on the Pico?

PIO blocks allow for custom hardware interfaces and protocols not natively supported by the RP2040.

  • Does the Pico have an onboard RTC (Real-Time Clock)?

Yes. The Real-time Clock (RTC) provides time in a human-readable format and can be used to generate interrupts at specific times

  • Can I use the Raspberry Pi Pico with batteries?

Yes, you can power the Pico with batteries using the VSYS pin. The board doesn’t have any charger circuit. So, you have to handle that via custom circuit yourself.

  • What is the clock speed of the RP2040?

The RP2040 can run at a maximum clock speed of 133 MHz.

  • How much current can each GPIO pin handle?

Each GPIO pin can handle up to 12 mA, with a maximum of 50 mA across all pins.

  • Is the Raspberry Pi Pico compatible with Arduino libraries?

Yes, with Arduino IDE support, you can use many Arduino libraries with the Pico. But you have to check the documentation of each library to be sure the maintainer added support for the Raspberry Pi Pico.

  • Does the Pico have built-in storage?

It has 2 MB of onboard flash memory but no storage expansion slots.

  • How do I reset the Raspberry Pi Pico?

To reset, press and hold the BOOTSEL button while connecting the Pico to power or use an external reset circuit.

  • Can the Pico run machine learning models?

Yes, lightweight models can be run using TensorFlow Lite for Microcontrollers.

  • Is there Wi-Fi or Bluetooth on the Raspberry Pi Pico?

No, the standard Raspberry Pi Pico does not have built-in wireless connectivity.