16

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.

asked Jun 18, 2018 at 17:27
6
  • 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. Commented 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) Commented 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. Commented 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) Commented Jun 19, 2018 at 7:36
  • 1
    This is the ASE equivalent of fake news. Commented Jun 19, 2018 at 12:01

2 Answers 2

28

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.

answered Jun 18, 2018 at 17:41
7
  • 3
    I would say he has at least 10K uses. Commented 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. Commented 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. Commented 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. Commented 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 Commented Jun 19, 2018 at 3:43
-1

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

answered Nov 15, 2022 at 19:21
2
  • 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 Commented Nov 15, 2022 at 20:30
  • Yes, you were right :) Commented Dec 19, 2022 at 14:09

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

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

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.