user7419: I have a pretty complicated setup: an ATMEGA328p chip (found in the Uno, Duemilanove, etc.) on a Diavolino board (from EvilMadScientist) running at 8 MHz (instead of the normal 16 MHz).  This should be basically the same thing as the 3.3V arduino pro from the code's point of view.  On top of this is a custom shield including a bunch of digital and analog devices with SPI, I2C, and serial interfaces.
This is supposed to run for days or weeks at a time.  In normal conditions--on the ground outside--it does fine.  However, in two recent tests, it lost its program and stopped working.  One of these was in a cold low-pressure chamber (-40 C/F).  The other was outside mounted on a flying quadcopter.  Reprogramming it fixed the problem; before reprogramming, neither a reset nor power-cycling would get any response from it.
Has anyone ever heard of an arduino bricking itself like that?  My best idea for how this could happen is that somehow the chip was put into a state where it treated incoming serial data as a new program to run.  Also, I'm speculating that connections between the two boards could have been disrupted by thermal contraction or vibration in those tests.
Thanks for any help!

user7856: I would suggest that you reproduce the issue and then use a device capable of reading the flash, to confirm that it's still identical to the .hex file that was used to program the board.
I know that the AVRDragon can do it and maybe also cheaper USB ISP programmers can do it too.
But it seems that you are not alone.
Flash memories like those used in uC work by trapping electrons in wells of charge, so that they pseudo-permanently affect the silicon.
Very low temperatures can change the properties of the insulation, letting many more electrons than usual to escape.
Try to wrap the board in a thermal airtight insulator, possibly providing local heating. That should solve your problems.

7419: <p>I have a pretty complicated setup: an ATMEGA328p chip (found in the Uno, Duemilanove, etc.) on a Diavolino board (from EvilMadScientist) running at 8 MHz (instead of the normal 16 MHz).  This should be basically the same thing as the 3.3V arduino pro from the code's point of view.  On top of this is a custom shield including a bunch of digital and analog devices with SPI, I2C, and serial interfaces.</p>

<p>This is supposed to run for days or weeks at a time.  In normal conditions--on the ground outside--it does fine.  However, in two recent tests, it lost its program and stopped working.  One of these was in a cold low-pressure chamber (-40 C/F).  The other was outside mounted on a flying quadcopter.  Reprogramming it fixed the problem; before reprogramming, neither a reset nor power-cycling would get any response from it.</p>

<p>Has anyone ever heard of an arduino bricking itself like that?  My best idea for how this could happen is that somehow the chip was put into a state where it treated incoming serial data as a new program to run.  Also, I'm speculating that connections between the two boards could have been disrupted by thermal contraction or vibration in those tests.</p>

<p>Thanks for any help!</p>
 7856: <p>I would suggest that you reproduce the issue and then use a device capable of <em>reading</em> the flash, to confirm that it's still identical to the .hex file that was used to program the board.</p>

<p>I know that the AVRDragon can do it and maybe also cheaper USB ISP programmers can do it too.</p>

<p>But it seems that <a href="https://www.physicsforums.com/threads/nor-flash-failures-at-extreme-low-temperatures.207832/" rel="nofollow">you are not alone</a>.</p>

<p>Flash memories like those used in uC work by trapping electrons in wells of charge, so that they pseudo-permanently affect the silicon.</p>

<p>Very low temperatures can change the properties of the insulation, letting many more electrons than usual to escape.</p>

<p>Try to wrap the board in a thermal airtight insulator, possibly providing local heating. That should solve your problems.</p>
