Reset line behaviour on different arduino models

I am developping an arduino shield that uses the uart lines (pin0/1) to communicate for the arduino.
The small problem with that is that i can’t upload a sketch to the arduino when the shield is on it, because uart lines are shared with usb (for arduino models with only one uart).

One solution, at least for avr boards, would be to disable the shield communication ( set RX to high z and ignore TX) when the reset line is active (low).
My question is : is this approach correct for all arduino models?
Do all arduino have an active low reset line, and do they all keep the line active during sketch upload?


Yes, all 328P/1284P/2560 type Arduinos (the 8-bit uCs) have an active low reset line.

For serial downloads the reset line is pulsed to kickoff the bootloader (when a bootloader is installed).

When there is no bootloader and the code is loaded using a Programmer via the ICSP header, reset is held low by the Programmer the entire transfer time.

A better solution is to have a Slave Select option on the shield with a pullup resister. Then when the uC is in reset, the pin is pulled high, and when the sketch starts up it can pull the pin low to enable the shield.

Hmm, indeed this is not a good idea, since with the bootloader the reset line will not be held active during the sketch upload. A slave select line is a better idea, i will consider that, thanks.