user26717: Is there a way to cause a periodic reset of an Arduino Nano under program control, short of some kind of external relay that signals the RST pin?   
I'd like to do a full reset triggered by a digital write.
When the power is applied to the Nano it automatically pulls all the digital output pins to LOW so it appears that simply connecting a wire from a digital output to the RST pin would cause the system to continually reset and never run the program.  This would apply equally to using the DS3231 RTC chip's alarm function.  It would require the program to run in order to use it.
I suppose a relay would do the trick.  Or maybe even just an inverter chip like the 7404 between a digital output and the RST pin.  I am trying to fit this all in a small box so more hardware gets to be a problem.
So the question:  Is there any way to do this without external hardware?

user10394: Why do you want to reset you board?  The reason affects the answer.
Do you want to reset the board because your program crashes after n hours?  If so its probably better to fix the memory leak that you have in the code.
Is it because some global variables need to resetting every now and again?  If so could you place them in a class and store a pointer to them as your only global.  When you want to 'reset' the board delete the instance of the class and recreate it.
What happens if the software crashes?  Have you got it configured to restart on a crash?  If so could you just crash the code deliberately?
Because you have size constraints then it may be worth a bit of lateral thinking to see what the code can do for you.

26717: <p>Is there a way to cause a periodic reset of an Arduino Nano under program control, short of some kind of external relay that signals the RST pin?   </p>

<p>I'd like to do a full reset triggered by a digital write.</p>

<p>When the power is applied to the Nano it automatically pulls all the digital output pins to LOW so it appears that simply connecting a wire from a digital output to the RST pin would cause the system to continually reset and never run the program.  This would apply equally to using the DS3231 RTC chip's alarm function.  It would require the program to run in order to use it.</p>

<p>I suppose a relay would do the trick.  Or maybe even just an inverter chip like the 7404 between a digital output and the RST pin.  I am trying to fit this all in a small box so more hardware gets to be a problem.</p>

<p>So the question:  Is there any way to do this without external hardware?</p>
 10394: <p>Why do you want to reset you board?  The reason affects the answer.</p>

<p>Do you want to reset the board because your program crashes after n hours?  If so its probably better to fix the memory leak that you have in the code.</p>

<p>Is it because some global variables need to resetting every now and again?  If so could you place them in a class and store a pointer to them as your only global.  When you want to 'reset' the board delete the instance of the class and recreate it.</p>

<p>What happens if the software crashes?  Have you got it configured to restart on a crash?  If so could you just crash the code deliberately?</p>

<p>Because you have size constraints then it may be worth a bit of lateral thinking to see what the code can do for you.</p>
