Computers, Development Boards & Shields
Educational & Robotics Kits
Electronic Sensors
Motors & Controllers
Communication & Display
Electronic Components
Soldering & Lab Tools

Virtuabotix SD Card Reader/Writer Pinout and Coding guide

The standard sized SD Card Reader is a must have for anyone interested in storing or retrieving large amounts of data (in excess of 8 Kilobytes on some platforms). Using it will dramatically increase the things you can do with data on your micro-controller.

Pin-out Guide

Pins are listed from left to right withe the SD Card holder facing up (pins at the bottom pointed towards you)

Note: Each pin is connected to the same function on a column for structural strength. It doesn’t matter which one you connect to.

Pin Pin Purpose Details
Gnd Gnd Common Ground Allows electrical circuit to complete
+3.3 +3.3 3.3 Volt Supply For powerfication
+5 +5 5 Volt Supply Also for powerfication
CS CS Chip Select Just in case you need a bunch of SD Cards
MOSI MOSI Master Out Serial For SPI Data
SCK SCK Serial Clock For the power of synchronous data!
MISO MISO Master In Serial For SPI Data
Gnd Gnd Common ground Allows electrical circuit to complete


Arduino™ Libraries & Projects


This SD Card Reader is compatible with the built in SD Card Reader Library for the Arduino IDE
Just #include <SD.h>

and/or run one of the built in examples to get off the ground running.
Here’s some good code to start with:

  SD card read/write
 This example shows how to read and write data to and from an SD card file  
 The circuit:
 * SD card attached to SPI bus as follows:
 ** MOSI - pin 11
 ** MISO - pin 12
 ** CLK - pin 13
 ** CS - pin 4
 created   Nov 2010
 by David A. Mellis
 updated 2 Dec 2010
 by Tom Igoe
 This example code is in the public domain.
#include <SD.h>

File myFile;

void setup()
  Serial.print("Initializing SD card...");
  // On the Ethernet Shield, CS is pin 4. It's set as an output by default.
  // Note that even if it's not used as the CS pin, the hardware SS pin 
  // (10 on most Arduino boards, 53 on the Mega) must be left as an output 
  // or the SD library functions will not work. 
   pinMode(10, OUTPUT);
  if (!SD.begin(4)) {
    Serial.println("initialization failed!");
  Serial.println("initialization done.");
  // open the file. note that only one file can be open at a time,
  // so you have to close this one before opening another.
  myFile ="test.txt", FILE_WRITE);
  // if the file opened okay, write to it:
  if (myFile) {
    Serial.print("Writing to test.txt...");
    myFile.println("testing 1, 2, 3.");
 // close the file:
  } else {
    // if the file didn't open, print an error:
    Serial.println("error opening test.txt");
  // re-open the file for reading:
  myFile ="test.txt");
  if (myFile) {
    // read from the file until there's nothing else in it:
    while (myFile.available()) {
    // close the file:
  } else {
   // if the file didn't open, print an error:
    Serial.println("error opening test.txt");

void loop()
 // nothing happens after setup

2 Responses to “Virtuabotix SD Card Reader/Writer Pinout and Coding guide”

  1. coelho69 July 20, 2016 at 8:10 am #

    Good Morning
    Good project, a question, you turn the + 5V and + 3.3V at the same time?
    Can I connect only the + 5V or + 3.3V or have to connect the two?

    Thank you

    • Joseph Dattilo February 22, 2017 at 8:41 pm #

      With the Arduino I connect both rails at the same time. But, I have never tried it with just one. If you decide to try it, I would love to know your results, but I am fairly certain other customers who have failed to connect one or the other didn’t get the data reads they were after.

Leave a Reply