OC
OceanRemote
Low-code IoT platform
Back to Troubleshooting Hub

Pico W Upload Failed

Your Raspberry Pi Pico W fails to upload firmware from Arduino IDE. The upload process gets stuck, times out, or fails with "No device found on Board". This guide covers BOOTSEL mode entry, UF2 file copying, USB cable issues, and Arduino IDE configuration.

Last updated: April 22, 2026 | 10 min read

Symptoms

  • Arduino IDE shows "No device found on Board" or "Board not detected"
  • Upload progress bar stuck at "Uploading..." indefinitely
  • Pico W not appearing as USB drive when in BOOTSEL mode
  • UF2 file copies but Pico W doesn't reboot automatically
  • Upload succeeds but firmware doesn't run
  • Arduino IDE shows "Timed out waiting for board to reboot"
  • Board detected but upload fails with CRC error

Common Causes

  1. Not in BOOTSEL Mode Pico W not in bootloader mode; holding BOOTSEL button incorrectly or too short
  2. Wrong Board Selected in Arduino IDE Selected "Raspberry Pi Pico" instead of "Raspberry Pi Pico W"
  3. Charge-Only USB Cable Cable lacks data lines, can't transfer UF2 file
  4. USB Port Issues Low-power USB port or driver conflict
  5. Corrupted UF2 File Incomplete firmware generation or file corruption during download
  6. EEPROM/Flash Corruption Previous upload corrupted the bootloader
  7. Arduino IDE Configuration Error Missing board support package or incorrect USB stack setting

Pico W Upload Methods Comparison

Method Pros Cons When to Use
Arduino IDE Simple, one-click, no drivers needed Requires manual BOOTSEL entry, slower for large files UF2\Arduino IDEArduino IDEUF2 Most users, beginners, standard uploads ()
Manual UF2 Drag & Drop Works even if Arduino IDE fails, no software needed Manual process, need to locate UF2 file When Arduino IDE auto-upload fails, or for troubleshooting
Picotool () Fast, scriptable, shows detailed output Requires driver installation, command line knowledge Advanced users, automated flashing, CI/CD

Step-by-Step Fixes

1. Enter BOOTSEL Mode Correctly

Most common fix proper button sequence:

  • Disconnect USB cable from Pico W
  • Press and HOLD the BOOTSEL button
  • While holding BOOTSEL, connect USB cable to computer
  • Keep holding BOOTSEL for 2-3 seconds after connecting
  • Release BOOTSEL button
  • Pico W should appear as RPI-RP2 drive in file explorer
  • If drive appears, BOOTSEL mode is working
// BOOTSEL mode visual check:
// - LED on Pico W should NOT be flashing 
// - RPI-RP2 drive appears 
// - If drive doesn't appear, repeat button sequence
// 
// Common mistakes:
//  Releasing BOOTSEL before USB connects
//  Pressing BOOTSEL after USB connected
//  Holding BOOTSEL for too short 
// 
//  Correct: Hold BOOTSEL  Connect USB  Hold 2-3 sec  Release

2. Select Correct Board in Arduino IDE

Critical distinction Pico vs Pico W:

  • Tools Board Raspberry Pi RP2040 Boards Raspberry Pi Pico W
  • NOT "Raspberry Pi Pico"
  • NOT "Raspberry Pi Pico W " unless using SDK
  • Verify board package version: Tools Board Boards Manager search "Raspberry Pi Pico" should be v4.0.0 or newer

3. Install/Update Pico W Board Package

Missing or outdated board support:

// Arduino IDE steps:
// 1. File  Preferences
// 2. Additional Boards Manager URLs: 
//    https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
// 3. Tools  Board  Boards Manager
// 4. Search "Raspberry Pi Pico"
// 5. Install "Raspberry Pi Pico/RP2040" by Earle F. Philhower
// 6. Version 4.0.0 or newer required for Pico W
// 7. Restart Arduino IDE after installation

4. Test USB Cable

Many USB cables are charge-only :

  • Test with known good data cable
  • Look for cables marked "data sync" or "data transfer"
  • Try different USB port on computer
  • Avoid USB hubs connect directly to computer
  • If RPI-RP2 drive appears but upload fails, cable may be intermittent
  • Short cables are more reliable than long cables

5. Manual UF2 Copy

If Arduino IDE auto-upload fails:

  • In Arduino IDE: Sketch Export Compiled Binary
  • This creates .uf2 file in sketch folder
  • Put Pico W in BOOTSEL mode
  • Drag and drop the .uf2 file onto RPI-RP2 drive
  • Pico W should reboot automatically
  • If not, press RESET button after copy
  • Open Serial Monitor to verify firmware running
// Manual UF2 copy steps:
// 1. Sketch  Export Compiled Binary
// 2. Locate .uf2 file 
// 3. Enter BOOTSEL mode 
// 4. Copy .uf2 file to RPI-RP2 drive
// 5. Wait for copy to complete 
// 6. Pico W automatically resets
// 
// If copy fails with "Device not ready":
// - Re-enter BOOTSEL mode
// - Try different USB cable
// - Try different USB port

6. Reset Pico W to Factory State

Corrupted flash may prevent uploads:

  • Download "flash_nuke.uf2" from Raspberry Pi website
  • Enter BOOTSEL mode
  • Copy flash_nuke.uf2 to RPI-RP2 drive
  • Pico W will erase entire flash memory
  • Re-enter BOOTSEL mode
  • Now upload normal firmware

7. Check USB Stack Configuration

Incorrect USB stack causes communication issues:

  • Tools USB Stack Select "Adafruit TinyUSB"
  • NOT "Pico SDK" unless using native SDK
  • Tools IP/Bluetooth Stack "IPv4 Only"
  • Tools Optimize "Small "
  • After changing settings, re-compile and upload

Recommended Arduino IDE Settings for Pico W

Setting Recommended Value Notes
BoardRaspberry Pi Pico WNOT "Raspberry Pi Pico"
USB StackAdafruit TinyUSBMost compatible for Serial node
IP/Bluetooth StackIPv4 OnlySaves memory, IPv6 not needed
OptimizeSmall Reduces firmware size
RTTIDisabledSaves memory
C++ ExceptionsDisabledSaves memory
Debug PortDisabledPrevents serial interference
Debug LevelNoneBetter performance
Flash Size2MB OceanRemote firmware fits

Prevention Tips

  • Always hold BOOTSEL button until RPI-RP2 drive appears
  • Use quality data USB cables
  • Keep Pico W board package updated in Arduino IDE
  • Select correct board before compiling
  • Use short USB cables for reliable uploads
  • If upload fails, try manual UF2 copy as fallback
  • Keep flash_nuke.uf2 handy for emergency recovery

Related Issues

Frequently Asked Questions

Q: Why doesn't my Pico W show up as RPI-RP2 drive?

A: You are not in BOOTSEL mode. Disconnect USB, hold BOOTSEL button, reconnect USB while holding, wait 2-3 seconds, then release. If still not appearing, try different USB cable .

Q: Can I upload firmware without Arduino IDE?

A: Yes. Use picotool command line or manually copy .uf2 file to RPI-RP2 drive. Arduino IDE automatically handles both methods.

Q: My Pico W uploads but nothing happens. No Serial output.

A: Check USB Stack setting in Tools USB Stack. Must be "Adafruit TinyUSB" for Serial to work. Also verify baud rate matches and correct port selected.

Still having upload issues? Contact Support or return to the Troubleshooting Hub.