Breadboard ATMega328 FTDI Help

*Update - Bit of a long read but turns out all that was missing was a pull up resistor on the reset pin (thanks to CrossRoads for pointing it out)

well I have exhausted my google searching and now desperately need some guidance.

I have made a "breadboard" arduino, using an ATmega328 with the preinstalled bootloader, uploaded my sketch using a FTDI chip and everything worked a treat. however now I'm having issues uploaded sketches using FTDI.

it keeps coming up with the error:

Sketch uses 1,186 bytes (3%) of program storage space. Maximum is 32,256 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 2,039 bytes for local variables. Maximum is 2,048 bytes.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x73
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x73
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x73
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x73
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x73
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x73
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x73
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x73
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x73
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x73
Problem uploading to board.  See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.

and instead of the lightning fast flashed of the Tx/Rx lights on the chip I just get 3 flashes

now this first happened when I tried to hook up and LCD to display serial commands, so rather stupidly I assumed it was the LCD I hooked up and spent hours taking bits apart, reconnecting and trying again with the same outcome. because the upload worked the first time that I tried it with the blink sketch I didn't think I had an issue with the hardware. but after copious amounts of googling I started to think there may be an error with the FTDI chip, yet as far as I can see that is working fine.

I have done a loop test and all is ok. I have also double and triple checked the connections to ensure everything is connected right.

I have tried old FTDI drivers, and the most recent ones but always the same result.

I have also tried old arduino IDE's and the most recent one but yet again the same result.

I am making sure I am checking the com ports and always using the right one when I try.

I have tried changing the assigned com port

I am also ensuring the correct board "Uno" is selected. out of frustration I have tried some other boards too

There is a cap between the DTR and reset pins

I have tried changing the baud rate in device manager to "115200" I read this somewhere

I have also tried with a identical FTDI chip (generic red with FTDI232 printed on the back, and an adafruit cable with the same results)

I have tried with another ATMega328

If I enable Verbose upload this is the response:

Sketch uses 1,186 bytes (3%) of program storage space. Maximum is 32,256 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 2,039 bytes for local variables. Maximum is 2,048 bytes.
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -carduino -PCOM5 -b115200 -D -Uflash:w:C:\Users\gary\AppData\Local\Temp\build0bece372e97d7941b22ec0961b1b91fa.tmp/Blink_quick.ino.hex:i 

avrdude: Version 6.0.1, compiled on Apr 15 2015 at 19:59:58
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"

         Using Port                    : COM5
         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=0x0e
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x0e
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x0e
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x0e
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x0e
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x0e
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x0e
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x0e
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x0e
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x0e

avrdude done.  Thank you.

Problem uploading to board.  See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.

now here's the kicker...every now and again when the planets align my those magical lights on the FTDI chip will flash with all their might and the sketch will upload! But this is very rare. I can't seem to find a reason for it to randomly work either. It happens when I don't touch anything except leave every thing plugged in from a failed attempt and just press upload again 10 minutes later. this is leading me down to a software issue and hopefully not anything wrong with the wiring. my gut is starting to make me think there is something wrong with avrdude.exe, but I'm not entirely sure why and I'm now out of any ideas, would love to hear from someone a little bit better at this stuff than me (I am a novice learning as he goes)

and finally a picture of my little setup

(deleted)

completely agree about the wiring...but I have rewired this thing about a hundred times to be safe, also checked various connections with a multimeter to check for continuity just in case the breadboard was having me over. so on this occasion I think I can rule the wiring out (but I will strip it down and build it back up with a completely new set of components when I finished work just to be 110% sure :stuck_out_tongue:

No decoupling caps on Vcc/AVCC.
No 10K pullup resistor on Reset.
Both will lead to issues such as you see.

dude, I want to kiss you right now. Just put the pull up resistor in and it appears to work first time every time now!!! I never thought about including it as for some reason I thought the cap with the FTDI sort of took care of that for me (steeeep learning curve! will do more research onto how it actually works to understand it better!) I had used this gentlemans video as my initial guide to building it so hadn't even thought about a pull up resistor! 1-Day Project: Build Your Own Arduino Uno for $5 - YouTube

so I have not interrupted the original wiring but added the resistor extra on the reset strip and connected it to my 5v FTDI line. would that be the correct way? and am I right in assuming that the reset pin is expecting to see 5 volts going in and if I wished to do a manual reset of the board I just disconnect the resistor? (well ideally put a switch in to sever the connection) which would drop the 5V to 0?

as for decoupling caps, I am currently trying to get my head around how to use them (hasn't sunk in yet though I'm afraid) I'm guessing they are needed to smooth the ripples going into the ATmega. but how do I figure out what values to use?

on a side note...thank you thank you thank you!!!!