<p>First of all I'm working with a Folger Tech Prusa i3 kit, if that makes a difference. Also I believe the Arduino is a Mega 2560.</p>

<p>I know somewhere in the back of my head that electrically programmable ROM like what must be on the Arduino board storing the firmware degrades a little, each time you write to it. Right now I'm trying to calibrate away another print problem, and I think I need to modify the firmware yet again, which I've already done several times. So I'm starting to worry about how many times I can do that.</p>

<p>Well, once I remembered the acronym "EEPROM", and after a little googling, I came across this, <a href="https://www.arduino.cc/en/Reference/EEPROMWrite" rel="nofollow noreferrer">Arduino - EEPROM</a>, which says that it can handle 100k cycles, so I think I'm onto the answer, but the problem is I'm not sure if a cycle is an entire file being uploaded? Wouldn't it be a single blip of data? And if so how many cycles would the average Marlin file consume?</p>

<p>I also found this:</p>

<blockquote>
  <p>but I'd be very surprised if I've uploaded to it more than 2000 times</p>
</blockquote>

<p>on <a href="http://forum.arduino.cc/index.php?topic=58243.0" rel="nofollow noreferrer">Mega2560 bricked? not detected, DFU failing</a>, indicating that the answer might be as low as 2000. </p>

<p>Also, this:</p>

<blockquote>
  <p><strong>Failure modes</strong></p>
  
  <p>There are two limitations of stored information; endurance, and data
  retention.</p>
  
  <p>During rewrites, the gate oxide in the floating-gate transistors
  gradually accumulates trapped electrons. The electric field of the
  trapped electrons adds to the electrons in the floating gate, lowering
  the window between threshold voltages for zeros vs ones. After
  sufficient number of rewrite cycles, the difference becomes too small
  to be recognizable, the cell is stuck in programmed state, and
  endurance failure occurs. The manufacturers usually specify the
  maximum number of rewrites being 1 million or more.[5]</p>
  
  <p>During storage, the electrons injected into the floating gate may
  drift through the insulator, especially at increased temperature, and
  cause charge loss, reverting the cell into erased state. The
  manufacturers usually guarantee data retention of 10 years or more.[6]</p>
</blockquote>

<p>from Wikipedia: <a href="https://en.wikipedia.org/wiki/EEPROM#Failure_modes" rel="nofollow noreferrer">EEPROM - Failure Modes</a>, indicating the answer might be into the millions.</p>

<p>At this point I'm just wondering if an expert might see this and relieve my angst...</p>

[{'answer_id': 888, 'author': 'Tom van der Zanden', 'author_id': 26, 'author_profile': 'https://3dprinting.stackexchange.com/users/26', 'pm_score': 4, 'selected': False, 'text': '<p>The EEPROM is <em>not</em> where the program itself is stored, what\'s relevant for your question is the flash. The flash in the ATmega2560 <a href="http://www.atmel.com/images/atmel-2549-8-bit-avr-microcontroller-atmega640-1280-1281-2560-2561_datasheet.pdf" rel="nofollow noreferrer">is rated for 10,000 cycles</a> (i.e. you can reprogram it <em>at least</em> 10,000 times).</p>\n'}, {'answer_id': 890, 'author': 'Lars Pötter', 'author_id': 204, 'author_profile': 'https://3dprinting.stackexchange.com/users/204', 'pm_score': 1, 'selected': False, 'text': '<p>The AVR has SRAM for variables (what is usually called RAM), it has EEPROM for non volatile variables and it has flash for the executable code. (Harvard Architecture!)</p>\n\n<p>For re-flashing the firmware neither SRAM nor EEPROM write rates are important, but the Flash rates are. The flash write rates are in the region of 100 thousand to a million so that should not be a problem.</p>\n\n<p>The article you linked also states that he did not more than 2000 rewrites and therefore should be fine. I can only agree. A few thousand re-flashes is no problem. Once you get closer to 100 thousand you can start to worry.</p>\n\n<p>Flash bits can only be written from 1 to 0. Erasing the flash writes all bits to 1. Erasing can only be done on a flash page (size is device dependent but usually a multiple of 512).</p>\n'}]
['https://3dprinting.stackexchange.com/questions/887', 'https://3dprinting.stackexchange.com', 'https://3dprinting.stackexchange.com/users/414/']