Faster way to store data!

The subject says it all what do you guys think is the fastest and more efficient way to store data using an arduino. Everything is on the table from EEPROM to save in some external RAM or SD cards. I am looking for something that can save 1 or 2 'char's in less than 10 ms. The amount of data is more or less 600 000 bits :p

I know that this look kinda impossible for a device like arduino but just want to know your opinions.

Thank you

To save 75kbytes? You can get an EEPROM, their write cycle times are usually less than 10ms. The Atmel AT24C1024B has 1Mbits of storage and can write a byte in 5ms.

You can also use FLASH. The Winbond W25X40BVDAIG is a 4Mbit device that can write 256 bytes in less than 1ms.

I don’t think it’s at all impossible for an Arduino to get those kind of transfer speeds (one byte in 10ms).


The Rugged Motor Driver: two H-bridges, more power than an L298, fully protected

AFAIK External EEPROM via I2C - http://www.arduino.cc/playground/Code/I2CEEPROM is quite fast. I don't have timings at hand. External EEPROM through SPI is faster as no address needs to be send over the wire (just raise a pin) SDcard can be fast but speed heavily depends on the blocksize , and small blocksize is killing performance

Yes I tried SD cards and the faster I could go was 15 ms. I like your ideas I will study them further and give you some feedback. Thanks :)

If you write a little cache for your SD card - so it writes e.g. 100 bytes iso 2 it becomes more efficient. Drawback is that you have to sync before you unplug the SD.

What do you mean by synch it? I can fill a buffer with 100 measures and than upload it to the card right? Just can disconnect the card while reading is that what you mean by synch?

sync - short for synchonise

If you have a cache you can have up to 100 (cachesize) values not written to the SD card. The synchronization writes these to the card before it is removed. Same as you do when you properly dismount an USB stick from windows or Linux. YOu should indicate you want to remove the SDCard, the Arduino writes the cache and gives green light to remove the disk.

hum ok I understand the idea I know that you were talking about some sort of synchronization didn't know exactly with what.

Thanks man I ll give it a run to test the speed.

PLease post your results (e.g. different cache sizes)

My top score atm was 100 * 20 bytes in 25 ms..

I think it is fast enough the problem was that I was using a library on top of the one you mention which lead some extra code that wasn't that necessary.

Thanks for you help guys