

Overview
The RP2040 is a microcontroller made by Raspberry Pi in a LQFN-56(7x7) package with 57 pins. 12bit 133MHz 30 LQFN-56(7x7) Microcontrollers (MCU/MPU/SOC) ROHS.
PCBKit's library has its KiCad symbol (MCU_RaspberryPi:RP2040, from KiCad's library) and its footprint (Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mm, from KiCad's library), ready for a KiCad board. 57,971 are in stock at JLCPCB (part C2040). 1,841 open-source boards in 1,418 repositories on GitHub use it.
Symbol
Footprint
From the datasheet
11- Supply, least
- 1.62 V · IOVDD, recommended operating min · p. 635
- Supply, most
- 3.63 V · IOVDD, recommended operating max · p. 635
- Supply, least
- 990 mV · DVDD, recommended operating min · p. 635
- Supply, most
- 1.21 V · DVDD, recommended operating max · p. 635
- Supply, least
- 3.135 V · USB_VDD, recommended operating min · p. 636
- Supply, absolute maximum
- 3.63 V · IOVDD, absolute max · p. 632
- Takes asleep
- 180 µA · DVDD, Dormant typical average · p. 636
- Takes asleep
- 390 µA · DVDD, Sleep typical average · p. 637
- Supply, least
- 1.63 V · VREG_VIN, minimum regulator input supply · p. 188
- Takes working
- 35.7 mA · sum of DVDD and IOVDD typical average currents, Popcorn media player at 48 MHz · p. 636
- Takes at most
- 52.1 mA · sum of DVDD and IOVDD max average currents, Popcorn media player at 48 MHz · p. 636
What it is and has
23- Processor
- Dual ARM Cortex-M0+ @ 133MHz · p. 10
- SRAM
- 264kB in six independent banks · p. 10
- External Flash support
- Up to 16MB via dedicated QSPI bus · p. 10
- DMA
- DMA controller · p. 10
- Bus fabric
- Fully-connected AHB crossbar · p. 10
- Arithmetic peripherals
- Interpolator and integer divider · p. 10
- Core regulator
- On-chip programmable LDO · p. 10
- PLL
- 2 · p. 10
- GPIO
- 30 pins, 4 usable as analogue inputs · p. 10
- UART
- 2 · p. 10
- SPI
- 2 controllers · p. 10
- I2C
- 2 controllers · p. 10
- PWM
- 16 channels · p. 10
- USB
- USB 1.1 controller and PHY with host and device support · p. 10
- PIO
- 8 state machines · p. 10
- ADC resolution
- 12 bits · p. 634
- I2C modes
- Master or Slave; default Master · p. 461
- I2C speed modes
- Standard mode, Fast mode, Fast mode plus · p. 461
- I2C addressing
- 10-bit addressing in Master mode · p. 461
- I2C transmit buffer
- 16 elements per controller · p. 461
- I2C receive buffer
- 16 elements per controller · p. 461
- I2C DMA
- Supported · p. 461
- I2C interrupts
- Supported · p. 461
Specifications
87| Parameter | Conditions | As printed | Page |
|---|---|---|---|
| input supply voltage VVREG_VIN | min 1.63 · max 3.63 V | 188 | |
| output voltage variation ΔVVREG_VOUT | min -3 · max 3 % of selected output voltage | 188 | |
| output current IMAX | max 100 mA | 188 | |
| current limit ILIMIT | min 150 · typ 350 · max 450 mA | 188 | |
| ROK assertion threshold ROKTH.ASSERT | min 87 · typ 90 · max 93 % of selected output voltage | 188 | |
| ROK deassertion threshold ROKTH.DEASSERT | min 84 · typ 87 · max 90 % of selected output voltage | 188 | |
| power-up time tPOWER-ON | EN = 1, load current = 0mA, VREG_VIN ramps up in 100us; varies with load current and capacitance on VREG_VOUT | typ 275 · max 350 us | 188 |
| I/O Supply Voltage IOVDD | min -0.5 · max 3.63 V | 632 | |
| Voltage at IO VPIN | Maximum: IOVDD + 0.5 V | min -0.5 V | 632 |
| Human Body Model HBM | Compliant with JEDEC specification JS-001-2012 (April 2012) | max 2 kV | 632 |
| Human Body Model Digital (FT) pins only HBM | Digital (FT) pins only; compliant with JEDEC specification JS-001-2012 (April 2012) | max 4 kV | 632 |
| Charged Device Model CDM | Compliant with JESD22-C101E (December 2009) | max 500 V | 632 |
| Case Temperature TC | min -20 · max 85 °C | 632 | |
| Pin Input Leakage Current IIN | max 1 uA | 632 | |
| Input Voltage High @ IOVDD=2.5V VIH | IOVDD=2.5V; maximum: IOVDD + 0.3 | min 1.7 V | 632 |
| Input Voltage High @ IOVDD=3.3V VIH | IOVDD=3.3V; maximum: IOVDD + 0.3 | min 2 V | 632 |
| Input Voltage Low @ IOVDD=1.8V VIL | IOVDD=1.8V; maximum: 0.35 * IOVDD | min -0.3 V | 632 |
| Input Voltage Low @ IOVDD=2.5V VIL | IOVDD=2.5V | min -0.3 · max 0.7 V | 633 |
| Input Voltage Low @ IOVDD=3.3V VIL | IOVDD=3.3V | min -0.3 · max 0.8 V | 633 |
| Input Hysteresis Voltage @ IOVDD=2.5V VHYS | IOVDD=2.5V; Schmitt Trigger enabled | min 0.2 V | 633 |
| Input Hysteresis Voltage @ IOVDD=3.3V VHYS | IOVDD=3.3V; Schmitt Trigger enabled | min 0.2 V | 633 |
| Output Voltage High @ IOVDD=1.8V VOH | IOVDD=1.8V; IOH = 2, 4, 8 or 12mA depending on setting; maximum: IOVDD | min 1.24 V | 633 |
| Output Voltage High @ IOVDD=2.5V VOH | IOVDD=2.5V; IOH = 2, 4, 8 or 12mA depending on setting; maximum: IOVDD | min 1.78 V | 633 |
| Output Voltage High @ IOVDD=3.3V VOH | IOVDD=3.3V; IOH = 2, 4, 8 or 12mA depending on setting; maximum: IOVDD | min 2.62 V | 633 |
| Output Voltage Low @ IOVDD=1.8V VOL | IOVDD=1.8V; IOL = 2, 4, 8 or 12mA depending on setting | min 0 · max 0.3 V | 633 |
| Output Voltage Low @ IOVDD=2.5V VOL | IOVDD=2.5V; IOL = 2, 4, 8 or 12mA depending on setting | min 0 · max 0.4 V | 633 |
| Output Voltage Low @ IOVDD=3.3V VOL | IOVDD=3.3V; IOL = 2, 4, 8 or 12mA depending on setting | min 0 · max 0.5 V | 633 |
| Pull-Up Resistance RPU | min 50 · max 80 kΩ | 633 | |
| Pull-Down Resistance RPD | min 50 · max 80 kΩ | 633 | |
| Maximum Total IOVDD current IIOVDD_MAX | Sum of all current being sourced by GPIO and QSPI pins | max 50 mA | 633 |
| Maximum Total VSS current due to IO (IOVSS) IIOVSS_MAX | Sum of all current being sunk into GPIO and QSPI pins | max 50 mA | 633 |
| Single Ended Input Voltage High VIHSE | min 2 V | 634 | |
| Single Ended Input Voltage Low VILSE | max 0.8 V | 634 | |
| Differential Input Voltage High VIHDIFF | min 0.2 V | 634 | |
| Differential Input Voltage Low VILDIFF | max -0.2 V | 634 | |
| Output Voltage High VOH | Maximum: USB_VDD | min 2.8 V | 634 |
| Output Voltage Low VOL | min 0 · max 0.3 V | 634 | |
| Pull-Up Resistance - RPU2 RPU2 | min 0.873 · max 1.548 kΩ | 634 | |
| Pull-Up Resistance - RPU1&2 RPU1&2 | min 1.398 · max 3.063 kΩ | 634 | |
| Pull-Down Resistance RPD | min 14.25 · max 15.75 kΩ | 634 | |
| ADC Input Voltage Range VPIN_ADC | Maximum: ADC_AVDD | min 0 V | 634 |
| Effective Number of Bits ENOB | Simulated | min 9 bits | 634 |
| Resolved Bits | max 12 bits | 634 | |
| ADC Input Impedance RIN_ADC | min 100 kΩ | 634 | |
| Input Voltage Low VIL | XIN only. XOUT floating; maximum: 0.35*IOVDD | min 0 V | 634 |
| IOVDD | Digital IO; typical: 1.8 / 3.3 V; if IOVDD <2.5V, adjust GPIO VOLTAGE_SELECT registers | min 1.62 · max 3.63 V | 635 |
| DVDD | Digital core | min 0.99 · typ 1.1 · max 1.21 V | 635 |
| VREG_VIN | Voltage regulator; typical: 1.8 / 3.3 V | min 1.62 · max 3.63 V | 635 |
| USB_VDD | USB PHY | min 3.135 · typ 3.3 · max 3.63 V | 636 |
| ADC_AVDD | ADC; performance compromised below 2.97V | min 1.62 · typ 3.3 · max 3.63 V | 636 |
| DVDD current | Popcorn; 48MHz; typical and maximum average current | typ 10.9 · max 16.6 mA | 636 |
| IOVDD current | Popcorn; 48MHz; typical and maximum average current | typ 24.8 · max 35.5 mA | 636 |
| DVDD current | BOOTSEL mode - Active; typical and maximum average current | typ 9.4 · max 14.7 mA | 636 |
| IOVDD current | BOOTSEL mode - Active; typical and maximum average current | typ 1.2 · max 4.3 mA | 636 |
| USB_VDD current | BOOTSEL mode - Active; typical and maximum average current | typ 1.4 · max 2 mA | 636 |
| DVDD current | BOOTSEL mode - Idle; typical and maximum average current | typ 9 · max 14.3 mA | 636 |
| IOVDD current | BOOTSEL mode - Idle; typical and maximum average current | typ 1.2 · max 4.3 mA | 636 |
| USB_VDD current | BOOTSEL mode - Idle; typical and maximum average current | typ 0.2 · max 0.6 mA | 636 |
| DVDD current | Dormant; typical and maximum average current | typ 0.18 · max 4.2 mA | 636 |
| DVDD current | Sleep; typical and maximum average current | typ 0.39 · max 4.5 mA | 637 |
| power-up time tPOWER-ON | EN = 1, load current = 0mA, VREG_VIN ramps up in 100us; values vary with load current and capacitance on VREG_VOUT | typ 275 · max 350 us | 188 |
| Human Body Model HBM | Digital (FT) pins only; compliant with JEDEC specification JS-001-2012 (April 2012) | max 4 kV | 632 |
| Input Voltage High VIH | IOVDD=2.5V; maximum: IOVDD + 0.3 | min 1.7 V | 632 |
| Input Voltage High VIH | IOVDD=3.3V; maximum: IOVDD + 0.3 | min 2 V | 632 |
| Input Voltage Low VIL | IOVDD=1.8V; maximum: 0.35 * IOVDD | min -0.3 V | 632 |
| Input Voltage Low VIL | IOVDD=2.5V | min -0.3 · max 0.7 V | 633 |
| Input Voltage Low VIL | IOVDD=3.3V | min -0.3 · max 0.8 V | 633 |
| Input Hysteresis Voltage VHYS | IOVDD=2.5V; Schmitt Trigger enabled | min 0.2 V | 633 |
| Input Hysteresis Voltage VHYS | IOVDD=3.3V; Schmitt Trigger enabled | min 0.2 V | 633 |
| Output Voltage High VOH | IOVDD=1.8V; IOH = 2, 4, 8 or 12mA depending on setting; maximum: IOVDD | min 1.24 V | 633 |
| Output Voltage High VOH | IOVDD=2.5V; IOH = 2, 4, 8 or 12mA depending on setting; maximum: IOVDD | min 1.78 V | 633 |
| Output Voltage High VOH | IOVDD=3.3V; IOH = 2, 4, 8 or 12mA depending on setting; maximum: IOVDD | min 2.62 V | 633 |
| Output Voltage Low VOL | IOVDD=1.8V; IOL = 2, 4, 8 or 12mA depending on setting | min 0 · max 0.3 V | 633 |
| Output Voltage Low VOL | IOVDD=2.5V; IOL = 2, 4, 8 or 12mA depending on setting | min 0 · max 0.4 V | 633 |
| Output Voltage Low VOL | IOVDD=3.3V; IOL = 2, 4, 8 or 12mA depending on setting | min 0 · max 0.5 V | 633 |
| USB_VDD USB_VDD | Supplies USB PHY | min 3.135 · typ 3.3 · max 3.63 V | 636 |
| ADC_AVDD ADC_AVDD | Supplies ADC; ADC performance will be compromised at voltages below 2.97V | min 1.62 · typ 3.3 · max 3.63 V | 636 |
| Average DVDD Current | Popcorn; system clock frequency 48MHz | typ 10.9 · max 16.6 mA | 636 |
| Average IOVDD Current | Popcorn; system clock frequency 48MHz | typ 24.8 · max 35.5 mA | 636 |
| Average DVDD Current | BOOTSEL mode - Active | typ 9.4 · max 14.7 mA | 636 |
| Average IOVDD Current | BOOTSEL mode - Active | typ 1.2 · max 4.3 mA | 636 |
| Average USB_VDD Current | BOOTSEL mode - Active | typ 1.4 · max 2 mA | 636 |
| Average DVDD Current | BOOTSEL mode - Idle | typ 9 · max 14.3 mA | 636 |
| Average IOVDD Current | BOOTSEL mode - Idle | typ 1.2 · max 4.3 mA | 636 |
| Average USB_VDD Current | BOOTSEL mode - Idle | typ 0.2 · max 0.6 mA | 636 |
| Average DVDD Current | Dormant | typ 0.18 · max 4.2 mA | 636 |
| Average DVDD Current | Sleep | typ 0.39 · max 4.5 mA | 637 |
Parameters
14- ADC (Bit)
- 12bit
- CPU Core
- ARM Cortex-M0+
- CPU Maximum Speed
- 133MHz
- Core Size
- 32 Bit
- Current - Supply
- 35.7mA
- Current - Supply(Max)
- 52.1mA
- Number of I/O
- 30
- Operating Temperature
- -20℃~+85℃
- Oscillator Type
- Built-in+External
- Program Memory Type
- External
- RAM Size
- 264KB
- Standby Current
- 180uA
- Voltage - Supply
- 990mV~3.63V
- Voltage - Supply(Absolute Max)
- 3.63V
Order codes
3- RP2040LCSC C2040
- RP2040LCSC C2761095
- RP2040LCSC C2961140
Pinout
57| Pin | Name | Type |
|---|---|---|
| 1 | IOVDD | Power in |
| 2 | GPIO0 | Input/output |
| 3 | GPIO1 | Input/output |
| 4 | GPIO2 | Input/output |
| 5 | GPIO3 | Input/output |
| 6 | GPIO4 | Input/output |
| 7 | GPIO5 | Input/output |
| 8 | GPIO6 | Input/output |
| 9 | GPIO7 | Input/output |
| 10 | IOVDD | Passive |
| 11 | GPIO8 | Input/output |
| 12 | GPIO9 | Input/output |
| 13 | GPIO10 | Input/output |
| 14 | GPIO11 | Input/output |
| 15 | GPIO12 | Input/output |
| 16 | GPIO13 | Input/output |
| 17 | GPIO14 | Input/output |
| 18 | GPIO15 | Input/output |
| 19 | TESTEN | Input |
| 20 | XIN | Input |
| 21 | XOUT | Output |
| 22 | IOVDD | Passive |
| 23 | DVDD | Power in |
| 24 | SWCLK | Input |
| 25 | SWDIO | Input/output |
| 26 | RUN | Input |
| 27 | GPIO16 | Input/output |
| 28 | GPIO17 | Input/output |
| 29 | GPIO18 | Input/output |
| 30 | GPIO19 | Input/output |
| 31 | GPIO20 | Input/output |
| 32 | GPIO21 | Input/output |
| 33 | IOVDD | Passive |
| 34 | GPIO22 | Input/output |
| 35 | GPIO23 | Input/output |
| 36 | GPIO24 | Input/output |
| 37 | GPIO25 | Input/output |
| 38 | GPIO26/ADC0 | Input/output |
| 39 | GPIO27/ADC1 | Input/output |
| 40 | GPIO28/ADC2 | Input/output |
| 41 | GPIO29/ADC3 | Input/output |
| 42 | IOVDD | Passive |
| 43 | ADC_AVDD | Power in |
| 44 | VREG_VIN | Power in |
| 45 | VREG_VOUT | Power out |
| 46 | USB_DM | Input/output |
| 47 | USB_DP | Input/output |
| 48 | USB_VDD | Power in |
| 49 | IOVDD | Passive |
| 50 | DVDD | Passive |
| 51 | QSPI_SD3 | Input/output |
| 52 | QSPI_SCLK | Output |
| 53 | QSPI_SD0 | Input/output |
| 54 | QSPI_SD2 | Input/output |
| 55 | QSPI_SD1 | Input/output |
| 56 | QSPI_SS | Output |
| 57 | GND | Power in |
Open-source boards using it
All 1,841- 2 layers290.1 × 130 mm

- 4 layers50 × 30 mm

Picodvi
Fr4nkFletcher/ESP32-Marauder-Cheap-Yellow-Display
ESP32Marauder Cheap Yellow Display
55 parts1.8kMIT - 4 layers299 × 127 mm

- 2 layers42 × 67 mm

- 2 layers181 × 97 mm

OpenDeck r3.1.2
shanteacontrols/OpenDeck
A platform for building interactive control and sensing devices using MIDI and OSC built with Zephyr RTOS.
262 parts960Apache-2.0 - 4 layers82.6 × 82.5 mm

- 4 layers102.9 × 96.7 mm

PicoGUS chipdown
polpo/picogus
Emulation of ISA sound cards and CD-ROM on Raspberry Pi Pico (GUS, SB/Adlib, MPU-401, Tandy, CMS, Panasonic CD-ROM) with USB mouse/joystick support
99 parts805 - 2 layers53.2 × 24.8 mm

Show this part on your page
<iframe src="https://pcbkit.io/embed/parts/raspberry-pi/RP2040" title="RP2040 in PCBKit" width="100%" height="480" style="border:0;border-radius:12px" allow="fullscreen" loading="lazy"></iframe><img src="https://pcbkit.io/embed/parts/raspberry-pi/RP2040.jpg" alt="RP2040" width="1200" height="900">[](https://pcbkit.io/parts/raspberry-pi/RP2040)Questions
Is there a KiCad symbol and footprint for the RP2040?
Yes. The symbol is MCU_RaspberryPi:RP2040 and the footprint Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mm, both drawn on this page. PCBKit places them on a board for you when you design with it.
What package is the RP2040?
LQFN-56(7x7), with 57 pins. Its footprint is drawn on this page.
Where is the RP2040 datasheet?
Raspberry Pi publishes it: the Datasheet link on this page opens it.
Where can I order the RP2040?
JLCPCB lists it as part C2040, with 57,971 in stock; the sellers' links on this page open their listings.
Which open-source boards use the RP2040?
1,841 boards in 1,418 repositories on GitHub; the most starred are listed on this page, with their KiCad files.