The truth is always in the datasheets, the schematics and the code:

The Arduino UNO actually uses the `/DTR` line to trigger a reset, as you can see on the following datasheet:

![reset schematic](

So basically, when the firmware of the Atmega8u2 (on the left) is [pulling the pin 13 low](, a reset is triggered for the Atmega328 on the right.

[Another design]( was achieving the same thing using the `DTR` and `RTS` lines of the FTDI component (left) to trigger a reset on the Atmega328 (left).

To avoid this behavior, a 10μF capacitor between Reset and Ground is enough, but you can also cut the RESET-EN trace to prevent the auto reset permanently.

On the software side, as @sachleen says in his answer, you can control the reset behavior using whether you trigger or not the DTR line.

That thing does *not* happen with the Arduino [leonardo]( and [Micro](, with the firmware [Caterina]( does act on the `DTR` line, but on whether you open a connection at 1200bps. That's because both arduinos have an AVR microcontroller that can directly "talk" on USB. There's actually a topic about [how to trigger a reset](