Looking for guidance on data storage: EEPROM vs memory stick, vs SDcard - SOLVED

Hi guys,

I’m making a controller to control several kilns at the same time. I’m using my PC as the front end where the firing procedure is specified, and also as the backend where the data is displayed and analysed.

The Arduino will be given its “instructions” with the PC connected. I will then unplug the PC and use it for other things. Arduino will control the kilns and log temperatures over a number of hours, currently to EEPROM. Given the limited size of the on-board EEPROM, I’m looking at other solutions for storing the data, and subsequently uploading it to the PC. I’m looking for as close to plug and play as I can get, not a solution where I have to hack about, either in terms of hardware or software.

I considered a USB memory stick (plenty of storage, and avoids an upload over the serial interface). I looked at the Sparkfun USB Host Shield. It talks about interfacing with a lot of stuff, but I don’t see a plain old memory stick. Is this just taken for granted, or do I need software to correctly format my data on the stick so that Windows can access it?

I considered EEPROM (I’ve already developed for this - presumably an easy upgrade path for me). I looked at an inexpensive module from dfrobot. It mentions their Interface Shield For Arduino, without being clear whether I really need this. The Arduino playground article it links to says there isn’t a library, but offers some code - not too encouraging.

I considered an SD card, but the shield I looked at seems to conflict with the pin usage on the thermocouple multiplexor board that I’m using (The multiplexor uses SPI and uses D4,5,6,7,9,12,13; the SD shield uses D 8 to 13). Presumably its perfectly all right to share the SPI standard pins 10 to 13, but I cant work out whether the other pins present a problem.

Each avenue is full of ambiguity for me, probably because i’m not used to this low level stuff.

Any overall advice (best direction to pursue, warnings), specific product/project experiences, or help clarifying any of the above would be appreciated.

Sorry about the long post


You could use another Arduino connected via serial and put the SD card on that. Send your data over serial periodically and save it to SD card.

For mass storage (1GB or more) the SD card is the most common solution and therefore best supported.

I have not seen anyone interface to a MemoryStick.

The USB FLASH drive option tends to be much more complex, requiring a USB Host Shield.

I'd go with the SD card if you need more storage than the built-in EEPROM.

Add an SPI FRAM to your design. WIll need to connect pins 11-12-13 for SPI, in parallel with other SPI devices, and then select a free pin to use for Chip Select. (each SPI device needs its own SS pin). FRAM acts like EEPROM for storage, but acts like SRAM for high speed access. An example http://www.mouser.com/ProductDetail/Ramtron/FM25640B-GA/?qs=OiTXcupis6EX0ziaOeqmVcOP4P4WS%252bWOfnL6H94PF8M%3d

Other memory sizes available also.

the're great CrossRoads. very useful

Thanks for all feedback

Despite what i said about not wanting to get into "hacking", this FRAM looks amazing, its cheap as chips, and doesn't look TOO complicated - (may regret saying that). However I didnt really follow all that stuff about SPI modes, etc, on the data sheet. Can you reassure me that I dont need an electronics degree to make this work? Can you point me at any resources that would help a non-hardware guy to get this up and running?

The other thing is that, if I understood the stuff on the link you gave me, the chip only comes in surface mount format - is that correct? and if so, how do I attach it to my Uno?

Well, if you want to attach it your Uno you could mount the part on a breakout board and connect the 8 wires up to the Uno.

http://www.sparkfun.com/products/494 Need to confirm pad spacing.

How does "the thermocouple multiplexor board " you are using connect?

Hi CrossRoads

I'm gonna follow your lead here, but I starting from scratch, and I haven't a clue what to do with the breakout board!!

How do i "mount" the part on the breakout - do I need a soldering iron?

And then what do I do with the breakout board - does it have pins coming out of it that will fit into a breadboard? I have the Arduino attached to a breadboard that came with my "experimentation kit", so once it's on the breadboard I can make all the connections I need to.

The Ocean Controls Thermocouple Multiplexor shield covers the Uno almost completely, but repeats most of the pins of the Uno. It also provides a fairly extensive area full of holes, which I presume I could use for locating the FRAM when I've got it all sorted out.

Feeling very wet behind the ears!




(half-way down the page)

If you're gonna do electronics, you will need some tools.

Yes, you could use a soldering iron.

Or a hot air work station & some solder paste. I have this one http://www.ebay.com/itm/X-TRONIC-4000-HOT-AIR-REWORK-SOLDERING-IRON-STATION-/120571221985?pt=LH_DefaultDomain_0&hash=item1c129ad7e1 and some square nozzles that direct the hot air over the pins more directly than the round ones. http://www.mpja.com/prodinfo.asp?number=16130+TL I'd have to check the measurements on mine, I got some for 28 pin, 32 pin, 44 pin, 100 pin parts, not sure what the smallest one is.

Or you can send the chip to a place like Proto Advantage http://www.proto-advantage.com/store/icsoldering.php and they will solder it and pins for inserting it in a breadboard for you for a few dollars.

Hi Crossroads / Nick

I took a look at that fancy soldering kit, and on reflection dont want to go that way. I think I'll give Nick's I2C / EEPROM a go. No problem with pins, and Nick has provided a really first class tutorial on his site on how to put it all together. I'll close this for now, until I get the part and give it a go.

Thanks for your help.