Programming One Uno Using Another Uno as an FTDI

Good Day

Recently my serial communication on my Arduino Uno stopped working. I tried resetting the Firmware with FLIP, however, FLIP does not pick it up via USB. I therefore speculated that there must be a hardware issue, but this is a topic for another day. Seeing as my Uno is now unprogrammable via USB, I seeked other ways of programming it. One method is via a dedicated FTDI cable, another method would be to use another Uno as an FTDI cable. The busted Arduino carries on with the program which was on it before the serial coms failed. Other than the serial coms, it seems to be working fine.

So I managed to build a Breadboard version of the UNO using the Atmega328P from my busted Uno, I used the instructions on this link:

Just as in the above instructions I managed to program the Breadboard Uno using an FTDI cable. I also manged to use a working Uno as an FTDI to program the Breadboard Uno successfully, instructions on how to do this can be found here:

Now that both techniques of programming the Atmega328p have been verified, I tried to programming the Atmega328p while it was on the UNO. I connected the pins from the FTDI to the Uno headers (of the fully fucntional UNO) which correspond to the same pins as used with the Breadboard UNO. Obviously since the UNO has all the required circuitry for the Atmega I did not connect them. However, I did connect to Rst to reset using the same method as with the Breadboard Uno (i.e. with a pull up resistor and a capacitor). This refuses to work though.

I tried all things to get it working such as: swapping the RX and TX connections around, connecting Rts from the FTDI directly to Reset instead of via a capacitor, and in an attempt to identify the problem pin I even held the pins one by one directly to the relevant pins on the Atmega while it was plugged into the the UNO. None of this worked and I still can't manage to program the Atmega328p with an FTDI while it is on the UNO. The Arduino IDE gives this error message:
"avrdude: stk500_getsync(): not in sync: resp=0x00"

Why is it that I cannot manage to program the Uno via an FTDI? Is it something to do with the UNO circuitry? Do I require additional components?

I have used the instructions on this page without any problems.


Thanks Robin2
Have you used those instructions to program a microcontroller on a breadboard just as it is there? Or have you used it to program a fully assembled Arduino? I'm only having trouble programming the Atmega while it is on the Arduino. On a breadboard it works fine.

Sorry, I didn't understand. My 328 was on a breadboard.

Can't you program it on a breadboard and then put it back into the Uno?


Yes that works 100% fine.
My question, however, is: Why doesn't it work when in the Arduino?
Although I can get it working without knowing the answer to this question, I would like to know the answer in order to understand the Arduino better. I will have I look at the schematics and if I figure anything out I will upload the answer.


Perhaps its something to do with the reset circuit on the Arduino board?