Pico Datasheet
Pico Datasheet
Colophon
Copyright © 2020 Raspberry Pi (Trading) Ltd.
The documentation of the RP2040 microcontroller is licensed under a Creative Commons Attribution-NoDerivatives 4.0
International (CC BY-ND).
build-date: 2021-01-15
build-version: 773cda0-clean
RPTL reserves the right to make any enhancements, improvements, corrections or any other modifications to the
RESOURCES or any products described in them at any time and without further notice.
The RESOURCES are intended for skilled users with suitable levels of design knowledge. Users are solely responsible for
their selection and use of the RESOURCES and any application of the products described in them. User agrees to
indemnify and hold RPTL harmless against all liabilities, costs, damages or other losses arising out of their use of the
RESOURCES.
RPTL grants users permission to use the RESOURCES solely in conjunction with the Raspberry Pi products. All other use
of the RESOURCES is prohibited. No licence is granted to any other RPTL or other third party intellectual property right.
HIGH RISK ACTIVITIES. Raspberry Pi products are not designed, manufactured or intended for use in hazardous
environments requiring fail safe performance, such as in the operation of nuclear facilities, aircraft navigation or
communication systems, air traffic control, weapons systems or safety-critical applications (including life support
systems and other medical devices), in which the failure of the products could lead directly to death, personal injury or
severe physical or environmental damage (“High Risk Activities”). RPTL specifically disclaims any express or implied
warranty of fitness for High Risk Activities and accepts no liability for use or inclusions of Raspberry Pi products in High
Risk Activities.
Raspberry Pi products are provided subject to RPTL’s Standard Terms. RPTL’s provision of the RESOURCES does not
expand or otherwise modify RPTL’s Standard Terms including but not limited to the disclaimers and warranties expressed
in them.
Table of Contents
Colophon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Legal Disclaimer Notice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1. About the Raspberry Pi Pico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Mechanical Specificaition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1. Raspberry Pi Pico Pinout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2. Surface Mount Footprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3. Recommended Operating Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3. Electrical Specification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1. Power Consumption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1.1. Popcorn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1.2. BOOTSEL mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.1.3. DORMANT Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.1.4. SLEEP Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4. Applications Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.1. Programming the Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.2. General Purpose IO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.3. Using the ADC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.4. Powerchain. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.5. Powering Pico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.6. Using a Battery Charger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.7. USB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.8. Debugging. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Appendix A: Availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Ordering code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Appendix B: Pico Schematic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Appendix C: Pico Component Locations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Table of Contents 2
Raspberry Pi Pico Datasheet
Figure 1. The
Raspberry Pi Pico
Rev3 board.
Raspberry Pi Pico has been designed to be a low cost yet flexible development platform for RP2040, with the following
key features:
Pico has been designed to use either soldered 0.1" pin-headers (it is one 0.1" pitch wider than a standard 40-pin DIP
package) or can be used as a surface mountable 'module', as the user IO pins are also castellated. There are SMT pads
underneath the USB connector and BOOTSEL button, which allow these signals to be accessed if used as a reflow-
soldered SMT module.
Pico uses an on-board buck-boost SMPS which is able to generate the required 3.3 volts (to power RP2040 and external
circuitry) from a wide range of input voltages (~1.8 to 5.5V). This allows significant flexibility in powering the unit from
various sources such as a single Lithium-Ion cell, or 3 AA cells in series. Battery chargers can also be very easily
integrated with the Pico powerchain.
Reprogramming the Pico Flash can be done using USB (simply drag and drop a file onto the Pico which appears as a
mass storage device) or via the Serial Wire Debug (SWD) port. The SWD port can also be used to interactively debug code
running on the RP2040.
The Pico schematic is reproduced in Appendix A of this document and the source design files (scheamtic and PCB) are
For further information on getting started with Pico please see the Getting started with Raspberry Pi Pico book.
Figure 3. The
dimensions of the
Raspberry Pi Pico
Rev3 board.
NOTE
The physical pin numbering is shown in Figure 4, for the pin allocation see Figure 2 or the full Raspberry Pi Pico
schematics in Appendix B.
A few RP2040 GPIO pins are used for internal board functions, these are:
GPIO29 = IP Used in ADC mode (ADC3) to measure VSYS/3 GPIO25 = OP Connected to user LED GPIO24 = IP VBUS
sense - high if VBUS is present, else low GPIO23 = OP Controls the on-board SMPS Power Save pin
Apart from GPIO and ground pins, there are 7 other pins on the main 40-pin interface:
PIN40 = VBUS PIN39 = VSYS PIN37 = 3V3_EN PIN36 = 3V3 PIN35 = ADC_VREF PIN33 = AGND PIN30 = RUN
VBUS is the micro-USB input voltage, connected to micro-USB port pin 1. This is nominally 5V (or 0V if the USB is not
connected or not powered).
VSYS is the main system input voltage, which can vary in the allowed range 1.8V to 5.5V, and which is used by the on-
board SMPS to generate the 3.3V for the RP2040 and its GPIO.
3V3_EN connects to the on-board SMPS enable pin, and is pulled high (to VSYS) via a 100K resistor. To disable the 3.3V
(which also de-powers the RP2040), short this pin low.
3V3 is the main 3.3V supply to RP2040 and its I/O, generated by the on-board SMPS. This pin can be used to power
external circuitry (maximum output current will depend on RP2040 load and VSYS voltage, it is recommended to keep the
load on this pin less than 300mA).
ADC_VREF is the ADC power supply (and reference) voltage, and is generated on Pico by filtering the 3.3V supply. This pin
can be used with an external reference if better ADC performance is required.
AGND is the ground reference for GPIO26-29, there is a separate analog ground plane running under these signals and
terminating at this pin. If the ADC is not used or ADC performance is not critical, this pin can be connected to digital
ground.
RUN is the RP2040 enable pin, and has an internal (on-chip) pull-up resistor to 3.3V of about ~50K Ohms. To reset
RP2040, short this pin low.
Finally, thre are also 6 Test Points (TP1-TP6) which can be accessed if required, for example if using as a surface mount
module. These are:
TP1 = Ground (close coupled ground for differential USB signals) TP2 = USB DM TP3 = USB DP TP4 = GPIO23/SMPS PS
pin (do not use) TP5 = GPIO25/LED (not recommended to be used) TP6 = BOOTSEL
TP1, TP2 and TP3 can be used to access the USB signals instead of using the micro-USB port. TP6 can be used to drive
the system into mass-storage USB programming mode (by shorting it low). Note that TP4 is not intended to be used
externally, and TP5 is not really recommneded to be used as it will only swing from 0V to the LED forward voltage (and
hence can only really be used as an output with special care).
The footprint shows the test point locations and pad sizes as well as the 4 USB connector shell ground pads (A,B,C,D).
The USB conenctor on Pico is a though-hole part, which provides it with mechanical strength. The USB socket pins do not
protrude all the way through the board, however solder does pool at these pads during manufacture and can stop the
module sitting completely flat. Hence we provide pads on the SMT module footprint to allow this solder to reflow in a
controlled manner when Pico goes through reflow again.
For test points that are not used, it is acceptable to void any copper under these (with suitable clearance) on the carrier
board.
Operating Temp Max (including self-heating) = 85C Operating Temp Min = -20C
Note that VBUS and VSYS current will depend on use-case, some examples are given in the next section.
For more detailed current consumption data, please see the RP2040 Datasheet.
3.1.1. Popcorn
Firstly, 'Popcorn' (Media player demo) using the VGA, SD Card, and Audio board. This demo uses VGA video, I2S aduio and
4-bit SD Card access. This has been performed with (Table 1) and without (Table 2) the power saving (PS) mode of Pico’s
voltage regulator, controlled by GPIO23. The 'Average' data shows the mean current consumption over several seconds of
video, with varying colour and intensity. The 'Maximum' data is obtained during periods of white video, when the current
required is at it’s highest.
Table 1. Popcorn
Pico Board Average VBUS Current @ 5V (mA) Maximum VBUS Current @5V (mA)
running on the VGA
Board (VGA video, SD
Temperature (°C) Temperature (°C)
Card and I2S audio)
-25 25 85 -25 25 85
NOTE
Includes current consumed by VGA board (e.g. I2S DAC) in addition to the Raspberry Pi Pico. For more information on
the VGA board see the Hardware design with RP2040 book.
Figure 6. Popcorn
running on the VGA
Board (Average
Current)
Figure 7. Popcorn
running on the VGA
Board (Maximum
Current)
Table 2. Popcorn
Pico Board Average VBUS Current @ 5V (mA) Maximum VBUS Current @5V (mA)
running on the VGA
Board (VGA video, SD
Temperature (°C) Temperature (°C)
Card and I2S audio)
with power saving
-25 25 85 -25 25 85
disabled (GPIO23
pulled high)
#1 90.3 89.3 90.7 94.6 94.5 95.6
Figure 8. Popcorn
running on the VGA
Board (Average
Current) with power
saving disabled
(GPIO23 pulled high)
Figure 9. Popcorn
running on the VGA
Board (Maximum
Current) with power
saving disabled
(GPIO23 pulled high)
Table 3. BOOTSEL
Pico Board USB Idle VBUS Current @ 5V (mA) USB Active VBUS Current @5V (mA)
mode
-25 25 85 -25 25 85
Table 4. Raspberry Pi
Pico Board VBUS Current @ 5V (mA)
Pico running the
hello_dormant
Temperature (°C)
binary. Board is in
DORMANT mode -25 25 85
Table 5. Raspberry Pi
Pico Board VBUS Current @ 5V (mA)
Pico running the
hello_sleep
Temperature (°C)
binary. Board is in
SLEEP mode. -25 25 85
The simplest way to reprogram the Pico’s Flash is to use the special USB mode. To do this, depower the board, then hold
the BOOTSEL button down during board power-up (e.g. hold BOOTSEL down while connecting the USB). The Pico will then
appear as a USB Mass Storage Device. Dragging a special '.uf2' file onto the disk will write this file to the Flash and restart
the Pico.
To get started using the SWD port see the Debugging with SWD section in the Getting started with Raspberry Pi Pico
book.
The Pico exposes 26 of the 30 possible RP2040 GPIO pins by routing them straight out to Pico header pins. GPIO0 to
GPIO22 are digital only and GPIO 26-28 are able to be used either as digital GPIO or as ADC inputs (software selectable).
One thing to note is that the ADC capable GPIO26-29 have an internal reverse diode to the VDDIO (3V3) rail and so the
input voltage must not exceed VDDIO plus about 300mV. Also, if the RP2040 is unpowered, applying a voltage to these
GPIO pins will 'leak' through the diode into the VDDIO rail. Normal digital GPIO pins 0-25 (and also the debug pins) do not
have this restriction and therefore voltage can safely be applied to these pins when RP2040 is upowered.
1. We are relying on the 3.3V SMPS output accuracy which isn’t great
2. We can only do so much filtering and therefore ADC_AVDD will be somewhat noisy
3. The ADC draws current (about 150μA if the temperature sense diode is disabled, but it varies from chip to chip) and
therefore there will be an inherent offset of about 150μA*200 = ~30mV. There is a small difference in current draw
when the ADC is sampling (about +20μA) so that offset will also vary with sampling as well as operating
temperature.
Changing the resistance between the ADC_VREF and 3V3 pin can reduce the offset at the expense of more noise - which
may be OK especailly if the use case can support averaging over multiple samples.
The ADC offset can be reduced by tying a second channel of the ADC to ground, and using this zero-measurement as an
approximation to the offset.
For much improved ADC performance, an external 3.0V shunt refernce, such as LM4040, can be connected from the
ADC_VREF pin to ground. Note that if doing this the ADC range is limited to 0-3.0V signals (rather than 0-3.3V), and the
shunt reference will draw continuous current through the 200R filter resistor (3.3V-3.0V)/200 = ~1.5mA.
Note that the 1R resistor on Pico (R9) is designed to (maybe) help with shunt references that would otherwise become
unstable when directly connected to 2.2μF. It also makes sure there is a little filtering even in the case that 3.3V and
ADC_VREF are shorted together (which is a valid thing to do if you don’t care about noise and want to reduce the inherent
offset).
Finally, R7 is a physically large 1608 metric (0603) package resistor, so can be relatively easily removed if a user wants to
isolate ADC_VREF and do their own thing with the ADC voltage, for example powering it from an entirely separate voltage
(e.g. 2.5V). Note that the ADC on RP2040 has only been qualified at 3.0/3.3V but should work down to about 2V.
4.4. Powerchain
Raspberry Pi Pico has been designed with a simple yet flexible power supply architecture and can easily be powered from
other sources such as batteries or external supplies. Integrating the Pico with external charging circuits is also
straightforward. Figure 14 shows the power supply circuitry.
VBUS is the 5V input from the micro-USB port, which is fed through a Schottky diode to generate VSYS. The VBUS to
VSYS diode (D1) adds flexibility by allowing power ORing of different supplies into VSYS.
VSYS is the main system 'input voltage' and feeds the RT6150 buck-boost SMPS, which generates a fixed 3.3V output for
the RP2040 device and its IO (and can be used to power external circuitry). VSYS is R-C filtered and divided by 3 (by R5, R6
and C3 in the Pico schematic) and can be monitored on ADC channel 3. This can be used for example as a crude battery
voltage monitor.
The buck-boost SMPS, as its name implies, can seamlessly switch from buck to boost mode, and therefore can maintain
an output voltage of 3.3V from a wide range of input voltages, ~1.8V to 5.5V, which allows a lot of flexibility in the choice
of power source.
GPIO24 monitors the existence of VBUS, while R10 and R1 act to pull VBUS down to make sure it is 0V if VBUS is not
present.
GPIO23 controls the RT6150 PS (Power Save) pin. When PS is low (the default on Pico) the regulator is in Pulse
Frequency Modulation mode, which, at light loads, saves considerabe power by only turning on the switching MOSFETs
occasioanlly to keep the output capacitor topped up. Setting PS high forces the regulator into Pulse Width Modulation
(PWM) mode. PWM mode forces the SMPS to switch continuously, which reduces the output ripple considerably at light
loads (which can be good for some use cases) but at the expense of much worse efficiency. Note that under heavy load
the switcher will be in PWM mode irrespective of the PS pin state.
The SMPS EN pin is pulled up to VSYS by a 100K resistor and made available on Pico pin 37. Shorting this pin to ground
will disable the switcher and put it into a low power state.
NOTE
The RP2040 has an on-chip linear regulator (LDO) that powers the digital core at 1.2V (nominal) from the 3.3V supply,
which is not shown in Figure 14.
4.4. Powerchain 17
Raspberry Pi Pico Datasheet
If the USB port is the only power source, VSYS and VBUS can be safely shorted together to eliminate the Schottky diode
drop (which improves efficiency and reduces ripple on VSYS).
If the USB port is not going to be used, it is safe to power Pico by connecting VSYS to your preferred power source (in the
range ~1.8V to 5.5V).
IMPORTANT
If you are using Raspberry Pi Pico in USB Host mode (see for instance the USB HID example, https://github.com/
raspberrypi/pico-examples/tree/pre_release/usb/host/host_hid/host_hid.c) then you must power Pico by providing 5V
to the VBUS pin.
The simplest way to safely add a second power source to Pico is to feed it into VSYS via another Schottky diode (See
Figure XX). This will 'OR' the two voltages, allowing the higher of either the external votlage or VBUS to power VSYS, with
the diodes preventing either supply from back-powering the other. For example a single Lithium-Ion cell* (cell voltage
~3.0V to 4.2V) will work well, as will 3xAA series cells (~3.0V to ~4.8V) and any other fixed supply in the range ~2.3V to
5.5V. The downside of this approach is that the second power supply will suffer a diode drop in the same way as VBUS
does, and this may not be desirable from an efficiency perspective or if the source is already close to the lower range of
input voltage allowed for the RT6150.
An improved way to power from a second source is using a P-channel MOSFET (P-FET) to replace the Schottky diode as
shown in Figure 15. Here, the gate of the FET is controlled by VBUS, and will disconnect the secondary source when VBUS
is present. The P-FET should be chosen to have low on resistance, and therefore overcomes the efficiency and voltage-
drop issues with the diode-only solution.
Note that the Vt (threshold voltage) of the P-FET must be chosen to be well below the minimum external input voltage, to
make sure the transistor is turned on swiftly and with low resistance. When the input VBUS is removed, the P-FET will not
start to turn on until VBUS drops below the transitor Vt, meanwhile the body diode of the PFET may start to conduct
(depending on whether Vt is smaller than the diode drop). As the PFET body diode will have reasonable voltage drop, for
inputs that will have a low minimum input voltage, or if the PFET gate is expected to change slowly (e.g. if any capaitance
is added to VBUS) a secondary schottky diode across the PFET (in the same direction as the body diode) is
recommended.
An example of a suitable MOSFET for most situations is Diodes DMG2305UX which has a maximum Vt of 0.9V and Ron
of 100 milliohms (at 2.5V Vgs).
NOTE
If using Lithium-Ion cells they must have, or must be be provided with, adequate prtoection against over-discharge,
over-charge, charging outside allowed temperature range and overcurrent. Bare, unprotected cells are dangerous and
can catch fire or explode if over-discharged, over-charged or charged / discharged outside their allowed temperature
and/or current range.
In the example we feed VBUS to the input of the charger, and we feed VSYS with the output via the previously mentioned
P-FET arrangement. Depending on your use case you may also want to add a schottky diode acorss the P-FET as
described in the previous section.
4.7. USB
RP2040 has an integrated USB1.1 PHY and controller which can be used in both Device and Host mode. Pico adds the
two required 27 ohm external resistors and brings this interface to a standard micro-USB port.
4.8. Debugging
Raspberry Pi Pico brings the RP2040 Serial Wire Debug (SWD) interface to a 3 pin debug header on the lower edge of the
board. To get started using the debug port see the Debugging with SWD section in the Getting started with Raspberry Pi
Pico book.
NOTE
4.7. USB 20
Raspberry Pi Pico Datasheet
Appendix A: Availability
Raspberry Pi guarantee availability of the Raspberry Pi Pico product until at least January 2027.
Support
For support see the Pico section of the Raspberry Pi website, and post questions on the Raspberry Pi forum.
Ordering code
Table 6. Part Number
Model Order Code EAN Minimal Order RRP
Quantity
NOTE
Support 21
Raspberry Pi Pico Datasheet