Preview build — page text is a draft awaiting human review. Code badges come from real compiles. The flasher is real but not yet hardware-tested; the Playground is still a preview.
Upload error · picotool

Fix picotool “No accessible RP2040 devices in BOOTSEL mode were found.”

picotool needs the Pico in BOOTSEL mode. Hold BOOTSEL while plugging in, or let picotool reboot it with -f — and check the cable and udev rules on Linux.

Raspberry Pi PicoRaspberry Pi Pico WPico 2 (RP2350)RP2040-ZeroUpdated 3 Nov 2026

Community draft — report a mistake

What you see

OutputOutput
$ picotool load -x blink.uf2
No accessible RP2040 devices in BOOTSEL mode were found.

but:

RP2040 device at bus 1, address 12 appears to be a RP2040 device with a USB serial connection, not in BOOTSEL mode. You can force reboot into BOOTSEL mode via 'picotool reboot -f -u' first.

picotool talks to the RP2040’s ROM bootloader over USB, and that bootloader only runs in BOOTSEL mode. This message means picotool found no board in that mode. Often, as the “but:” section shows, it found one running normal firmware instead.

Hold BOOTSEL while plugging in, or let picotool force the reboot with -f, and the load goes through.

Quick fix — try in order

  1. 1

    Put the Pico in BOOTSEL mode

    Unplug, hold the BOOTSEL button, plug in, release. The RPI-RP2 drive appears (RP2350 on Pico 2) and picotool can now see it.

  2. 2

    Or let picotool reboot it

    If the “but:” line says the board has a USB serial connection, run picotool reboot -f -u, then load again — or add -f to the load command: picotool load -f -x blink.uf2.

  3. 3

    Linux: install the udev rules

    Without them only root can access the device. Copy 60-picotool.rules (from the picotool repository) to /etc/udev/rules.d/, run sudo udevadm control --reload and replug.

  4. 4

    Windows: check the driver

    If the drive appears but picotool still can't connect, the bootloader's second USB interface needs a WinUSB driver — see picotool unable to connect (Zadig).

  5. 5

    Use a data cable

    If the RPI-RP2 drive never appears at all, see RPI-RP2 drive not showing.

Why it happens

Why can't picotool reset the Pico by itself?

It can — but only if the running firmware exposes the standard “reset to BOOTSEL” USB interface (Pico SDK stdio_usb and Arduino-Pico do; MicroPython and custom firmware may not). Otherwise you press BOOTSEL by hand.

MicroPython is running

MicroPython shows a serial port, not BOOTSEL. picotool's -f option may not work with it; use the button.

Board-specific notes

RP2040-Zero / Tiny boards: The BOOT button is the one nearer the USB-C socket on Waveshare RP2040-Zero. Hold it, tap RESET, release BOOT.

Pico 2: Use picotool 2.x — older picotool versions don't know the RP2350.

↑↓ to move · Enter to open