I would love to hear long-term experiences with Raspberry Pi (1/2/3), Resin.io.
Anyone ever experienced SD Card wear? Anyone ever had any other issues that came from long-term operation? What are your long-term projects? How long is long-term in your particular project?
I think on the team @lifeeth, @curcuz, and @jviotti have some experience with SD cards, for different reasons (AutoHAT, lots of projects, and working with etcher, respectively), I wonder if they have noted down something yet? I remember hearing recommendations for industrial-grade SD cards that did work well, and remember also that the power supply is what affects the SD card wear a lot, but there has to be more than that…
From some internal discussion, apparently SanDisk Extreme Pro is the “best SD card money can buy” (paraphrasing, and it’s not an endorsement )
Thanks for the feedback. @imrehg So let me share my experiences I was able to make so far - using Raspberry with Raspbian:
I have a device that’s currently running for more than a year on the same SD-Card. This device is constantly logging sensor data and stores a new data-frame every 5 minutes. I have disabled logging, swap, and moved temporary file systems onto a ram-disk.
I have made some tests with using industrial-grade SD-Cards which all use SLC-Flash cells. SLC stands for single layer cell. Consumer grade (which also includes the SanDisk Extreme Pro Card mentioned above) mainly uses MLC - which stands for Multi Layer Cells.
In theory SLC Cards have much longer lifetime than MLC Cards. But SLC Cards are up to 10x more expensive. So a 16GB Card might cost up to 200$.
So the trick is to shrink the image to a smaller size here. But even if you use a 4GB or 2GB sized SLC card you will likely end up using almost 100% of the cards space.
If that SLC Card now has a defected cell its damage-repairing-controller won’t be able to use free cells and map that defective one to a freshly new one.
MLC Cards with high capacity - like that 16GB Card from above - can remap defective cells quite often. Especially when the image on the card is just using a maximum of just 50% of the capacity.
So SLC has more write(/read) cycles but is also more expensive - especially when you are looking for higher capacity.
MLC has less write(/read) cycles but is less expensive so you can easily add up free capacity which can be used by the flash-controller to map defective cells to fresh new ones.
If you compare a low capacity SLC with a large capacity MLC you probably get the same lifetime results.
By the way we are using that SanDisk Extreme Pro in our projects!
Outright I have to state that you should worry about “wear levelling”, a feature where data is written in only come sections of the SD card leading to early wear in the parts.
I have read many posts on Raspberry Pi 3 and the Raspberry Pi 3 SD cards. Samsung EVO Plus and SanDisk Extreme PRO have been endorsed as the best for even the latest Pi3.