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.

  • \$\begingroup\$ You should tell us about the frequency of writes in your application. Depending on the type of non-volatile memory (NOR flash/NAND flash/EEPROM/...) you'll get different endurances. Both the number of writes and the data retention time have to be considered. And some type of memories may be inappropriate to your application. \$\endgroup\$
    – dim
    Sep 8, 2016 at 8:49
  • \$\begingroup\$ @dim 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. \$\endgroup\$
    – Edesign
    Sep 8, 2016 at 8:57
  • 1
    \$\begingroup\$ If you can support a USB host port, a USB thumb drive could be an alternative. \$\endgroup\$ Sep 8, 2016 at 11:09
  • 2
    \$\begingroup\$ You could get around the problem of obsolete parts by buying a batch of 1000 and have enough for the next 20 years. Shelf life should be okay when stored correctly. \$\endgroup\$
    – Arsenal
    Sep 8, 2016 at 12:06
  • \$\begingroup\$ This question feels almost like a shopping question, but not quite. If you want to use the same part number for 10+ years, you need to be in communication with the vendor and/or (be prepared to) purchase all of the future required components during lifetime-buy before obsolescence. If you want to move away from SD (which is what you ask, but not your title), what are your constraints? \$\endgroup\$ Sep 8, 2016 at 12:06

2 Answers 2


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.

  • \$\begingroup\$ Interesting - the cards survive reflow soldering happily? \$\endgroup\$
    – pjc50
    Sep 8, 2016 at 8:33
  • \$\begingroup\$ @pjc50 apparently, yes \$\endgroup\$ Sep 8, 2016 at 8:38
  • \$\begingroup\$ That's an interesting idea, thanks. I am not sure I understand the second part: when would you use the separate connection instead of using the regular one? \$\endgroup\$
    – Edesign
    Sep 8, 2016 at 8:52
  • \$\begingroup\$ If there's a regular one, use that. If there isn't, then put at least one on. I don't know where 'seperate' came from, it just slipped in, I've taken it out. \$\endgroup\$
    – Neil_UK
    Sep 8, 2016 at 9:49
  • 5
    \$\begingroup\$ Is space allows put a socket in parallel with the soldered down card. For development don't solder a card down and use the socket, for production solder the card down and don't fit the socket. Since the socket is by definition larger than the card you may even be able to fit the two on top of each other. \$\endgroup\$
    – Andrew
    Sep 8, 2016 at 10:29

I'd go for a USB thumb drive myself, if I had or could have USB available in my hardware. It will be a long-lived standard. Also it is field-replaceable (or can be, if your device can format a disk, or if the disk format you use is also a long-lived standard). Also it makes it easy for an end-user to backup and restore your firmware and to access any acquired data that you store on the thumbdrive.

Of course, it may not be an option, if your project's microcontroller doesn't have USB, and if the cost of changing to something with USB is too high. But for that small a volume, won't you end up saving a lot of programming cost if it runs on a Rasberry Pi with Linux to do all the set-up and program loading leaving you with just the project-specific application to code and maintain? I'd also hazard that RPi's will remain available for the next 10 to 15 years, and you'd certainly get advance warning if they're planning to discontinue any model.

  • \$\begingroup\$ Thank you for your idea. But we had problems with the mechanical part of the SD Card, I think a USB pen drive would be even worse. \$\endgroup\$
    – Edesign
    Sep 8, 2016 at 12:58
  • \$\begingroup\$ Looking at a mouse and USB socket, I could use a couple of blobs of solvent glue to make sure it didn't shake loose while retaining the possibility to cut it loose. Silicone goo all round could make a better environmental seal. I'm fairly sure a couple of drops of superglue would make sure it never came out again, without causing any electrical trouble. In general USB connectors don't fall out, though I have no experience with them in high-vibration environments. \$\endgroup\$
    – nigel222
    Sep 8, 2016 at 13:10

Your Answer

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

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