Electronic – Which component to use for a few GBytes of memory available for several years


I am working on a project which is supposed to be built in small quantities (less than 50 units/year), but will probably be sold for 10 or 15 years. I am at the stage where I look at the non volatile memory, and we plan to use something like 16-32GB.

In the past, we used SD Cards, but we faced some reliability problems with the holder, as the SD Card sometimes came out of the socket. We also found that a particular card is likely to become obsolete after a few years, so we always have to check that alternative parts would work the same.

I had a look into the following technologies, and I found some inconvenients:

  • SD Card: need for a mechanical part to hold it, obsolete after a few years
  • Flash ICs: complex to interface
  • eMMC: difficult to source
  • EEPROM: small capacity (<100MB)

Did I miss something? Is there any other reliable solution to replace an SD Card on a design?

Edit: the application would continuously write data (a few kB per second), but during several hours or sometimes days. The retention time is not a big deal, as long as it is reasonable.

Best Answer

In my projects I use Compact SD card directly soldered to pads on the board. This means there is no socket unreliability to contend with. The interface is standard, and looks like being so for many years, so even as individual cards will come and go, any commodity card of sufficient size can be substituted in (as long as you code to the common specification and don't try to be clever and employ some magic tweak from one particular vendor).

The only downside with a permanent soldered connection to the card is that's you can't reckon on swapping it for software development, the board will need a connection for initialisation and debug, JTAG, Ethernet, wifi and USB are the obvious candidates here. Most designs will have have a need for at least one of those anyway for their normal operation. If not, then SPI or I2C are lightweight alternatives.