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!