I looked at three SD card shields: one from Libelium (US$28), one from Seeedstudio (US$15) and Wave shield from Adafruit (US$22, although this is more than an SD card shield).
The similarities are:
- all SD cards require 3.3V;
- all connect to the SPI port (pins 10-13);
- they all need a voltage divider (2 resistors x 3 signals) to adapt between the 5V level from Arduino and 3.3V level of the SD card;
These are the particularities:
- Libelium's small form factor shield comes assembled (SMD components) and tested, and includes a microSD card. It offers the nice feature of plugging the shield to either pins 8-13 (power is extracted from pin 8, set as high) or to the ICSP connector. It is not stackable (no more shields on top of it). It makes its own 3.3V from an onboard regulator.
- Seeedstudio's also small form factor comes assembled and tested. It accepts both SD and microSD, manually selectable through a switch. 3.3V comes from Arduino. It is also not stackable.
- Adafruit's Wave shield is a full size shield, designed to play wave files from the SD card. It comes as a kit, with through-hole components and clear assembling instructions. It has a powerful (100mA) 3.3V regulator on board and it is stackable. After interfacing with Wave shield, only pins 6 to 9 are left available for other use.
In my pre-prototype of Wise4Sure I used the Wave shield, since it was the only SD card shield I had. The integration went seemlessly, everything worked from the start.