Go Down

Topic: Best SD-card ? (Read 2 times) previous topic - next topic


After building a few projects I'd like to start working with SD-cards.
2 GB will be huge for now, if a smaller one works better, it could be great as well
whatever its capacity. (I hope it's still available though ;))

I wonder which SD(HC)cards have been most successful in combination with an
arduino so far since I get the impression some can be quite difficult/impossible to work with.
Advice on which card's best for arduino is greatly appreciated.

Besides a weather-station data-logger I'm building a 5x5x5-led cube at the moment.
Being able to read the patterns from SD would be great, but to prevent flickering
I'll probably need to read a block of data as fast as possible.

Reading speed will probably differ depending on card and reading method used. Reading at
at max speed of most card-specs may also never be possible with an arduino. But, how fast (~)
might I be able to read blocks of 512 bytes if I'd find a good card/way of reading it ?

Thanks in advance, best wishes.


There is on thread a little bit down that gives some good info. http://arduino.cc/forum/index.php/topic,64813.0.html

I would recommend reading most threads by fat16lib, he has made a libraries and examples that really help with SD cards.



Jul 04, 2011, 12:21 am Last Edit: Jul 04, 2011, 12:37 am by fat16lib Reason: 1
Most SD/SDHC cards should work for your applications.

Modern SD/SDHC cards are not designed for The Arduino environment so you never get close to a card's specs.

Most cards perform o.k. for read.

The Arduino accesses cards using the SPI bus at a maximum speed of 8 MHz with no DMA so you will never get a transfer rate faster than about 500 KB/sec, about half the bus speed.  In practice The maximum read rate from a file is about 300 KB/sec.

You can benchmark cards for read/write by using the bench.pde sketch in the examples folder of my SdFat library http://code.google.com/p/sdfatlib/downloads/list.

PCs, Macs, and most other devices access SD cards using the SD bus at a clock rate of up to 50 MHz and the bus is 4-bits wide so 25 MB/sec is possible.

Newer cards use the UHS-I bus which is capable of 104 MB/sec.

The biggest problem for writing is erasing the cards flash memory.  The Arduino can't optimize writing so it causes lots of rewrite to file structures.  This means the card must do lots of flash erase operations.  This shows up as occasional 100-200 millisecond write latency.  This can result in lost data for fast data logging applications.

For your weather-station this should not be a problem.

I like SanDisk cards but Transcend should also work for you use.  Amazon sells 4GB Transcend cards for $6.99

4GB SanDisk cards are $7.50 at Amazon

These cards will have the occasional 100 or more millisecond write latency while they do a big flash erase.

You will pay a lot more if you need very short write latency for fast data logging.

I have ordered a Panasonic 4GB SDHC-UHS-I Memory Card for $24.99.  It is the newest thing and I can't wait to see how it performs.


Jul 05, 2011, 01:54 am Last Edit: Jul 05, 2011, 11:19 am by Simpson_Jr Reason: 1
Thank you both !

I guess I'll buy an 4 GB card, it's hard finding one in the neighbourhood
2GB (or less) which also is fast. The faster ones don't seem to cost very much more.
Reading the specs of UHS-cards they certainly seem nice but... those are still a
little out of reach in terms of budget. I'd probably need USB3.0 + reader to really test 'm
at full capacity on my PC ;)

Getting data on/from the card will be most important for now, if you'd
like me to test a specific card (assuming I succeed and the card's not too expensive), please tell me.
Just tested the brand-less 1GB SD of my camera using h2testw. It could
do with an upgrade should I not get the new card working with arduino.


  I didn't have a microSD card reader until recently so, I used my Cell phone to connect my card to the computer. I was able to format the card using windows then take the card out of the phone and write to it with the Arduino.


Go Up