Using arduino to program another w/o removing chip

I have a Duemilanove that has a bad usb interface and I have one with a good interface. What I want to do, is connect the TX/RX pins from the first through a switch that will determine if it programs arduino 1 or 2. I was wondering where to make this connection at. Or if I can even do this. I know that I can connect the TX/RX pins and remove the microprocessor from the first arduino and program the second, but I don't want to have to do this all the time.

Any ideas?


Well you might try this. Wire a jumper from ground to the reset pin on your Arduino #1 and then wire jumpers for pins 0&1 from #1 to #2. The continuous reset on #1 should keep it from interfering with the uploading from the USB chip to your Arduino #2.
You will probably have to use the manual reset switch on your #2 when attempting to upload, as the automatic DTR reset will not be wired to your #2 without another jumper that is not available on the standard Arduino shield connectors. There is access to the DTR signal on a pad on #1 Arduino but you would have to solder some kind of connector so you could jumper this signal to the #2 Arduino's reset pin.

That make sense?

PS: You will also have to have a ground to ground jumper between the two Arduinos and figure out how you will supply power for Arduino #2, most likely with a +5vdc jumper between the two Arduinos. All in all it just seems simpler to swap out the AVR chip between the two units when you wish to upload a new sketch.


Sounds good. I have limited access to the arduinos once installed, so I am hoping to do this work around. I think it will work out. Could you point me to the DTR signal location on the first arduino. I have no problems soldering a jumper on.

Thanks again for your help,

There is a pad labeled RESET-EN that carries the automatic reset pulse that the Arduino IDE sends to reset the AVR chip before it uploads a new sketch.

If you wire a jumper from this pad through a new series .1mfd cap to the reset pin on your #2 Arduino that should do it. The pad is located just to the rear of the USB connector.