The symptoms are all in the thread. The solution was painfully simple (thanks Nick Gammon!!), adding 1k pullup resistors to the TX and RX pins of the Atmega328 did the trick. I've seen a ton of posts with not in sync errors all over the internet, but not many solutions other than the usual "check the right COM port, correct board etc". I haven't seen anybody recommend what I had done, or what Nick suggested, so hopefully this will help someone in the future.
That said, I still have no clue why the pull-up resistors solved the problem. There are no breadboard Arduino guies that I can find that suggest including those. If anyone wants to try and explain that, I would love to know why that is the case.
Thanks again to everyone who helped!
At this point, I don't really need help so much as I need an answer to put this thing to bed once and for all.
I was trying to program an atmega328p (with UNO bootloader) on a breadboard using an FTDI chip. I kept getting this error:
avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51
After some experimenting, I was able to get the FTDI chip to upload to the Atmega328 correctly by putting the Atmega328 into my R2 Arduino UNO, and connecting Vin, GND, RX and TX to the respective pins on the FTDI board and reset the Atmega328 chip manually during uploading. An image of this setup is below (excuse the poor drawing):
After a little MORE experimentation, I came across another configuration that worked, shown below (again, please excuse the drawing). This time, I used the DTR pin. In the diagram, you can assume all components are present on the breadboard (yes, including the pullup resistor to pin 1!). THE ONLY CONNECTION TO MY COMPUTER IS THROUGH THE FTDI BOARD, SO THE BREADBOARD, AND EMPTY ARDUINO ARE BEING POWERED BY THE FTDI:
However, if I try to upload the sketch WITHOUT having that connection to the TX and RX pins on the UNO board, it does not upload. This leads me to believe that the Atmega8u2 on the UNO board is somehow facilitating the upload. It makes no sense to me but maybe someone here will be able to tell me what's happening.
At this point I don't even care about my project, I literally just want to know why!!! I've checked the UNO R2 schematic and that has not yielded any answers for me. If anyone has any idea please please please tell me because I'm pulling my hair out here trying to figure out what's gone wrong!!!