SD cards are popular storage medium. There is special protocol for accessing SD cards. In normal node it essentially requires special hardware support. However, as a subset one can use SPI protocol. We have modules which allow connecting microcontroller to SD card using SPI protocol. This is supported by the SD library in Arduino and Energia environments (this library does not work on MSP430G2553 as it has too little memory for sector buffer).

At low level SD card appears as collection of sectors with a few special operations. On top of it one can put a filesystem. By default SD cards use FAT filesystem. In particular, higher layer of SD library implements FAT filesystem.

SD cards do not tolerate on its inputs voltages higher than 3.3V, so can not be directly connected to Arduino. Arduino Ethernet shield contains socket for micro-SD cards which is connected to Arduino via a level shifter circuit, so this socket can be used with Arduino. We also have micro SD adapter contaning level shifter circuit -- those can be safely connected to Arduino. Adapters have both 5V and 3.3V connections to power source. Adapters contain voltage regulator which drops voltage from 5V to 3.3V -- the cards can only take 3.3V. At first glance connecting adapter to 3.3V looks simple and natural. However, cards can take substantial current in particular at insertion time. The sudden increase of current from 3.3V source during insertion causes voltage drop which may lead to reset of connected processor. So it is better to power cards from 5V sources -- 5V source is capable of larger current and voltage drop on 5V line causes only limited drop on 3.3V line.