Extra data storage capacity

Many projects need more data storage capacity than what most microcontrollers provide on their internal Flash or EEPROM memories. Even some dedicated non-volatile, serially connected memory chips may not provide the amount of storage that is needed (like the EEPROM on the RTCMem Nanoshield). Some examples of these projects are the ones that involve audio data, logging, sensor data charts, etc.

With the MicroSD Nanoshield it's possible to expand the data storage capacity in your project using a microSD card of up to 32GB. Furthermore, as this is removable media, you have greater flexibility when it comes to access the stored data. For instance, you can log sensor data in a file on the microSD card, then physically removing it from your project to access the data directly on a computer using a card reader.

One of the ways to interface with an SD or microSD card is via a SPI interface. This is the interface that is used on the MicroSD Nanoshield, allowing the SPI hardware available on the microcontroller (Arduino) to be used to efficiently access data on the card. The MicroSD Nanoshield is totally compatible with the official Arduino SD library, making it possible to directly use the examples provided in the Arduino IDE Arduino IDE, or other projects from the online community. This library can access cards formatted with either the FAT16 or the FAT32 standards.

The signals coming from the SPI interface go through a buffer that converts them to 3.3V. This allows you to use the MicroSD Nanoshield with a microcontroller that is supplied with either 5V or 3.3V and that recognizes 3.3V as a high logic level (like the Arduino does).

The MicroSD Nanoshield can be used simultaneously with other Nanoshields that use the SPI interface, as long as the Arduino software activates each one in turn using the respective /CS pins.


  • SD or SDHC cards of up to 32GB.
  • FAT16 or FAT32 card formatting (through the standard Arduino SD library).
  • Integrated 3.3V regulator, avoiding extra burden on the Arduino internal regulator.
  • LED indicating when a card is inserted.

MicroSD Nanoshield block diagram

MicroSD Arduino Function
/CS D4 SPIchip select
SDI D11 SPI data in (MOSI)
SDO D12 SPI data out (MISO)
SCK D13 SPI clock
3V3 3V3 3.3V power supply input (optional)
VCC VCC 5V power supply input
VIN VIN External power supply input
GND GND Reference voltage (ground)
Pin descriptions

Electrical specifications

  • Power supply: it can be done through either the VIN pin or the VCC pin. The voltage range for the VIN pin is from 7V to 12V (maximum 20V); for the VCC pin, the range is from 4.5V to 5.5V (5V typical). When power supply is present on the VIN and VCC pin simultaneously, the VIN input has precedence and will automatically be selected to supply the circuit.

  • Current consumption: the microSD card is responsible for the majority of the current consumption of the module. It can range from 20mA to 100mA, depending on the card manufacturer, model and speed.

  • Logic levels: the SPI input pins (SDI, SCK and /CS) operate with logic levels of 5V or 3.3V. The SPI output pin (SDO) operates at 3.3V and is 100% compatible with the voltage accepted by the Arduino.


  • SD library - Documentation for the standard Arduino SD Library.