I’m using an Arduino UNO as the ISP. I’ve checked connections a dozen times all with the same result. I’ve attached the schematic. If anyone can help, please do. I’m pretty much at my wits end with this SMD crap.
Is it possible you have an ATmega328 instead of an ATmega328p? The non-p version has a different signature so avrdude rejects it. If you do a search there are several postings on work-arounds.
First thing, it’s hard to tell where your nets are going. They’re not labeled. A significant clean-up is needed so people can actually follow your schematic.
But, is your LCD powered when you are trying to program the '328? If so, it might be interfering with your MOSI and MISO lines. Is this on a custom PCB or breadboarded? If it’s breadboarded, you can try to put some resistors on the programming lines to the LCD. Try 100R to begin and raise the value until it works.
Yeah I realize the schematic isn’t clear. The LCD is removed for programming via ICSP header. The schematic is correct. All nets are going to their respective pins (MISO, MOSI, SCK, etc).
I did figure it out tho. The problem is with the reset. I shared the reset pullup and inline cap. Turns out this doesn’t work with the ICSP header using an Arduino as ISP. To test this theory I soldered a piece of wire to the trace between the MCU reset pin and the pullup resistor effectively bypassing the cap. I removed the reset wire from the header plug and soldered it to the wire I put on the trace. Bing-bam-boom it worked the first time. So there must be a difference in the way the FTDI DTR handles reset as compared to ICSP. Lesson learned.
This is a custom board that I etched. It still a prototype and certainly needs some refinement.