For the project I used an SD/MMC Mini Board from Futurelec. Futurlec has a number of interesting products which are reasonably priced. The order took a little over a month given the fact that they didn’t have the board in stock and due to international shipping. During the wait the folks at Futurelec were quite responsive to my queries via email.
I was using an atmega328p chip powered at 3.3v with an 8mhz oscillator. This made things easier as I didn’t need to worry about voltage dividers between the microprocessor and the SD card. The hardware I used was rounded out with a 512mb Kodak SD Card I had laying around.
For software I used Bill Greiman’s fat16lib which performed flawlessly. I tested my project with fat16info, fat16write and fat16tail with version 17 of the Arduino IDE.
The only problem I had was that I missed that the SD/MMC Mini Board has two pins labeled CD. One is in fact pin 1 from the SD card while the other is Card Detect. Pin 1 from the SD card is clearly labeled as such but I missed it the first time and connected to the other CD.
The pinouts that I used are below for reference:
Arduino Pins | atmega328p Pins | Description | SD Card Pins | SD Description |
10 | 16 | ssel | 1 | cd/dat3 |
11 | 17 | misi | 2 | cmd |
13 | 19 | sck | 5 | clk |
12 | 18 | miso | 7 | dat0 |
vcc 3.3v | vcc | vcc 3.3v | 4 | vcc 3.3v |
gnd | gnd | gnd | 3+6 | gnd |