// Arduino Duemilanove 168/324 only #include int resetPin = 9; //Hook a wire: digital(9)----> RESET of another Arduino int resetLedPin = 13; Button button = Button(12,PULLUP); //create a Button object at pin 12 /* || Wiring: || GND ----- + [Button] - ------ pin 12 */ void setup() { pinMode(resetLedPin, OUTPUT); // sets the digital pin as output pinMode(resetPin, OUTPUT); // sets the digital pin as output } void loop() { if(button.isPressed()) { resetArduino(); } // delay for 30 minutes //delay(1800000); } void resetArduino() { // code from arduino/pachube/watch dog timer tutorial on Pachube.com delay(1000); // we have to maually reset the shield before using it digitalWrite(resetPin,LOW); // put reset pin to low ==> reset the ethernet shield digitalWrite(resetLedPin,HIGH); delay(600); digitalWrite(resetPin,HIGH); // set it back to high delay(2000); digitalWrite(resetLedPin,LOW); }