Bringup
Open the editor
Microcontroller with real firmwareRaspberry Pi Pico (SC0915)rpi_pico

Raspberry Pi Pico (RP2040)

Raspberry Pi Pico: RP2040 (2× Cortex-M0+, 125 MHz) with real firmware from an Arduino sketch (Arduino-Pico core) or ELF/HEX: digitalWrite/Read, analogRead (GP26–28), Serial / Serial1 (GP0 TX, GP1 RX), millis/delay, attachInterrupt, analogWrite (PWM), Wire (I²C), SPI, PIO (Servo, tone, NeoPixel), both cores (setup1/loop1, rp2040.fifo). The onboard LED is on GP25 (LED_BUILTIN). Supply via USB (internal 3.3 V) or externally on 3V3.

VSYS3V3GNDGP0/TXGP1/RXGP2GP3GP4/SDAGP5/SCLGP6GP7GP8GP9GP10GP11GP12GP13GP14GP15GP16/MISOGP17GP18/SCKGP19/MOSIGP20GP21GP22GP26/A0GP27/A1GP28/A2GP25/LEDRUNRaspberry Pi Pico (SC0915)
Schematic symbol

Key data

Category
Arduino
Simulation model
Microcontroller with real firmware
Manufacturer part number
Raspberry Pi Pico (SC0915)
Reference prefix
A
Pins
31
Land pattern
RaspberryPi_Pico_Common_THT

Notes

The firmware runs on an emulated CPU core, instruction by instruction. Peripherals that the model implements (GPIO, timers, UART, SPI, I²C, ADC and others, see the description) act on the pins of the circuit, so the analog parts around the chip see the same voltages and timing as on a real board.

  • Right-click the part and choose "Open in code editor" to write and compile its code; "Serial monitor" shows its UART output.
  • In the inspector you can load a demo firmware or your own ELF / Intel HEX / BIN file instead.
  • GPIO pins are real circuit pins: an LED on an output needs a series resistor, an input needs a defined level (pull-up or pull-down).
  • The debugger in the code view stops at breakpoints and shows registers, variables and the call stack.

Simulation model

An emulated CPU core runs the firmware binary instruction by instruction. The GPIO pins are pins of the analog circuit: outputs drive through a driver resistance, inputs read the voltage with thresholds.

Device
rp2040
CPU core
ARM Cortex-M0+ dual-core
Emulator
ARM Cortex-M emulator
Firmware
Arduino sketch compiled in the code view (Arduino-Pico core), or your own ELF / Intel HEX / BIN file
Flash / RAM for firmware
2 MB / 256 KB
Supply pins
3V3 / GND
Mapped GPIO pins
28

Pins 31

simulatedreal chip onlyPin functions from the emulator and the datasheet.

PinNameFunctionsUse
VSYSVSYSSupply pinMain supply 1.8–5.5 V into the on-board buck-boost regulator (USB 5 V arrives here through a diode)
3V33V3Supply pin3.3 V output of the on-board regulator (up to about 300 mA); 3.3 V input with supply = extern
GNDGNDGround pinGround
GP0GP0/TXI/O pinSPI0_RXUART0_TXI2C0_SDAPWM0_ASerial1 TX (UART0) in Arduino-Pico
GP1GP1/RXI/O pinSPI0_CSnUART0_RXI2C0_SCLPWM0_BSerial1 RX (UART0) in Arduino-Pico
GP2GP2I/O pinSPI0_SCKUART0_CTSI2C1_SDAPWM1_AGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP3GP3I/O pinSPI0_TXUART0_RTSI2C1_SCLPWM1_BGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP4GP4/SDAI/O pinSPI0_RXUART1_TXI2C0_SDAPWM2_AWire SDA (I2C0) in Arduino-Pico: pull-up 4.7 kΩ to 3V3
GP5GP5/SCLI/O pinSPI0_CSnUART1_RXI2C0_SCLPWM2_BWire SCL (I2C0) in Arduino-Pico: pull-up 4.7 kΩ to 3V3
GP6GP6I/O pinSPI0_SCKUART1_CTSI2C1_SDAPWM3_AGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP7GP7I/O pinSPI0_TXUART1_RTSI2C1_SCLPWM3_BGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP8GP8I/O pinSPI1_RXUART1_TXI2C0_SDAPWM4_AGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP9GP9I/O pinSPI1_CSnUART1_RXI2C0_SCLPWM4_BGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP10GP10I/O pinSPI1_SCKUART1_CTSI2C1_SDAPWM5_AGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP11GP11I/O pinSPI1_TXUART1_RTSI2C1_SCLPWM5_BGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP12GP12I/O pinSPI1_RXUART0_TXI2C0_SDAPWM6_AGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP13GP13I/O pinSPI1_CSnUART0_RXI2C0_SCLPWM6_BGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP14GP14I/O pinSPI1_SCKUART0_CTSI2C1_SDAPWM7_AGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP15GP15I/O pinSPI1_TXUART0_RTSI2C1_SCLPWM7_BGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP16GP16/MISOI/O pinSPI0_RXUART0_TXI2C0_SDAPWM0_ASPI MISO (SPI0) in Arduino-Pico
GP17GP17I/O pinSPI0_CSnUART0_RXI2C0_SCLPWM0_BSPI chip select (SPI0) in Arduino-Pico
GP18GP18/SCKI/O pinSPI0_SCKUART0_CTSI2C1_SDAPWM1_ASPI SCK (SPI0) in Arduino-Pico
GP19GP19/MOSII/O pinSPI0_TXUART0_RTSI2C1_SCLPWM1_BSPI MOSI (SPI0) in Arduino-Pico
GP20GP20I/O pinSPI0_RXUART1_TXI2C0_SDAPWM2_AGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP21GP21I/O pinSPI0_CSnUART1_RXI2C0_SCLPWM2_BGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP22GP22I/O pinSPI0_SCKUART1_CTSI2C1_SDAPWM3_AGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP26GP26/A0I/O pinSPI1_SCKUART1_CTSI2C1_SDAPWM5_AADC0Analog input A0 (ADC0), 0 … 3.3 V
GP27GP27/A1I/O pinSPI1_TXUART1_RTSI2C1_SCLPWM5_BADC1Analog input A1 (ADC1), 0 … 3.3 V
GP28GP28/A2I/O pinSPI1_RXUART0_TXI2C0_SDAPWM6_AADC2Analog input A2 (ADC2), 0 … 3.3 V
GP25GP25/LEDI/O pinSPI1_CSnUART1_RXI2C0_SCLPWM4_BOn-board LED (LED_BUILTIN)
RUNRUNInput pinRUNReset, active low: button to GND restarts the board

Parameters 1

Supplysupply
Defaultusb
usbextern

usb: the Pico's regulator holds 3V3 (as on a USB cable); extern: connect 3.3 V to 3V3 yourself

PCB

Verified land patternRaspberryPi_Pico_Common_THT
PackageLand patternStatusSource
Modul THTRaspberryPi_Pico_Common_THTVerified land patternKiCad 10.0.7: symbol RaspberryPi_Pico, footprint Module:RaspberryPi_Pico_Common_THT; Pico soldered in as a module (perfboard 2.54 mm pitch)
Modul SMDRaspberryPi_Pico_SMDVerified land patternKiCad 10.0.7: symbol RaspberryPi_Pico, footprint Module:RaspberryPi_Pico_SMD; Pico soldered via the castellated pads