How do I reset an ATmega168/328 in software?
The ATmega168/328 lacks a software reset instruction. Using the watchdog
timer a program can reset the microcontroller by not toggling the
watchdog flag. If you are using the Arduino bootloader this may require
a modification to the bootloader.
Alternatively software can trigger a hardware reset by triggering
a one-shot that is connected to the reset pin.
For more details about software reset see
ZB1 Software Reset