Uploading With Rx Pin Connected

Many of my projects require use of the Rx pins on my Arduino, and when I fix the code and reupload, I have to disconnect that the Rx pin or I get an " avrdude: stk500_getsync(): not in sync: resp=0xe0 " message. I connected a switch to the Rx wire so I can just disconnect using that when I upload, but I was wondering if anyone knows if it is possible to upload a program while the Rx pin is connected.

It depends on how you are using the rx pin. If your using it as an output pin driving some external circuitry then you may not have to disconnect it to upload as upon reset it will be set as an input pin and would work with the USB serial converter chip. However if you are using it as an input pin and some external circuitry is suppling a voltage to the pin then there will be an electrical conflict and you most likely will have to disconnect it for a upload to work.
So can you share the external circuitry you have wired to the rx pin?

I don't believe there is any electrical conflict between the boards because when I am uploading the program onto one board, the other is not being powered. Here is my configuration:

Unpowered devices are still a load.

You're right, load is still there. Are there any suggestions or ways to program a board even with a load applied to the Rx pin?

I have found that it sometimes works, and sometimes doesn't. It obviously depends on the device and the
sort of load it places on the Rx circuit in competition with the USB connection.

If it is giving you problems, then you will have to disconnect it. Or get an Arduino with more than
one serial port.

A few comments ...

I know that at the development stage it's a pain having to disconnect and reconnect. But once the project is complete you won't ever? have to do it again. Maybe the simplest solution is to live with it.

Perhaps you could swap the usage of your pins so that the Rx pin is used for a different purpose that doesn't cause a conflict? You will have to consider carefully why it is causing a conflict by studying the Atmega CPU documentation.

You could add a buffer chip (such as a 4016 - I'm not sure is an And gate would work) between Rx and the thing it's connected to. Then you could switch off the connection with logic rather than a mechanical switch.


You can do like some shields do, and include a switch that connects/disconnects the two boards. When disconnected, you can upload sketches to either one.

Thank you for all the replies. I also found another way around the problem. I used an Arduino Uno, connected pins 13-10, Ground, and 5V to the ISP pins of the Nano. Instead of simply using "Upload," I would "Upload with Programmer," and the program uploaded even with the Rx connected. The link to where I found this information can be found here: Let's Make Robots - RobotShop Community.
Thanks again for everyone's help, and maybe this is an issue I just need to live with, as Robin2 suggested.