SD card read/write with Arduino

For all who still have problems with SD-Card, here is some infos...

1. Pull-Ups
add 10K pull-ups to 3.3V for "CS" (CMD) and "DO" (DAT0) line. (refer to sd/mmc datasheets).


This is from Sandisk SD Card Product Manual.


2. Partition and Filesystem
Ensure your SD-Card contains one primary FAT16 partition.

Windows: Use Active@ Partition Manager, Acronis Disk Director, Paragon Partition Manager or simular to verify your Card is correctly set up.
Don't rely on Windows Partiton info, because windows shows "FAT" filesystem for FAT16 and FAT12 (only with small SD-Cards like 16MB).

Linux: Use cfdisk and mke2fs.


3. Updated Schematic


4. Arduino Library
I also recommend Fat16 lib. Its really nice and well documented.
Work right out of the box for me with Arduino 0017, Arduino Duemilanove and three 16MB SD-Card for my digi-cam.


Anyway, this is a very basic solution for (very) low speed SD-Card access.
Its recommended to use a real bi-directional level shifter (5.0V <-> 3.3V). Read more about it here (German).


:slight_smile: don't give up...