Step 1: Using 1 Wire Connected to the RESET Pin
In this example, pin 13, connected to the internal LED pin 13 is blinking. Pin 12 gets connected to the RESET pin by one wire.
-Typically, this would be a problem because when the application starts up, all pins get pulled LOW. This would therefore disable Arduino from every running. BUT, the trick is: in setup() function, the FIRST thing that happens is we write HIGH to the pin 12, which is called our reset pin (digitalWrite(resetPin, HIGH), thereby pulling the Arduino RESET pin HIGH.
Step 2: Using Just Software
void(* resetFunc) (void) = 0;//declare reset function at address 0
resetFunc(); //call reset