Every Pico has a USB bootloader in ROM. You don't need any special tool for the first flash.
Procedure
- Hold the BOOTSEL button, then plug the Pico into your computer via USB. Release the button.
- The Pico appears as a USB drive: RPI-RP2 (RP2040 boards) or RP2350 (Pico 2 boards).
- Copy a
.uf2file onto that drive. The drive disappears and the Pico reboots into the new program.
Where the UF2 comes from
- Your own C/C++ program: the Pico SDK writes
name.uf2next toname.elfwhen yourCMakeLists.txtcallspico_add_extra_outputs(name). - MicroPython: download the UF2 for your exact board from micropython.org (separate builds for Pico, Pico W, Pico 2, Pico 2 W). Then connect to the REPL over USB serial, e.g. with Thonny.
- Quick hardware test: Raspberry Pi publishes "universal" blink and hello-world UF2 files that run on all Pico variants (linked from the documentation).
Tips
- Use the MicroPython build for your exact board; the builds differ per board (for example in wireless support on the W models).
- Tired of unplugging to press BOOTSEL? Use picotool with
-fon a running SDK program with USB stdio, or a Debug Probe to flash over SWD (see those items). - The ELF file is what a debugger loads; the UF2 is only for the USB bootloader.