I have 4 Arduino Unos, 3 have ATMEGA328 DIP type chips, one has a surface mount (I believe it's called a QFP package). I have successfully uploaded sketches to all 4 Uno's in the past but suddenly the 3 DIP-type Uno's are returning "No such file or directory" error. The surface mount type Uno is still working without any problems.
I am bewildered! Any suggestions?
Hi @DocPin. I'm going to ask you to provide the full verbose output from an upload attempt.
This procedure is not intended to solve the problem. The purpose is to gather more information.
Please do this:
- Select File > Preferences... (or Arduino IDE > Settings... for macOS users) from the Arduino IDE menus.
The "Preferences" dialog will open.
- Check the box next to Show verbose output during: ☐ compile in the "Preferences" dialog.
- Check the box next to Show verbose output during: ☐ upload.
- Click the "OK" button.
The "Preferences" dialog will close.
- Attempt an upload, as you did before.
- Wait for the upload to fail.
- You will see an "Upload error: ..." notification at the bottom right corner of the Arduino IDE window. Click the "COPY ERROR MESSAGES" button on that notification.
- Open a forum reply here by clicking the "Reply" button.
- Click the
<CODE/>
icon on the post composer toolbar.
This will add the forum's code block markup (```
) to your reply to make sure the error messages are correctly formatted.
- Press the Ctrl+V keyboard shortcut (Command+V for macOS users).
This will paste the error output from the upload into the code block.
- Move the cursor outside of the code block markup before you add any additional text to your reply.
- Click the "Reply" button to post the output.
In case the output is longer than the forum software will allow to be added to a post, you can instead save it to a .txt
file and then attach that file to a reply here.
Click here for attachment instructions
- Open any text editor program.
- Paste the copied output into the text editor.
- Save the file in
.txt
format.
- Open a forum reply here by clicking the "Reply" button.
- Click the "Upload" icon (
) on the post composer toolbar:
The "Open" dialog will open.
- Select the
.txt
file you saved from the "Open" dialog.
- Click the "Open" button.
The dialog will close.
- Click the "Reply" button to publish the post.
Alternatively, instead of using the "Upload" icon on the post composer toolbar as described in steps (5) - (7) above, you can simply drag and drop the .txt
file onto the post composer field to attach it.
Sketch uses 1276 bytes (3%) of program storage space. Maximum is 32256 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 2039 bytes for local variables. Maximum is 2048 bytes.
"/Users/graham/Library/Arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/bin/avrdude" "-C/Users/graham/Library/Arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf" -v -V -patmega328p -carduino "-P/dev/cu.usbmodem2101" -b115200 -D "-Uflash:w:/Users/graham/Library/Caches/arduino/sketches/63AF229B325C8DDF2B90E866D7A2EF9B/_4_LED_test_sketch.ino.hex:i"
avrdude: Version 6.3-20190619
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "/Users/graham/Library/Arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf"
User configuration file is "/Users/graham/.avrduderc"
User configuration file does not exist or is not a regular file, skipping
Using Port : /dev/cu.usbmodem2101
Using Programmer : arduino
Overriding Baud Rate : 115200
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00
avrdude done. Thank you.
Failed uploading: uploading error: exit status 1
Please try this experiment and then report back with the results:
This procedure is not intended to solve the problem. The purpose is to gather more information.
- Connect the Arduino board for which uploads are failing to your computer with a USB cable.
- Press and release the button on the Arduino board that is marked "RESET".
Now please reply here on the forum topic with the answer to the following question:
- Did you see the "L" LED blink multiple times quickly immediately after you released the "RESET" button?
I did try resetting previously with no effect, but since you asked the question about the "L-LED" I have noticed something. On the board with the surface mount ATMEGA328 (which uploads successfully) the L-LED does indeed blink several times. On the board with the DIP chip (which is generating the error) the LED does not blink.
This result tells us that one of the following two things is happening:
- The microcontroller on the board is not running.
- The bootloader (a program stored in a special area of memory in the microcontroller that handles sketch uploads) was somehow erased or corrupted.
It is possible for a short or external circuitry connected to the Arduino board to prevent the primary microcontroller from running.
Make sure the board is not sitting on anything conductive that could short the contacts on the bottom of the board. Make sure there isn't any conductive debris (e.g., strands of wire or component leads) on the board or on the surface the board is sitting on.
If you have a shield or any external circuitry or components connected to your Arduino board, try this experiment:
- Disconnect the USB cable of the Arduino board from your computer.
- Disconnect any shields, modules, external circuitry, etc. from your board.
- Connect the Arduino board to your computer with a USB cable.
Now try uploading a sketch to the board again. Does the upload succeed?
This experiment will determine whether the upload error was caused by a problem in the external circuitry. If so, you can then focus your attention on identifying the specific problem with the circuit and resolving it.
All three boards with the DIP chip are resting on a silicon non-conductive surface and are clean. No shields are connected. I have also tried several sketches (no libraries required) all with the same results).
The possibility that the boot loader has been erased occurred to me, but to happen on 3 different UNO's seems a stretch. Nevertheless reinstalling the bootloader is worth a try. I Understand it can be done via the Arduino IDE but I have never done this. If you think it's worth a go, could you point me in the right direction please.
I also really appreciate your help on this.
Here you go:
Prepare ISP programmer
You will need an ISP programmer. If you don't have a programmer, you can use a spare Arduino board as an "Arduino as ISP" programmer.
Arduino as ISP
The following instructions are for using an Arduino board as an "Arduino as ISP" programmer. If you have a dedicated programmer, you can skip to the next set of instructions.
Although the "Arduino as ISP" only works for programming targets of the AVR architecture, you can also use boards of a variety of architectures (e.g., "AVR", "SAMD", "megaAVR") as an "Arduino as ISP" programmer.
ⓘ In the instructions below, the board used as an "Arduino as ISP" is referred to as the "programmer board". The board the bootloader is being burned on is referred to as the "target board".
-
Disconnect the USB cable of the Arduino boards from your computer.
-
Make the following connections between the "programmer board" and the "target board".
Programmer |
Target |
CIPO (AKA "MISO") |
CIPO |
VCC |
5V (VCC on 3.3 V boards) |
SCK |
SCK |
COPI (AKA "MOSI") |
COPI |
10 |
RESET |
GND |
GND |
ⓘ The documentation for the boards you are using will identify the location of these pins. If you are using an official Arduino board, check the pinout diagram on the documentation page for the board.
-
Connect the "programmer board" to your computer with a USB cable.
-
Select File > Examples > 11.ArduinoISP > ArduinoISP from the Arduino IDE menus.
The "ArduinoISP" sketch will open in Arduino IDE.
-
Select your "programmer board" from Arduino IDE's Tools > Board menu.
-
Select the port of your "programmer board" from Arduino IDE's Tools > Port menu.
-
Select Sketch > Upload from the Arduino IDE menus.
-
Wait for the upload to finish.
You are now ready to burn the bootloader using your "Arduino as ISP" programmer.
Burn Bootloader
Instructions for burning the bootloader:
- Connect an ISP programmer to your Arduino board.
ⓘ If you are using an "Arduino as ISP", then you have already connected it according to the previous instructions.
- Select the target board from the Tools > Board menu and any other custom Tools menus (e.g., Tools > Processor).
- Select the appropriate programmer from the Tools > Programmer menu.
- Tools > Burn Bootloader
- Wait for the process to finish successfully.
- Disconnect the USB cable of the programmer from your computer.
- Disconnect the programmer from the "target board".
Now connect the "target board" to your computer with a USB cable, select its port from the Tools > Port menu, and try uploading a sketch as usual.
Thanks for your help but something very odd is going on and I need to put this aside and have a think. I have been using the Arduino IDE on a MacBook Pro but I also have a Windows laptop. When I try to upload the sketches from the Windows laptop, lo and behold the uploads are successful. On the Mac however, only the board with the surface mount ATMEGA328 uploads successfully. I also tried a MEGA2560 and again, the error on the Mac and successful with Windows. (Same USB cable by the way).
I have a way of proceeding (Windows) and so I'm going to leave this for now.
Once again huge thanks for your time and assistance - much appreciated.
You are welcome. I'm glad you found a way to successfully upload to those boards. Thanks for taking the time to post an update with your findings!
Regards, Per
I seem to have been succesfully programming my atTiny85 chips with a Uno as ISP...?
The ATtiny85 microcontroller is AVR.
Thanks for correcting me on that. I've been assuming Tiny boards are not AVR because they're not in the 'Arduino AVR Boards' list.
But I now assume that's because they are not ARDUINO - not because they are not AVR.
And I've been assuming that everything in the Arduino IDE is 'Arduino'.

The "Arduino AVR Boards" platform adds support to Arduino IDE for the boards manufactured by the Arduino company which happen to have a microcontroller of the AVR architecture.
The "ATTinyCore" boards platform adds support to Arduino IDE for the classic tinyAVR family of microcontrollers. This family of microcontrollers are also of the AVR architecture.