Overview
Getting an upload error in Arduino IDE when trying to upload to your Arduino Uno? The most common cause is having the wrong board or processor selected in the IDE settings.
This quick fix takes just seconds and resolves most Arduino Uno upload errors.
Select correct board and processor
Verify your board selection in Arduino IDE:
- Go to the Tools menu in the Arduino IDE toolbar
- Click Tools → Board
- Make sure you have selected "Arduino Uno" from the board list
- Go to Tools → Processor (if available)
- Select the correct processor for your board (typically ATmega328P for Arduino Uno)
Make sure you select the Arduino board that matches the physical board you're using. If you have an Arduino Mega, Nano, or another model, select that specific board instead.
Select correct port
After selecting the correct board, verify the port:
- Go to Tools → Port
- Select the port where your Arduino is connected
- On Windows: It will show as COM3, COM4, etc.
- On macOS: It will show as /dev/cu.usbmodem... or /dev/cu.usbserial...
- On Linux: It will show as /dev/ttyACM0, /dev/ttyUSB0, etc.
If you don't see any ports listed, your computer may not be detecting the Arduino. Try unplugging and replugging the USB cable.
Other common upload issues
If selecting the correct board and port doesn't fix the error:
- Check the USB cable: Not all USB cables support data transfer - some are power-only. Try a different cable
- Close other programs: Some programs (like serial monitors) can lock the port. Close them and try again
- Restart Arduino IDE: Sometimes the IDE needs a fresh start
- Check for code errors: Click the Verify button (✓) first to check for compilation errors before uploading
- Install drivers (Windows): Some Arduino clones require CH340 drivers - download from Arduino driver installation guide
Further help
Related guides:
- How to upload a sketch with Arduino IDE 2.0
- Cannot upload to Arduino Nano (similar troubleshooting steps)
Still having problems?
Read the full error message in Arduino IDE - it often tells you exactly what's wrong. Common error messages:
avrdude: stk500_recv(): programmer is not responding— Wrong board or port selected, or bad cableavrdude: ser_open(): can't open device— Port is in use by another program, or wrong port selected