The very first thing you should do with a new Raspberry Pi Pico is plug it into your computer with a micro-USB cable while holding down the BOOTSEL button. This puts the board into USB mass storage mode, letting you drag-and-drop a firmware file to install MicroPython or C/C++—the two main ways to program it.
Why the BOOTSEL Step Matters
The Pico has no operating system and comes with no pre-installed user program. Its RP2040 chip contains a small bootloader in ROM that activates when you hold BOOTSEL during power-up. This bootloader makes the Pico appear as a drive named RPI-RP2 on your computer. You then copy a .uf2 file onto that drive, and the Pico automatically reboots and runs the new firmware. This is the same process used for every firmware update, so learning it first saves you from confusion later.
Choose Your Programming Language
Your first real decision is which language to use. The two official options are:
- MicroPython – a lightweight Python interpreter. Best for beginners, quick experiments, and anyone who wants to read sensor data or control LEDs with minimal code.
- C/C++ – compiled code that runs faster and uses less memory. Best for advanced projects, real-time processing, or when you need to squeeze every bit of performance from the RP2040.
Most people start with MicroPython because it’s easier to write and debug. You can install it by downloading the .uf2 file from the official Raspberry Pi website and dragging it onto the RPI-RP2 drive. After that, you can use a serial terminal (like Thonny, which is recommended by the Raspberry Pi Foundation) to write and run Python code directly on the Pico.
What You Need Before You Start
- A Raspberry Pi Pico board (any variant: standard, Pico H, Pico W, etc.)
- A micro-USB cable that supports data transfer (not just charging)
- A computer with a USB port (Windows, macOS, or Linux)
- Optional but helpful: a breadboard, jumper wires, and an LED or button to test inputs/outputs
Note that the Pico uses a micro-USB port, not USB-C. If you have a Pico W (the wireless version), it also has a micro-USB port, so the same cable works.
Step-by-Step: First Boot and MicroPython Install
- Hold down the BOOTSEL button on the Pico.
- While holding it, plug the Pico into your computer using a micro-USB cable.
- Release the button after about 1 second. A drive named RPI-RP2 should appear.
- Download the latest MicroPython
.uf2file for your specific Pico model from the official Raspberry Pi documentation page. - Drag and drop the
.uf2file onto the RPI-RP2 drive. The drive will disappear automatically. - Your Pico is now running MicroPython. Open Thonny (or any serial terminal) and select the correct COM port (Windows) or /dev/ttyACM0 (Linux/macOS).
- Type
print("Hello, Pico!")and press Enter. You should see the output immediately.
Common Mistakes and How to Avoid Them
- Using a charge-only cable – many micro-USB cables don’t carry data. If the RPI-RP2 drive doesn’t appear, try a different cable.
- Not holding BOOTSEL long enough – you must hold it while plugging in and keep it held until the drive appears. If you release too early, the Pico boots normally and does nothing.
- Wrong .uf2 file – the Pico W and Pico 2 have different firmware. Download the file that matches your exact board model.
- Forgetting to reset after flashing – normally the Pico resets automatically, but if it doesn’t, unplug and replug it.
- Using the wrong serial port – in Thonny, you may see multiple ports. The Pico usually shows as “USB Serial Device� or “Board in FS mode�.
What to Do After MicroPython Is Installed
Once you can run Python code, try the classic “blink� program to verify the onboard LED works. The standard Pico has an LED on GPIO 25, while the Pico W uses the wireless chip’s GPIO (often GPIO 0). Here’s a simple blink script for the original Pico:
from machine import Pin
import time
led = Pin(25, Pin.OUT)
while True:
led.toggle()
time.sleep(0.5)
This turns the LED on and off every half second. If it works, your setup is correct. From there, you can start reading sensors, driving motors, or connecting to Wi-Fi (if you have a Pico W).
Why Not Just Use Arduino?
You might wonder why you’d choose a Pico over an Arduino board. The Pico is generally faster (133 MHz vs. 16 MHz on a typical Uno), has more RAM (264 KB vs. 2 KB), and costs less. It also supports both MicroPython and C/C++, while Arduino uses its own simplified C++ framework. However, Arduino has a larger ecosystem of shields and libraries, and some people find the IDE easier. The Pico’s main advantage is its flexibility and performance for the price.
Safety and Power Considerations
The Pico runs on 3.3V logic, not 5V. Supplying 5V to a GPIO pin can permanently damage the board. When powering external components, use the 3.3V pin or a separate regulated supply. The board can be powered via the micro-USB port (5V) or the VSYS pin (1.8–5.5V). Always double-check your wiring before connecting anything unusual. Also, avoid shorting the 3.3V pin to ground, as that can kill the voltage regulator.
Frequently Asked Questions
Do I need to solder anything to use the Pico?
No. The Pico comes with pin headers that you can solder yourself, but you can also buy a version with headers pre-soldered (like the Pico H). For breadboard use, you can push the Pico into a breadboard without soldering if you use the header pins, but they need to be attached first. Alternatively, you can use jumper wires with the castellated holes, but that’s less reliable.
Can I use the Pico with Arduino IDE?
Yes, you can. The Arduino IDE supports the Pico via the “Raspberry Pi Pico� board package, which you can install from the Boards Manager. This allows you to write Arduino sketches in C++ and upload them using the same BOOTSEL method.
What is the difference between Pico and Pico W?
The Pico W has an onboard wireless module (Infineon CYW43439) that supports 2.4 GHz Wi-Fi and Bluetooth. The standard Pico has no wireless capability. Both use the same RP2040 chip, but the Pico W has a slightly different GPIO layout for the wireless chip and a different LED GPIO.
How do I reset the Pico if it gets stuck?
You can unplug and replug the USB cable. If that doesn’t help, hold the BOOTSEL button while plugging it in to enter bootloader mode, then re-flash the firmware. For a hard reset, you can connect the RUN pin to ground briefly.
Can I use the Pico with a 5V sensor?
You need to be careful. The Pico’s GPIO pins are not 5V tolerant. If a sensor outputs 5V logic, you’ll need a level shifter or a voltage divider to bring it down to 3.3V. Powering the sensor itself can be done from the 5V pin, but the signal lines must be converted.
What is the maximum current I can draw from the 3.3V pin?
The RP2040’s voltage regulator can supply around 300 mA, but this also powers the chip itself. It’s safe to draw up to about 50 mA for external components without issue, but for higher currents, use a separate regulator or power the components from the 5V pin (if they can handle 5V).
Related
Method: the standard formula for this calculation, rounded as each result states. See how the calculators work or report an error.
More cards in this drawer
- Secure Boot Battlefield 6 ASUS: Fix & Enable Guide
- Best Tech Websites to Follow for Pros & Beginners
- Second Wind Quest Walkthrough: Where Winds Meet6.00 min/km
- Enshrouded Weapon Upgrade Guide: How to Improve Gear5.00 min/km
- Connect Phone to Controller for Cloud Gaming
- Python Search Highlighting: Snippets & Matches