- 10uF capacitor from reset to ground
Quote- 10uF capacitor from reset to groundThis is wrong. The 10uF from reset to ground is a thing done to prevent auto-reset from happening when you use an Arduino as an AVR programmer (using ArduinoISP sketch.) You shouldn't normally have it there.(I can't see how that would cause your problems, though.)
Are you using "upload using programmer" ? If not, and If your programmer somehow succeeded in being compatible with the Arduino bootloader, it could be getting commands that are incompatible with its functioning. Specifically, the bootloader erases one page at a time before writing, but a programmer HAS to do a full chip-erase before it starts (HW programmers CAN'T do page erases!) So when using the bootloader, Arduino gives avrdude the -D flag telling it NOT to do the chip erase; your symptoms could be explained by the programmer trying to overwrite the existing sketch without erasing the old one...
I am using an USBasp to do the programming.
QuoteI am using an USBasp to do the programming.Yes, but are you using the "upload" button/command, or the "upload using progammer" (SHIFT-upload button)?The bootloader uses the "stk500 protocol" over a serial connection. This is ALSO the protocol and communications channel used by some device programmers (in fact, it is originally a device programmer communications protocol.) So it's entirely possible that if you are using a USBASP programmer, that it would PARTIALLY work using the "upload" command, when you should be using the "shift-upload" command.Here's the avrdude command used for "upload" (via the bootloader.) avrdude -q -q -patmega328p -carduino -P/dev/cu.usbmodemfd3141 -b115200 -D -Uflash:w:Blink.cpp.hex:iAnd here's the avrdude command used for "upload using programmer" (with "programmer" set to AVRISP.)avrdude -q -q -patmega328p -cstk500v1 -P/dev/cu.usbmodemfd3141 -Uflash:w:/Blink.cpp.hex:i(Note that -carduino is approximately the same as -cstk500v1)