Fix Arduino-Pico upload “No drive to deploy.” (Raspberry Pi Pico)
The IDE couldn't find the Pico's RPI-RP2 drive. The first upload, or after MicroPython, needs BOOTSEL held; on Linux the drive must be auto-mounted.
Community draft — report a mistake
What you see
Sketch uses 56920 bytes (2%) of program storage space. Maximum is 2093056 bytes.
Global variables use 9996 bytes (3%) of dynamic memory, leaving 252148 bytes for local variables. Maximum is 262144 bytes.
Resetting COM7
Converting to uf2, output size: 141312, start address: 0x2000
Scanning for RP2040 devices
No drive to deploy.
Failed uploading: uploading error: exit status 1Sketch uses 56920 bytes (2%) of program storage space. Maximum is 2093056 bytes. Global variables use 9996 bytes (3%) of dynamic memory, leaving 252148 bytes for local variables. Maximum is 262144 bytes. Resetting COM7 Converting to uf2, output size: 141312, start address: 0x2000 Scanning for RP2040 devices No drive to deploy. Failed uploading: uploading error: exit status 1
Arduino-Pico uploads by rebooting the Pico into its BOOTSEL bootloader and copying a UF2 file onto the RPI-RP2 drive that appears. “No drive to deploy” means the uploader waited and no drive showed up.
That’s expected the first time, or after MicroPython, because there’s no Arduino firmware yet to accept the reset. Hold BOOTSEL once, and later uploads work on their own.
Quick fix — try in order
- 1
First upload: hold BOOTSEL while plugging in
Unplug, hold BOOTSEL, plug in, release. In Tools → Port choose the “UF2 Board” entry, then upload. After this first time, the IDE can reset the board itself.
- 2
Coming from MicroPython? Same thing
MicroPython's serial port doesn't answer Arduino's 1200-baud reset, so the Pico never reaches BOOTSEL. Hold BOOTSEL once for the first Arduino upload.
- 3
Don't disable USB in the sketch settings
Tools → USB Stack → “No USB” removes the serial port the IDE uses to reset the board. Keep “Pico SDK” unless you really need otherwise.
- 4
Linux: make sure RPI-RP2 is mounted
The uploader looks for a mounted drive. On desktop Linux it auto-mounts under /media/<you>/RPI-RP2; on minimal or headless systems mount it yourself, or install udisks2.
- 5
Try another cable or port
If “Scanning” takes the full 10 seconds and the drive never shows in File Explorer, see RPI-RP2 drive not showing.
Why it happens
What does the uploader do?
It opens the Pico's serial port at 1200 baud (“Resetting COM7”), which tells Arduino-Pico firmware to reboot into BOOTSEL. It then waits up to 10 seconds for an RPI-RP2 drive and copies the UF2 onto it. “No drive to deploy” means the drive never appeared.
Crashed sketch
If your previous sketch hard-faulted, its USB serial port is gone and the reset can't be sent. Hold BOOTSEL while plugging in to recover.
Board-specific notes
Pico 2 / Pico 2 W: The drive is called RP2350; the uploader handles it with current Arduino-Pico versions. Update the core if it only looks for RPI-RP2.
Pico W: See the Pico W page for board selection (Raspberry Pi Pico W, not Pico).
Did this fix it?
Thanks — that helps us keep this page right.