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.
-
3I'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.– raddevusCommented Jun 18, 2018 at 17:46
-
11Time 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)– Maximilian GerhardtCommented 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.– dandavisCommented 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)– CephalopodCommented Jun 19, 2018 at 7:36
-
1This is the ASE equivalent of fake news.– copper.hatCommented Jun 19, 2018 at 12:01
|
Show 1 more comment
2 Answers
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
-
3The 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.– MajenkoCommented Jun 18, 2018 at 19:54
-
2In 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.– RobCommented Jun 19, 2018 at 3:33
-
1whenever 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.– RobCommented Jun 19, 2018 at 3:41
-
2here 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– RobCommented 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
-
1it 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 ♦Commented Nov 15, 2022 at 20:30
-