Skip to main content

Permanent memory corruption

Published: 06 August 2024
Last updated: 29 October 2024

Touching the Arduino crystal area or exposing it to water can cause memory curruption

I have experienced several times that PCBs with an Arduino chip no longer function properly when in contact with water or when touched with fingers during use. The reason is that this leads to disruption of the clock oscillator and can lead to permanent "damage" as the program memory becomes corrupted. Sometimes the product still works initially, but then errors occur in the microcontroller.

Sometimes it is sufficient to re-upload the sketch, but the bootloader may also be corrupt and need to be re-burned.

The clock generator of a microcontroller is particularly sensitive, and its operation can be disrupted if the pins of the crystal are accidentally touched. The processor can then exhibit unpredictable behavior. The same can happen in the presence of moisture. Upon drying and restarting, the processor should, in principle, function normally again. However, this is not always the case. I have tested what can happen when the clock generator is disturbed: the processor can accidentally write to the program memory, rendering the chip essentially useless, and the product will no longer function well. To address this issue, the chip needs to be reprogrammed by the manufacturer.

The above poses a problem: a product with a microcontroller can be "damaged" by accidental or intentional contact with the oscillator pins or by temporary contact with water. For the manufacturer, this represents a risk as they may be liable for the repairs.

To avoid problems, the crystal area must be kept compact and covered with a conformal coating such as Kontakt Chemie PLASTIK 70. See Making electronics waterproof

Arduino Forum.