In my project I need to add some storage space and I don't want to use an SD card, because in the "final product" the user shouldn't be able to access the data on their own.

So I was considering the options here http://playground.arduino.cc/Main/InterfacingWithHardware#Storage but many of the technologies are either outdated, for example as reads here ADESTO is discontinuing production of dataflash, or they give too little memory, like the I2C EEPROM (which is 128KByte per chip and I would rather not go through the hassle of multiplexing lots of memory chips since I'd like to have 1MByte of storage at least), or are extremely overpriced and cannot be found on retail: some sites require you to buy 2000$ worth of chips or charge you 30$ for delivery, which kind of kills the fun of prototyping something.

I know I am being picky not wanting to use an SD for the prototype, but I would like to know if you ever faced this problem and how you solved it, or if you know some alternative solution which gives a good amount of memory (~1 or 2 MBytes at least) within reasonable costs.

  • 1
    Don't provide a slot in the casing to remove the SD card? Once you use a standard memory technology in a discrete package, it is readable by someone who bothers to open the casing, though I suppose a soldered surface mount SPI flash less readily so than a socketed micro SD card. Ultimately, you should think carefully about the wisdom of trying to prevent access, and if it is truly necessary your only real choice is to encrypt the data stored. – Chris Stratton Oct 3 '15 at 18:41
  • Yes, I guess that there will always be someone smart enough to be able to pry the device open and read/edit the memory content by himself if I don't encrypt the data. I'm slowly thinking that I might as well go for an SD and if I ever manage to build the final product I'll think of a way to deal with that. – Luca Oct 4 '15 at 14:15
  • Provided you only need a few megabytes you should be able to switch from a micro SD card in mmc mode on your prototype to a smaller, cheaper, more reliable soldered SPI flash by slighty changing your board and replacing the mmc SPI operation code with the far simpler steps needed to access an SPI flash. – Chris Stratton Oct 4 '15 at 17:07

There are plenty of serial flash products available. They are generally SPI chips (8 pin) and range in sizes up to about 64MBit (8MByte). And they're cost effective.

Here's a selection: http://www.microchip.com/pagehandler/en-us/products/memory/flashmemory/sfhome.html

There are plenty of other manufacturers as well. Your best bet is to hit your favourite online electronics store (mouser, digikey, etc) and shop around.

| improve this answer | |
  • Thank you, I'll have a good look at these and try to find them in some store that does not charge me too much for the shipping (I live in Italy and mouser and digikey charge a lot so as I said in the post the shipping charges make the spi chips an expensive option) – Luca Oct 3 '15 at 6:20

You may not want to hear this, but the cheapest option would be an SD card, or a micro-SD card. You could solder it into place, thus making it quite hard for the end user to take it out and plug it into a reader.

Imagine you had this micro-SD card glued onto your board (making it hard to remove in the first place):

Micro-SD card

It isn't particularly obvious what it is, unless you recognize the shape. You could cover it with a blob of plastic to hide that. Then with the SPI wires soldered to the contacts, removing would be even harder.

That gives you gigabytes of storage, a file system, the works. And all for a few dollars.

A technically sophisticated user could probably prise it loose and get at the data (although if you used strong glue this could be quite hard) but they could also get at the contents of another storage chip too.

| improve this answer | |

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.