Raspberry Pi Pico not detected: BOOTSEL mode and the RPI-RP2 drive

Hold the BOOTSEL button while you plug the Pico in, and a drive named RPI-RP2 should appear. Drag a UF2 file onto it to flash.

What the message means

The Pico has a boot ROM that acts as a USB drive. Normal programs use a different USB mode, so the computer may show a serial port or nothing.

Fix it in this order

  1. Unplug the board, hold the BOOTSEL button, plug it in, then release the button.
  2. Look for the RPI-RP2 drive in your file manager.
  3. Copy a UF2 file onto that drive. The board restarts by itself.
  4. Use a cable that carries data. Charge-only cables are common.
  5. Try another USB port without a hub.
  6. If the drive never appears, test with another cable before suspecting the board.

Why it happens

A new or unresponsive Pico appears to the computer as a drive named RPI-RP2 only when it starts in boot mode. To enter it, hold the BOOTSEL button while plugging in the USB cable, then release it.

If nothing appears, try another cable, because some are power-only, and another USB port. Copy the .uf2 file to the drive; the board restarts by itself.

If you see this, do this

You seeDo this
No drive appearsCable or BOOTSEL timing.
Drive appears, program does not runWrong UF2 for your board type.

USB cable and driver, Thonny connection.

Last reviewed: November 2026. These are the usual causes and the order that finds them fastest. Test on your own board; clones and cables differ.

Why this happens

The RP2040 chip has a small program in its internal ROM that can present the board as a USB drive. The program flash is a separate chip. When you hold BOOTSEL while power is applied, the ROM starts and shows the drive. In normal running, your program or MicroPython starts instead and the board appears as a serial port, or as nothing if the program did not set up USB.

The UF2 format splits the firmware into 512-byte blocks that each carry the address where they belong. The ROM writes each block to flash and restarts when the file is complete. A Pico 2 uses a different chip; its drive is named RP2350 and needs firmware built for that chip.

How to confirm the cause

  • On Linux, run lsusb while holding BOOTSEL and plugging in. A device with vendor ID 2e8a and product ID 0003 is the boot ROM. A running MicroPython board typically shows 2e8a:0005.
  • Open the drive and look for INFO_UF2.TXT and INDEX.HTM. Open INFO_UF2.TXT to see the board identifier.
  • Try a different cable. A power-only cable gives the board power with no data lines.
  • Try a different port, preferably one on the computer itself and not on a hub.
  • If nothing at all happens, check the board for a lit power LED.

Worked example

The steps in order, with what each one should show.

1. Unplug the USB cable.
2. Hold BOOTSEL.
3. Plug the cable in while holding the button, then release it after a second.
4. A drive named RPI-RP2 appears (RP2350 on a Pico 2).
5. Open INFO_UF2.TXT: it shows the board identifier.
6. Copy the .uf2 file onto the drive.
7. The drive disappears and the board restarts: the copy worked.

Common mistakes

  • Pressing BOOTSEL after the board is already powered, which does nothing.
  • Copying a .bin or .elf file instead of .uf2.
  • Using a UF2 built for another board.
  • Unplugging during the copy.
  • Blaming the board before trying a second cable.

If this did not fix it

  • On Linux the drive may appear but not mount by itself. Mount it from the file manager or the command line.
  • The program is running but the editor cannot talk to it. Check the interpreter or port selected in the editor.
  • A damaged USB socket on the board, shown by a cable that works on other devices but not here.