Creative Commons images are CC BY-NC-SA 3.0

Description: Running out of memory space in your Arduino project? The SparkFun microSD Shield equips your Arduino with mass-storage capability, so you can use it for data-logging or other related projects.

Communication with microSD cards is achieved over an SPI interface. The SCK, DI, and DO pins of the microSD socket are broken out to the ATmega168/328’s standard SPI pins (digital 11-13), while the CS pin is broken out to Arduino’s D8 pin. If you decide to use one of the many open source FAT libraries (like FAT16 or SDFat) make sure to change the code to reflect the location of the CS pin.

Most libraries assume the CS pin is connected to D10; this will have to be changed to D8. Also for the libraries to work pin D8 will have to be set as an output in the ‘setup()’ section of your sketch. The shield also includes a large prototyping area with a 13x12 grid of 0.1" pitch PTHs.

This shield comes populated with a microSD socket, red power indicator LED, and a reset button; but it does not come with headers installed. We recommend the Arduino R3 Stackable Header Kit.


Recommended Products

Customer Comments

  • I don’t understand JAMac’s complaint (see reviews) about the board hitting the USB connector and power port. There’s absolutely nothing on the bottom of the shield, so ANY PCB should hit the USB connector and power port. Maybe use longer headers?

    • For clarification, this is an issue (or non-issue) that comes into techsupport a lot. With headers unsoldered a shield will sit on the Arduino headers and make contact with the USB and power jack connectors. People often stop here and say it doesn’t fit. If you solder the stackable headers on it actually lifts the shield up about 1/8" allowing the board to clear the connectors. All Arduino shields have the same footprint (with a few exceptions) and so this applies to all shields. Rest assured all of our shields will fit just fine on an Uno with the stackable headers installed. Also, never Dremel or cut your board unless you know what you are doing. In many cases there are traces on the board you might end up cutting which will destroy the functionality of the board.

  • Can one of the mini modular breadboards fit on the prototyping area of this shield?

  • I have a question: to make the shield work with Arduino Mega 2560, could I make some hardware changes instead of modifying the SD library? From the schematic, it looks like it might work if I use some sort of headers to connect the Arduino Mega 2560’s ICSP pins to the shield ICSP holes, then cut the shield’s pins 11, 12, and 13.

    I think if I make these changes I should then be able to use the standard SD library, with pinMode(8, OUTPUT) and SD.begin(8) in my sketch.

    Is that correct? What headers should I use? Do you have headers that will plug into the ICSP 2x3 pins and extend them through the shield so I can do the same trick on a second, stacked shield?

    • Looks like you already figured out the library changes from your comment below. Regarding headers that will help shift the ICSP pins from the 2X3 header, you can use the Transmogri Shield between this and the Mega. You could then stack any other shields on top of this one.

      • The Transmogri Shield gives me good news and bad news: the good news is that my Sparkfun Wifi CC3000 Shield wifi works great with my Arduino Mega 2560 with a Triansmogri Shield in between (which was what I wanted to do in the first place: wifi + SD). The bad news is that with the Aruindo Mega 2560, the Transmogri Sheid,, the SD card on the Wifi shield doesn’t seem to work, using either the stock SD library or the Sparkfun SD library with MEGA_SOFT_SPI turned on: The WebClientSD example fails to initialize the SD card. I think too many wires are being swizzled by too many things.

        Fortunately, I have several things to try out yet - I’ll let you know how it goes.

        • All better now: the problem was that I’d left MEGA_SOFT_SPI turned on, which double-swizzled the pins when I used the Transmogri Sheild, making the SD not work. The CC3000 library has its own SPI library, which doesn’t seem to support soft SPI, so the Wifi was happy with the Transmogri shield.

          In summary: For Arduino Mega 2560 rev 3 + the MicroSD shield, the MEGA_SOFT_SPI solution works great for me. For Arduino Mega 2560 rev 3 + the CC3000 Wifi Shield, I found it better to put a Transmogri Shield between the Mega 2560 and the CC3000 Shield, and leave the SD library untouched (left MEGA_SOFT_SPI as 0)

          Thanks for your help - works great!

          • Glad to hear you got it working! Thanks for the update for other customers as well - I’m sure these hints will be helpful to others. Happy hacking!

  • Had to make some changes to make the shield work with Arduino Mega 2560. 1) In the SD library, in file Sd2Card.h, change MEGA_SOFT_SPI to 1 (rather than 0). 2) As described in the documentation, set pinMode(8, OUTPUT) and call SD.begin(8).

    The change to MEGA_SOFT_SPI makes the SD library use pins 11, 12, and 13. The pinMode and SD.begin changes make the SD library use the required pin 8. I didn’t have to make the recommended changes to pin 53 or pinMode(10, OUTPUT).

  • Is there an update schematic for the version with the voltage converter?

    • Sorry about that confusion! That note was leftover from the old product page. The schematic posted is the current version. The voltage converter is the HEX converter chip shown in the schematic.

Customer Reviews

4.5 out of 5

Based on 2 ratings:

5 star
4 star
3 star
2 star
1 star

2 of 2 found this helpful:

Doesn't seat properly to UNO

Using the stackable header kit, the micro SD shield does not seat correctly on the UNO-R3. The back of the unit (roughly where the Sparkfun logo is shown on the shield) hits the back of the USB port. I used a dremmel tool to cut a 1/8" notch on the board to accommodate the USB port, but the other side (where the work “Power” appears) hit the power port for the barrel power plug. I ended up setting the whole unit about 1/8" higher to get it to sit straight. This creates a stability problem since I have mounted an accelerometer on the shield so it needs to be stable and sit straight to function properly.

Related Tutorials


MicroSD Shield and SD Breakout Hookup Guide

March 25, 2015

Adding external storage in the form of an SD or microSD card can be a great addition to any project. Learn how in this hookup guide for the microSD shield and SD breakout boards.