I'm about to work on my very first project using arduino (I'm just about to buy one next week), and one of our professor says that we can only upload a program or sketch in an Arduino Uno Board for approximately 8 times. He also added that if we're using a clone version, it'll can only last for 2 sketch uploads. Is this true or is he bluffing? Thank you in advance.

  • 3
    I've been flashing sketches to one particular Nano multiple times an hour as I build and test and I have been curious about this over the past few days myself. I knew it would be at least in the 100s of times but wasn't sure how many. Thanks for asking.
    – raddevus
    Jun 18, 2018 at 17:46
  • 11
    Time to question that professor's credibility. The program will be flashed into to the ATMega328P's internal flash memory, and flash will survive a few thousand write cycles. Even more for EEPROM. STMicro quotes "10K to 100K cycles" (st.com/resource/en/application_note/cd00165693.pdf) Jun 18, 2018 at 18:46
  • Related: SPIFFS on the 8266 wear-levels, so if you're saving 3KB with 3MB free, you can save 1024X before the first overwrite (in theory, 512X on average w/o block overlap), which means millions of saves.
    – dandavis
    Jun 19, 2018 at 6:48
  • 4
    @jsotola unless Google shows you this question was already answered on SE, please don't tell users to Google (source: FAQ)
    – Cephalopod
    Jun 19, 2018 at 7:36
  • 1
    This is the ASE equivalent of fake news.
    – copper.hat
    Jun 19, 2018 at 12:01

2 Answers 2


He's talking complete and utter gibberish. To quote from the ATMega328P datasheet:

  • High Endurance Non-volatile Memory Segments
    • 32KBytes of In-System Self-Programmable Flash program Memory
    • 1KBytes EEPROM
    • 2KBytes Internal SRAM
    • Write/Erase Cycles: 10,000 Flash/100,000 EEPROM
    • Data Retention: 20 years at 85°C/100 years at 25°C(1)
    • Optional Boot Code Section with Independent Lock Bits
      • In-System Programming by On-chip Boot Program
      • True Read-While-Write Operation
    • Programming Lock for Software Security

So you have at least 10,000 uses out of it before it starts to go flakey.

  • 3
    I would say he has at least 10K uses. Jun 18, 2018 at 19:51
  • 3
    The way Flash memory works, as it ages it takes longer for a page to be erased. The 10,000 is the minimum expected number of erase operations on a page before the time taken to erase could start to exceed a pre-defined (manufacturer specified) threshold. So yes, you would expect to get more than that number (it's the minimum guaranteed), or it just take a little longer to erase pages.
    – Majenko
    Jun 18, 2018 at 19:54
  • 2
    In practice, I was reusing an Arduino Uno and constantly making small tweaks to the code. Uploading again takes long enough that this is not even worth worrying about. You are far more likely to goof up the board in some other manner if you are soldering or bending wires. Also, when doing Arduino... the boards are so crazy cheap (particularly if you can move down to a MiniPro 5V) that the main thing you need to worry about is to just be careful when soldering the sensor/IO stuff. The board is extremely reliable, and you can just replace cheaply if you ever have any doubts about the board.
    – Rob
    Jun 19, 2018 at 3:33
  • 1
    whenever you get a talk about storage "wearing out", just keep in mind that it's generally this: 1) You have to "stressfully" blast whole areas full of zeroes and then write the ones over that. 2) Solid State storage usually has complex wear-levelling algorithms to minimize the impact of this. 3) It's a cheap Arduino. 4) The language is a subset of C++, so you can mock out a testing framework to fully test before it hits hardware; to limit unnecessary pushing of untested code into the hardware.
    – Rob
    Jun 19, 2018 at 3:41
  • 2
    here is a simple example of mocking out the board so that you can just unit test it locally under Linux (compiled with GCC), rather than constantly pushing to hardware to test. The basic idea is to make a framework that looks like as much of the Arduino calls as you actually make from your code: github.com/rfielding/octaveRounder/tree/master/test
    – Rob
    Jun 19, 2018 at 3:43

I have firmware 94% flash - it took me a week to kill it. And this is a second device I killed this way. It's a Pro Micro clone. So I suggest solder a pcb with a reusablle port to change the card

  • 1
    it doesn't matter how much space of flash you use. it is only about the count of writes (erases really). and I doubt you did 10000 uploads, your Pro Micro has some other problem
    – Juraj
    Nov 15, 2022 at 20:30
  • Yes, you were right :) Dec 19, 2022 at 14:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.