I have an embedded device using an SD card. Occasionally I see SD cards fail, and I need to understand the failure mode.

Are there tools, perhaps for specific manufacturers, that help me understand why the card is failing? Whether it's a memory problem, a controller problem, electrical problem, etc?

We are using Sandisk in general, and aren't concerned about data recovery, but we do need to maximize lifetime and reduce failure, so understanding the reasons cards are failing in our application is important.

  • 1
    \$\begingroup\$ Yes, I can send them to the manufacturer and work with field app engineers, and I'm pursuing that, but it'd be very nice to do this in-house. \$\endgroup\$ – Adam Davis Jan 29 '13 at 17:09
  • 2
    \$\begingroup\$ Are you writing repeatedly? Doing anything interesting with power management? Do the cards fail unresponsive, or with data errors, or refuse to allow writing, or? \$\endgroup\$ – Chris Stratton Jan 29 '13 at 17:39
  • 1
    \$\begingroup\$ This article has a lot of relevant information, including the possibility that the cards are "fake": bunniestudios.com/blog/?p=918 \$\endgroup\$ – pjc50 Jan 30 '13 at 10:14
  • \$\begingroup\$ I agree with pjc50. There are many fake cards out there. I suggest trying talking to the manufacturer and getting some cards directly from them to see what could be going on. \$\endgroup\$ – Gustavo Litovsky Sep 15 '13 at 18:23
  • \$\begingroup\$ What are the symptoms of the failure? \$\endgroup\$ – apalopohapa Sep 21 '13 at 5:48

but we do need to maximize lifetime and reduce failure

Are you using industrial grade SD-cards?
Those high quality cards can really make a difference. We performed some tests in our company because we had problems with SD-card failures in one of our products. Using industrial cards, the reliability improved by factor >10.

Industrial cards are generally based on Single Level Cell (SLC) NAND flash memory which is much more reliable than MLC or TLC. They also have wider operating temperature ranges and are guaranteed to use the same components for each card (same flash, same controller, same everything). Cheap cards, even if labeled exactly the same can be technically totally different, making it impossible to provide consistent reliability.

Other (claimed) features are advanced wear-leveling algorithms, static data refresh, extensive burn in testing (to detect early fallout occasionally seen in any semiconductor technology) and so on.

As an example: ATP Industrial Grade microSD Card Specification

Are there tools, perhaps for specific manufacturers, that help me understand why the card is failing? Whether it's a memory problem, a controller problem, electrical problem, etc?

I know that some companies like ATP for example provide tools to monitor some sd-card properties. They mention

  • Available Life Monitor Tool to check the remaining life of microSD card
  • Supports S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) with SMART tool for Windows 2000/XP/Vista/7 and Linux

But i have no experience with those.

One main cause for SD-card failures is power failure. Data corruption and even some kind of lower-level corruption can occur. Even if the SD-card host is idle, the SD-card controller may perform internal operations like wear leveling. This was confirmed as we send some defective cards back to the manufacturer for inspection. They sometimes even had to re-initialize the card (something like telling the controller to re-scan and re-evaluate the whole flash) because of some unrecoverable errors.

(I am in no way affiliated with ATP, I was just recently checking them out in comparison to other industrial SD-card manufacturers like Pretec).

  • 1
    \$\begingroup\$ Note you can get SD cards with SMART from certain vendors that will tell you interesting things like % life of card remaining, no. of uncorrectable ECC errors etc. I am testing some out myself right now. Still doesn't really help much with the overall fragility of the technology however... \$\endgroup\$ – fred basset Jun 6 '14 at 3:49

For ATP branded Industrial SD Cards, they provide "SD Lifetime Monitoring Tool" software for Linux/Windows. But if you use this tool you must run this tool from a Host Operating System. That means you can not use this software inside SD Card to check itself. Because if you run this software, SD card can not be accessable.

For Reference - Google: ATP Industrial Grade SD Card Specification (Revision 3.8)

enter image description here


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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