Skip to content
Home > Components > Boards > Raspberry Pi Pico

Raspberry Pi Pico

The first microcontroller board from Raspberry Pi, powered by their custom RP2040 silicon.

Component Preview

Raspberry Pi PicoRaspberry Pi Pico (RP2040)

The Raspberry Pi Pico is a flexible, low-cost microcontroller board built around the RP2040 chip designed by Raspberry Pi. It features a dual-core Arm Cortex-M0+ processor, 264KB of internal RAM, and support for up to 16MB of off-chip flash. It is designed to be easily programmable via C/C++ or MicroPython.

BoardsMicrocontrollerRP2040

Overview

Operating at 3.3V logic levels, the Pico offers a rich set of I/O options including 26 multi-function GPIO pins. It stands out with its unique Programmable I/O (PIO) subsystem, allowing you to create custom hardware interfaces. It features a micro-USB port for power and data, and a physical BOOTSEL button used for programming.


CAUTION

3.3V Logic Level: The Raspberry Pi Pico operates strictly at 3.3V. Providing 5V to any GPIO pin (other than VBUS) will damage the RP2040 chip. Use logic level shifters when connecting 5V components.

Pin Reference

The Pico has 40 pins configured in a dual in-line package (DIP) style.

Pin GroupDescription
GP0 - GP2826 General Purpose I/O pins (3.3V logic only). All can be used for digital I/O and PWM.
ADC0 - ADC23 of the GPIO pins (GP26, GP27, GP28) have hardware Analog-to-Digital Converter capabilities.
VBUSMicro-USB input voltage (typically 5V). Used for powering 5V peripherals.
VSYSMain system input voltage (1.8V to 5.5V). Used to power the Pico from an external battery.
3V3(OUT)Regulated 3.3V output for powering external 3.3V sensors.
GNDMultiple ground pins distributed around the board.
RUNReset pin. Pulling this low resets the RP2040.

Configurable Attributes

(Currently, microcontroller boards in the simulator do not have configurable graphical attributes. You upload code to them directly via the editor.)

A typical configuration for testing digital output.

  1. Connect a 220-ohm resistor to pin GP18.
  2. Connect the other end of the resistor to the Anode of an LED.
  3. Connect the Cathode of the LED to GND.

Wiring Diagram

Example Code

This code demonstrates a standard LED blink routine. In OpenHW Studio's autocoding blocks, the board's setup configuration defines GP18 as the target for led_1.

cpp
void setup() {
  // autocoding for led_1 start
  pinMode(18, OUTPUT);
  // autocoding for led_1 end

  // put your setup code here, to run once:
}

void loop() {
  // autocoding for led_1 start
  digitalWrite(18, HIGH);
  delay(1000);
  digitalWrite(18, LOW);
  delay(1000);
  // autocoding for led_1 end

  // put your main code here, to run repeatedly:
}

Simulation Notes

  • To use the Raspberry Pi Pico in the OpenHW Studio editor, ensure you select the "Raspberry Pi Pico" board from the environment dropdown menu.
  • The simulator models the standard delay() function to block execution accurately.
  • While the physical Pico features an onboard LED connected to GP25, you can use external LEDs connected to pins like GP18 (as shown in the code above) to test basic I/O functionality.

Released under the MIT License.